Сравнение ячеек в Excel с одинаковым текстом, но в разном порядке

Вопрос или проблема

Я хочу сравнить текст между двумя ячейками в Excel, однако текст не в одном порядке. Например, Ячейка 1 = G1, G60, G25, а Ячейка 2 = G60, G25, G1. Текст по сути тот же, однако формула <if cell 1 = cell 2> даст результат “ложь”. Есть ли способ сравнить две ячейки так, чтобы результат был “истина”?

Формула =TEXTJOIN(",",TRUE,SORT(TRIM(TEXTSPLIT(A1,,","))))=TEXTJOIN(",",TRUE,SORT(TRIM(TEXTSPLIT(A2,,",")))) сработает.

  • Разделяет текст по ,.
  • Удаляет лишние пробелы.
  • Сортирует текст.
  • Снова соединяет текст и сравнивает с применением той же операции на другой ячейке.

enter image description here

Ответ или решение

Теория

В Microsoft Excel часто возникает необходимость сравнивать содержимое ячеек, особенно если вы работаете с большими массивами данных. Сравнение становится более сложным, когда текст в ячейках одинаковый по содержанию, но его порядок отличается. В приведенном вопросе перед нами стоит задача сравнить две ячейки, где, например, первая ячейка содержит "G1, G60, G25", а вторая "G60, G25, G1".

Обычные формулы, такие как =A1=A2, в таких случаях не работают, так как Excel воспринимает любые отличия в порядке как различные значения. Поэтому необходимо использовать другие методы для «упорядочивания» текста внутри ячеек перед их сравнением.

Пример

Рассмотрим, как это реализовано на примере с использованием формулы =TEXTJOIN(",",TRUE,SORT(TRIM(TEXTSPLIT(A1,,","))))=TEXTJOIN(",",TRUE,SORT(TRIM(TEXTSPLIT(A2,,",")))).

  1. TEXTSPLIT: Эта функция разбивает текст в ячейках на массив значений, используя запятую как разделитель. Например, из "G1, G60, G25" мы получаем массив значений {G1, G60, G25}.

  2. TRIM: Убирает лишние пробелы из каждого элемента массива. Это важно, чтобы ничто не мешало корректному сравнению.

  3. SORT: Сортирует массив значений в порядке возрастания. Таким образом, независимо от первоначального порядка, массивы упорядочиваются одинаковым образом, например, {G1, G25, G60}.

  4. TEXTJOIN: Объединяет отсортированные значения обратно в строку с указанным разделителем (в данном случае, запятой). Результатом для обеих ячеек будет одинаковая строка, например, "G1,G25,G60".

  5. Сравнение: Теперь строки можно смело сравнивать обычной формулой равенства. Если строки одинаковы, результатом будет TRUE.

Применение

Теперь рассмотрим, как данную формулу можно применить для решения задачи в Excel:

  1. Подготовка данных: Убедитесь, что данные в ячейках присутствуют и имеют правильный формат, включающий разделители.

  2. Использование формулы: В новой ячейке используйте указанную формулу, заменив A1 и A2 на ссылки на те ячейки, которые хотите сравнить. Например, формула в ячейке C1 может выглядеть так: =TEXTJOIN(",",TRUE,SORT(TRIM(TEXTSPLIT(B1,,","))))=TEXTJOIN(",",TRUE,SORT(TRIM(TEXTSPLIT(B2,,",")))), если ваши данные находятся в столбцах B1 и B2.

  3. Проверка результата: Excel вернет TRUE, если содержимое в ячейках идентично по содержанию без учёта порядка, и FALSE в противном случае.

Таким образом, благодаря этой формуле мы можем корректно сравнивать содержимое ячеек в случаях, когда элементы расположены в произвольном порядке. Это особенно полезно для работы с большими таблицами данных, где необходимо находить совпадения и осуществлять анализ данных. Этот метод также помогает устранить человеческий фактор, который может вызвать ошибки при ручном сравнении.

Представленный метод эффективно решает задачу сравнения, увеличивая точность и упрощая процесс обработки данных в Excel.

Оцените материал
Добавить комментарий

Капча загружается...