Вы узнаете, как сравнивать значения в ячейках Excel на предмет точного совпадения или без учета регистра. Мы предложим вам несколько формул для сопоставления двух ячеек по их значениям, длине или количеству вхождений определенного символа, а также вы научитесь сравнивать между собой сразу несколько ячеек.
При использовании Excel для анализа данных точность является наиболее важной задачей. Неправильная информация приводит к срыву сроков, неверной оценке тенденций, неправильным решениям и потере доходов.
Несмотря на то, что ваши формулы Excel будут абсолютно верны, их результаты могут быть ошибочными из-за некорректных значений в ваших таблицах. Сравнивать две ячейки вручную несложно, но заметить разницу между сотнями и тысячами текстовых и числовых значений практически невозможно.
В этом руководстве вы узнаете, как автоматизировать утомительную и чреватую ошибками задачу сравнения ячеек, а также какие формулы лучше всего использовать в каждом конкретном случае.
Как сравнить две ячейки в Excel.
Существует два разных способа выяснения тождества текстовых данных в Excel в зависимости от того, требуется ли это делать с учетом регистра или без него.
Формула без учета регистра.
Чтобы сопоставить две ячейки в Excel без учета регистра, используйте самый простой вариант:
=A1=B1
Где A1 и B1 – объекты для сопоставления. Результатом являются логические значения ИСТИНА и ЛОЖЬ.
Если вы хотите в качестве результата вывести свои собственные сообщения для обозначения совпадений и различий, вставьте приведенный выше оператор в логический тест функции ЕСЛИ. Например:
=ЕСЛИ(A2=B2; "Совпадает"; "НЕ совпадает")
Как вы видите на скриншоте ниже, обе формулы одинаково хорошо сравнивают текст, даты и числа:
Формула с учетом регистра.
В некоторых ситуациях может быть важно не просто сравнить текст, но и учесть регистр символов. Сопоставлениес учетом регистра можно выполнить с помощью функции Excel СОВПАД (EXACT в английской версии):
СОВПАД(текст1; текст2)
Где текст1 и текст2 - две сравниваемые ячейки.
Предполагая, что ваши значения находятся в A2 и B2, расчёт выглядит следующим образом:
=СОВПАД(A2; B2)
В результате вы получите ИСТИНА для текстовых данных, точно совпадающих с регистром каждого символа, в противном случае - ЛОЖЬ.
Если вы хотите, чтобы функция СОВПАД выдавала другие результаты, вставьте ее в формулу ЕСЛИ и введите свой собственный текст для вариантов ответа:
=ЕСЛИ(СОВПАД(A2; B2); "Совпадает"; "НЕ совпадает")
На следующем скриншоте показаны результаты с учетом регистра:
Как сравнить несколько ячеек в Excel
Чтобы сопоставить между собой более 2 ячеек, используйте выражения, описанные в приведенных выше примерах, в сочетании с оператором И.
Формула без учета регистра для более чем двух ячеек
В зависимости от того, как вы хотите отображать результаты, используйте одну из следующих формул:
=И(A2=B2; A2=C2)
или
=ЕСЛИ(И(A2=B2; A2=C2); "Совпадает"; "НЕ совпадает")
Оператор И возвращает ИСТИНА, если все клетки таблицы содержат одно и то же значение, ЛОЖЬ, если любое значение отличается. Функция ЕСЛИ выводит введенные вами метки: «Совпадает» и «Не совпадает».
Как показано на скриншоте ниже, формула отлично работает с любыми типами данных - текстом, датами и числовыми значениями:
Сравниваем несколько ячеек с учетом регистра букв.
Чтобы сопоставить несколько текстовых значений друг с другом и убедиться, что они точно совпадают, используйте:
=И(СОВПАД(A2;B2); СОВПАД(A2; C2))
или
=ЕСЛИ(И(СОВПАД(A2;B2);СОВПАД(A2; C2));"Точное совпадение"; "НЕ совпадает")
Как и в предыдущем примере, первая формула выдает значения ИСТИНА и ЛОЖЬ, тогда как вторая отображает ваши собственные сообщения для совпадений и различий:
Если же нам достаточно хотя бы двух совпадений значений, то сделаем это так:
=ЕСЛИ(ИЛИ(СОВПАД(A2;B2);СОВПАД(A2; C2);СОВПАД(B2;C2)); "Не менее 2 точных совпадений"; "НЕ совпадает")
То есть, если в двух случаях из трёх будут одинаковые значения, то это будет для нас положительным результатом.
Но если в нашей таблице нужно проверить много ячеек, то приведенное выше выражение с условием ИЛИ станет очень громоздким. Поэтому можно использовать функцию СЧЁТЕСЛИ.
Мы может рассчитать количество совпадений в нашем диапазоне ячеек при помощи этой формулы массива:
{=СЧЁТЕСЛИ(A2:D2;A2:D2)}
Чтобы выделить группы ячеек с полностью совпадающими значениями, можно использовать выражение:
=ЕСЛИ(СЧЁТЕСЛИ(A2:D2;A2:D2)=СЧЁТЗ(A2:D2);"Полное совпадение";"")
Как видите, регистр символов здесь, к сожалению, не учитывается.
Кроме того, обратите внимание на последнюю строку. В одной из ячеек имеются ведущие пробелы, поэтому полного совпадения нет. Аналогичный результат будет, если после текста случайно будет введен так называемый концевой пробел. А его визуально обнаружить крайне сложно. Поэтому обнаружение и удаление лишних пробелов — весьма важная задача. Ссылку на нужную инструкцию смотрите в конце этой статьи.
Сравните диапазон ячеек с образцом.
В следующих примерах показано, как можно проверить, что все адреса в заданном диапазоне содержат тот же текст, что и в ячейке-образце.
Совпадает ли ячейка с образцом?
Если регистр символов не имеет значения, вы можете использовать для сопоставления с образцом примерно такое выражение:
ЧСТРОК( диапазон ) * ЧИСЛСТОЛБ( диапазон ) = СЧЁТЕСЛИ( диапазон ; ячейка образца )
В логической проверке функции ЕСЛИ вы проверяете равенство двух чисел:
- Общее количество ячеек в указанном диапазоне (количество строк, умноженное на количество столбцов), и
- Количество ячеек, содержащих то же значение, что и в образце (возвращенное функцией СЧЁТЕСЛИ ).
Предполагая, что образец текста находится в C2, а данные находятся в диапазоне A2: B6, формула выглядит следующим образом:
(ЧСТРОК(A2:B6)*ЧИСЛСТОЛБ(A2:B6))=СЧЁТЕСЛИ(A2:B6;C2)
Чтобы сделать результаты более удобными для пользователя, т. е. вывести осмысленный текст вместо ИСТИНА и ЛОЖЬ, используйте функцию ЕСЛИ, как мы делали в предыдущих примерах:
=ЕСЛИ((ЧСТРОК(A2:B6)*ЧИСЛСТОЛБ(A2:B6))=СЧЁТЕСЛИ(A2:B6;C2);"Всё совпадает"; "Есть несовпадения")
Как показано на скриншоте выше, формула отлично справляется с диапазоном текстовых значений, но ее также можно использовать для сопоставления чисел и дат.
Проверяем совпадение с образцом с учётом регистра букв.
Если регистр символов имеет значение, вы можете проверить совпадение ячейки с образцом текста, используя следующие формулы массива.
ЕСЛИ((ЧСТРОК(диапазон )*ЧИСЛСТОЛБ(диапазон ))=(СУММ(--СОВПАД( образец ; диапазон ))); "текст_если_ совпадает";"текст_если_НЕ_совпадает")
Поскольку исходный диапазон находится в области A2: B6, а образец текста - в C2, получаем следующее:
{=ЕСЛИ((ЧСТРОК(B2:C6)*ЧИСЛСТОЛБ(B2:C6))=(СУММ(--СОВПАД(C2;B2:C6))); "Всё совпадает";"НЕ совпадает")}
В отличие от обычных формул Excel, формулы массива заполняются нажатием Ctrl + Shift + Enter. При правильном вводе Excel заключает формулу массива в {фигурные скобки}, как показано ниже:
Как сравнить две ячейки по длине.
Иногда вам может потребоваться проверить, содержат ли данные в каждой ячейке одинаковое количество символов. Решение для этой задачи очень простое. Сначала вы получаете длину каждой из этих двух ячеек с помощью функции ДЛСТР, а затем проверяете равенство этих чисел.
Предположим, что исходные значения находятся в A2 и B2. Используйте любой из вариантов:
=ДЛСТР(A2)=ДЛСТР(B2)
или
=ЕСЛИ(ДЛСТР(A2)=ДЛСТР(B2); "Равная длина"; "Длины не равны")
Как вы понимаете, первый возвращает логические значения ИСТИНА или ЛОЖЬ, тогда как второй выводит ваши собственные результаты:
Как показано на скриншоте выше, формулы работают как для текста, так и для чисел.
Примечание. Если две, казалось бы, одинаковые ячейки с текстом возвращают разную длину, скорее всего, проблема в начальных или конечных пробелах в одной или обеих из них. В этом случае удалите лишние пробелы с помощью функции СЖПРОБЕЛЫ. Подробное объяснение и примеры можно найти здесь: Как удалить пробелы в Excel .
Сравнение ячеек по вхождению определенного символа
Это последний пример в нашем руководстве по сравнению ячеек в Excel, и он показывает решение для довольно конкретной задачи. Предположим, у вас есть 2 столбца текстовых значений, которые содержат важный для вас символ. Ваша цель - проверить, содержат ли две ячейки в каждой строке одинаковое количество вхождений данного символа.
Чтобы было понятнее, рассмотрим следующий пример. Допустим, у вас есть два списка отгруженных заказов (столбец B) и полученных (столбец C). Каждая запись таблицы содержит заказы на конкретный товар, уникальный идентификатор которого включен во все идентификаторы заказа и указан в той же строке в столбце A (см. скриншот ниже). Вы хотите убедиться, что каждая строка содержит равное количество отправленных и полученных товаров с этим конкретным идентификатором.
Чтобы решить эту проблему, будем действовать следующим образом:
- Во-первых, замените код заказа ничем с помощью функции ПОДСТАВИТЬ:
ПОДСТАВИТЬ(A1; код;"")
- Затем подсчитайте, сколько раз код появляется в каждой ячейке. Для этого получите длину её содержимого без кода и вычтите ее из общей первоначальной длины ячейки. Эта операция должна быть выполнена для 1 и 2 ячейки отдельно, например:
ДЛСТР(B2)-ДЛСТР(ПОДСТАВИТЬ(B2; $A2;""))
а также
ДЛСТР(C2)-ДЛСТР(ПОДСТАВИТЬ(C2; $A2;""))
- Теперь вы приравниваете эти 2 числа, поместив знак равенства (=) между указанными выше частями.
ДЛСТР(B2)-ДЛСТР(ПОДСТАВИТЬ(B2; $A2;"")) = ДЛСТР(C2)-ДЛСТР(ПОДСТАВИТЬ(C2; $A2;""))
В нашем примере код находится в A2, а значения находится в B2 и C2.
Выражение возвращает ИСТИНА, если B2 и C2 содержат одинаковое количество вхождений символа из A2, в противном случае - ЛОЖЬ. Чтобы сделать результаты более понятными для ваших пользователей, вы можете встроить его в функцию ЕСЛИ:
=ЕСЛИ(ДЛСТР(B2)-ДЛСТР(ПОДСТАВИТЬ(B2; $A2;"")) = ДЛСТР(C2)-ДЛСТР(ПОДСТАВИТЬ(C2; $A2;"")); "Совпадает"; "НЕ совпадает")
Как вы можете видеть на скриншоте выше, всё работает отлично, несмотря на пару дополнительных сложностей:
- Подсчитываемый символ (уникальный идентификатор) может появляться в любом месте ячейки.
- Записи содержат переменное количество символов и разные разделители, такие как точка с запятой, запятая или пробел.
Вот как можно при помощи формул можно сравнивать ячейки в Excel. Благодарю вас за чтение.