Этот небольшой урок объясняет, как сделать функцию ВПР (VLOOKUP) чувствительной к регистру, показывает несколько других формул, которые могут искать в Excel с учётом регистра, а также указывает на сильные и слабые стороны каждой функции.
Полагаю, каждый пользователь Excel знает, какая функция осуществляет вертикальный поиск. Правильно, это функция ВПР. Однако, мало кто знает, что ВПР не чувствительна к регистру, то есть символы нижнего и ВЕРХНЕГО регистра для нее идентичны.
Вот быстрый пример, демонстрирующий неспособность ВПР распознать регистр. Предположим, в ячейке A1 содержится значение «bill», а в ячейке A2 – «Bill», формула:
=VLOOKUP("Bill",A1:A10,2)
=ВПР("Bill";A1:A10;2)
… остановит свой поиск на «bill», поскольку это значение идёт первым в списке, и извлечёт значение из ячейки B1.
Далее в этой статье я покажу способ сделать ВПР чувствительной к регистру. Кроме этого, мы изучим ещё несколько функций, которые могут выполнить поиск в Excel с учётом регистра.
Мы начнём с простейших – ПРОСМОТР (LOOKUP) и СУММПРОИЗВ (SUMPRODUCT), которые, к сожалению, имеют несколько существенных ограничений. Далее мы пристально рассмотрим чуть более сложную формулу ИНДЕКС+ПОИСКПОЗ (INDEX+MATCH), которая работает безукоризненно в любых ситуациях и с любыми наборами данных.
- Чувствительная к регистру функция ВПР – требует вспомогательный столбец
- Чувствительная к регистру функция ПРОСМОТР – требует сортировку данных
- СУММПРОИЗВ – возвращает только числовые значения
- ИНДЕКС+ПОИСКПОЗ – поиск с учётом регистра для всех типов данных
Содержание
- Функция ВПР чувствительная к регистру
- Как правильно пользоваться функцией КОДСИМВ
- Функция ПРОСМОТР для поиска с учётом регистра
- СУММПРОИЗВ – находит текстовые значения с учётом регистра, но возвращает только числа
- ИНДЕКС+ПОИСКПОЗ – поиск с учётом регистра для любых типов данных
- Почему ИНДЕКС+ПОИСКПОЗ – это лучшее решение для поиска с учётом регистра?
Функция ВПР чувствительная к регистру
Как Вам уже известно, обычная функция ВПР не учитывает регистр. Тем не менее, есть способ сделать её чувствительной к регистру. Для этого необходимо добавить вспомогательный столбец в таблицу, как показано в следующем примере.
Предположим, в столбце B находятся идентификаторы товаров (Item), и Вы хотите извлечь цену товара и соответствующий комментарий из столбцов C и D. Проблема в том, что идентификаторы содержат символы как нижнего, так и верхнего регистров. Например, значения ячеек B4 (001Tvci3u) и B5 (001Tvci3U) отличаются только регистром последнего символа, u и U соответственно.
Как Вы сами догадываетесь, обычная формула поиска
=VLOOKUP("001Tvci3U",$A$2:$C$7,2,FALSE)
=ВПР("001Tvci3U";$A$2:$C$7;2;ЛОЖЬ)
возвратит $90, поскольку значение 001Tvci3u стоит в диапазоне поиска раньше, чем 001Tvci3U. Но это не то, что нам нужно, не так ли?
Чтобы выполнить поиск функцией ВПР в Excel с учётом регистра, Вам придётся добавить вспомогательный столбец и заполнить его ячейки следующей формулой (где B это столбец поиска):
=CODE(MID(B2,1,1)) & CODE(MID(B2,2,1)) & CODE(MID(B2,3,1)) & CODE(MID(B2,4,1)) & CODE(MID(B2,5,1)) & CODE(MID(B2,6,1)) & CODE(MID(B2,7,1)) & CODE(MID(B2,8,1)) & IFERROR(CODE(MID(B2,9,1)),"")
=КОДСИМВ(ПСТР(B2;1;1)) & КОДСИМВ(ПСТР(B2;2;1)) & КОДСИМВ(ПСТР(B2;3;1)) & КОДСИМВ(ПСТР(B2;4;1)) & КОДСИМВ(ПСТР(B2;5;1)) & КОДСИМВ(ПСТР(B2;6;1)) & КОДСИМВ(ПСТР(B2;7;1)) & КОДСИМВ(ПСТР(B2;8;1)) & ЕСЛИОШИБКА(КОДСИМВ(ПСТР(B2;9;1));"")
Эта формула разбивает искомое значение на отдельные символы, заменяет каждый символ его кодом (например, вместо A код 65, вместо a код 97), а затем соединяет эти коды в уникальную строку цифр.
После этого используем простую функцию ВПР для поиска с учётом регистра:
=VLOOKUP($G$3,$A$2:$C$8,3,FALSE)
=ВПР($G$3;$A$2:$C$8;3;ЛОЖЬ)
Правильная работа функции ВПР с учётом регистра зависит от двух факторов:
- Вспомогательный столбец должен быть крайним левым в просматриваемом диапазоне.
- Искомое значение должно содержать код символов вместо реального значения.
Как правильно пользоваться функцией КОДСИМВ
Формула, вставленная в ячейки вспомогательного столбца, предполагает, что все Ваши искомые значения имеют одинаковое количество символов. Если нет, то нужно знать наименьшее и наибольшее количества и добавить столько функций ЕСЛИОШИБКА (IFERROR), сколько символов составляет разница между самым коротким и самым длинным искомым значением.
Например, если самое коротко искомое значение состоит из 3 символов, а самое длинное – из 5 символов, используйте такую формулу:
=CODE(MID(B2,1,1)) & CODE(MID(B2,2,1)) & CODE(MID(B2,3,1)) & IFERROR(CODE(MID(B2,3,1)),"") & IFERROR(CODE(MID(B2,4,1)),"")
=КОДСИМВ(ПСТР(B2;1;1)) & КОДСИМВ(ПСТР(B2;2;1)) & КОДСИМВ(ПСТР(B2;3;1)) & ЕСЛИОШИБКА(КОДСИМВ(ПСТР(B2;3;1));"") & ЕСЛИОШИБКА(КОДСИМВ(ПСТР(B2;4;1));"")
Для функции ПСТР (MID) Вы задаёте следующие аргументы:
- 1-й аргумент – text (текст) – это текст или ссылка на ячейку, содержащую символы, которые нужно извлечь (в нашем случае это B2)
- 2-й аргумент – start_num (начальная_позиция) – позиция первого из тех символов, которые нужно извлечь. Вы вводите 1 в первой функции ПСТР, 2 – во второй функции ПСТР и т. д.
- 3-й аргумент – num_chars (количество_знаков) – определяет количество знаков, которые нужно извлечь из текста. Так как нам всё время нужен только 1 символ, то во всех функциях пишем 1.
ОГРАНИЧЕНИЯ: Функция ВПР – это не лучшее решение для поиска в Excel с учётом регистра. Во-первых, требуется добавление вспомогательного столбца. Во-вторых, формула неплохо справляется, только если данные однородны, или известно точное количество символов в искомых значениях. Если это не Ваш случай, лучше используйте одно из решений, которые мы покажем далее.
Функция ПРОСМОТР для поиска с учётом регистра
Функция ПРОСМОТР (LOOKUP) сродни ВПР, однако её синтаксис позволяет искать с учётом регистра без добавления вспомогательного столбца. Для этого используйте ПРОСМОТР в сочетании с функцией СОВПАД (EXACT).
Если мы возьмём данные из предыдущего примера (без вспомогательного столбца), то с задачей справится следующая формула:
=LOOKUP(TRUE,EXACT($A$2:$A$7,$F$2),$B$2:$B$7)
=ПРОСМОТР(ИСТИНА;СОВПАД($A$2:$A$7;$F$2);$B$2:$B$7)
Формула ищет в диапазоне A2:A7 точное совпадение со значением ячейки F2 с учётом регистра и возвращает значение из столбца B той же строки.
Как и ВПР, функция ПРОСМОТР одинаково работает с текстовыми и числовыми значениями, это хорошо видно на снимке экрана внизу:
Важно! Для того, чтобы функция ПРОСМОТР работала правильно, значения в столбце поиска должны быть упорядочены по возрастанию, то есть от меньшего к большему.
Позвольте кратко объяснить, как действует функция СОВПАД в показанной выше формуле, поскольку это ключевой момент.
Функция СОВПАД сравнивает два текстовых значения в 1-ом и 2-ом аргументе и возвращает ИСТИНА (TRUE), если они в точности одинаковы, или ЛОЖЬ (FALSE), если нет. Для нас важным является то, что функция СОВПАД чувствительна к регистру.
Давайте разберёмся, как работает наша формула ПРОСМОТР+СОВПАД:
=LOOKUP(TRUE,EXACT($A$2:$A$7,$F$2),$B$2:$B$7)
=ПРОСМОТР(ИСТИНА;СОВПАД($A$2:$A$7;$F$2);$B$2:$B$7)
- Функция СОВПАД сравнивает значение ячейки F2 со всеми элементами в столбце A (A2:A7). Если точное совпадение найдено, возвращает ИСТИНА (TRUE), а если нет – ЛОЖЬ (FALSE).
- Так как Вы задаёте для первого аргумента функции ПРОСМОТР значение ИСТИНА (TRUE), то она извлекает соответствующее значение из указанного столбца (в нашем случае это столбец B), только если найдено точное совпадение с учётом регистра.
Надеюсь, это объяснение было понятным и теперь Вам понятна основная идея. Если да, то у Вас не возникнет каких-либо трудностей и с другими функциями, которые мы будем разбирать далее, т.к. все они работают по одинаковому принципу.
ОГРАНИЧЕНИЯ: Данные в столбце поиска должны быть упорядочены по возрастанию.
СУММПРОИЗВ – находит текстовые значения с учётом регистра, но возвращает только числа
Как Вы уже поняли из заголовка, СУММПРОИЗВ (SUMPRODUCT) это ещё одна функция Excel, которая поможет выполнить поиск с учётом регистра, но возвратит только числовые значения. Если этот вариант Вам не подходит, то можете сразу переходить к связке ИНДЕКС+ПОИСКПОЗ, которая даёт решение на любой случай и для любых типов данных.
Для начала, позвольте кратко объяснить синтаксис данной функции, это поможет лучше понять чувствительную к регистру формулу, которая следует далее.
Функция СУММПРОИЗВ перемножает элементы заданных массивов и возвращает сумму результатов. Синтаксис имеет такой вид:
SUMPRODUCT(array1,[array2],[array3],...)
СУММПРОИЗВ(массив1;[массив2];[массив3];…)
Раз нам необходим поиск с учётом регистра, используем функцию СОВПАД (EXACT) из предыдущего примера в качестве одного из множителей:
=SUMPRODUCT((EXACT($A$2:$A$7,$F$2)*($B$2:$B$7)))
=СУММПРОИЗВ((СОВПАД($A$2:$A$7;$F$2)*($B$2:$B$7)))
Как Вы помните, СОВПАД сравнивает значение ячейки F2 со всеми элементами в столбце A. В случае, если найдено точное совпадение, возвращает ИСТИНА (TRUE), иначе – ЛОЖЬ (FALSE). В математических операциях Excel принимает ИСТИНА (TRUE) за 1, а ЛОЖЬ (FALSE) за 0, далее СУММПРОИЗВ перемножает эти цифры и суммирует полученные результаты.
Нули не считаются, поскольку при умножении они всегда дают 0. Давайте посмотрим подробнее, что происходит, когда точное совпадение в столбце A найдено и возвращена 1. Функция СУММПРОИЗВ умножает число в столбце B на 1 и возвращает результат – точно такое же число! Так происходит потому, что результаты других произведений – нули, и они не влияют на получившуюся в итоге сумму.
К сожалению, функция СУММПРОИЗВ не может работать с текстовыми значениями и датами, так как их нельзя перемножить. В этом случае Вы получите сообщение об ошибке #ЗНАЧ! (#VALUE!), как в ячейке F4 на рисунке ниже:
ОГРАНИЧЕНИЯ: Возвращает только числовые значения.
ИНДЕКС+ПОИСКПОЗ – поиск с учётом регистра для любых типов данных
Наконец мы приблизились к неограниченной по возможностям и чувствительной к регистру формуле поиска, которая работает с любыми наборами данных.
Этот пример идёт последним не потому, что лучшее оставлено на десерт, а потому, что знания, полученные из предыдущих примеров, помогут лучше и быстрее понять чувствительную к регистру формулу ИНДЕКС+ПОИСКПОЗ (INDEX+MATCH).
Как Вы, наверное, догадались, комбинация функций ПОИСКПОЗ и ИНДЕКС используется в Excel как более гибкая и мощная альтернатива для ВПР. Статья Использование ИНДЕКС и ПОИСКПОЗ вместо ВПР прекрасно объяснит Вам, как эти функции работают в паре.
Я лишь напомню ключевые моменты:
- Функция ПОИСКПОЗ (MATCH) ищет значение в заданном диапазоне и возвращает его относительную позицию, то есть номер строки и/или столбца;
- Далее, функция ИНДЕКС (INDEX) возвращает значение из определённого столбца и/или строки.
Чтобы формула ИНДЕКС+ПОИСКПОЗ могла искать с учётом регистра, к ней нужно добавить лишь одну функцию. Не трудно догадаться, что это снова СОВПАД (EXACT):
=INDEX($B$2:$B$7,MATCH(TRUE,EXACT($A$2:$A$7,$F$2),0))
=ИНДЕКС($B$2:$B$7;ПОИСКПОЗ(ИСТИНА;СОВПАД($A$2:$A$7;$F$2);0))
В этой формуле СОВПАД работает так же, как и в связке с функцией ПРОСМОТР, и даёт такой же результат:
Заметьте, что формула ИНДЕКС+ПОИСКПОЗ заключена в фигурные скобки – это формула массива, и Вы должны завершить её ввод нажатием Ctrl+Shift+Enter.
Почему ИНДЕКС+ПОИСКПОЗ – это лучшее решение для поиска с учётом регистра?
Главные преимущества связки ИНДЕКС и ПОИСКПОЗ:
- Не требует добавления вспомогательного столбца, в отличие от ВПР.
- Не требует сортировки столбца поиска, в отличие от ПРОСМОТР.
- Работает со всеми типами данных – с числами, текстом и датами.
Эта формула кажется идеальной, не правда ли? На самом деле, это не так. И вот почему.
Предположим, что ячейка в столбце возвращаемых значений, связанных с искомым значением, пуста. Какой результат возвратит формула? Никакой? Давайте посмотрим, что возвратит формула на самом деле:
Упс, формула возвращает ноль! Это может быть не велика беда, если Вы работаете с чисто текстовыми значениями. Однако, если таблица содержит числа, в том числе «настоящие» нули – это становится проблемой.
На самом деле, все остальные формулы поиска (ВПР, ПРОСМОТР и СУММПРОИЗВ), которые мы обсуждали ранее, ведут себя так же. Но Вы же хотите безупречную формулу, так ведь?
Чтобы сделать чувствительную к регистру формулу ИНДЕКС+ПОИСКПОЗ идеальной, поместите её в функцию ЕСЛИ (IF), которая будет проверять ячейку с возвращаемым значением и возвращать пустой результат, если она пуста:
=IF(INDIRECT("B"&(1+MATCH(TRUE,EXACT($A$2:$A$7,$G$2),0)))<>"",INDEX($B$2:$B$7, MATCH(TRUE,EXACT($A$2:$A$7,$G$2),0)),"")
=ЕСЛИ(ДВССЫЛ("B"&(1+ПОИСКПОЗ(ИСТИНА;СОВПАД($A$2:$A$7;$G$2);0)))<>"";ИНДЕКС($B$2:$B$7; ПОИСКПОЗ(ИСТИНА;СОВПАД($A$2:$A$7;$G$2);0));"")
В этой формуле:
- B – это столбец с возвращаемыми значениями
- 1+ – это число, которое превращает относительную позицию ячейки, возвращаемую функцией ПОИСКПОЗ, в реальный адрес ячейки. Например, в нашей функции ПОИСКПОЗ задан массив поиска A2:A7, то есть относительная позиция ячейки A2 будет 1, потому что она первая в массиве. Но реальная позиция ячейки A2 в столбце – это 2, поэтому мы добавляем 1, чтобы компенсировать разницу и чтобы функция ДВССЫЛ (INDIRECT) извлекла значение из нужной ячейки.
Рисунки ниже демонстрируют исправленную чувствительную к регистру формулу ИНДЕКС+ПОИСКПОЗ в действии. Она возвращает пустой результат, если возвращаемая ячейка пуста.
Я переписал формулу в столбцы B:D, чтобы строка формул поместилась на скриншоте.
Формула возвращает 0, если возвращаемая ячейка содержит ноль.
Если Вы хотите, чтобы связка ИНДЕКС и ПОИСКПОЗ отображала какое-то сообщение, когда возвращаемое значение пусто, можете написать его в последних кавычках («») формулы, например, так:
=IF(INDIRECT("D"&(1+MATCH(TRUE,EXACT($B$2:$B$7,$G$2),0)))<>"",INDEX($D$2:$D$7, MATCH(TRUE,EXACT($B$2:$B$7,$G$2),0)),"There is nothing to return, sorry.")
=ЕСЛИ(ДВССЫЛ("D"&(1+ПОИСКПОЗ(ИСТИНА;СОВПАД($B$2:$B$7;$G$2);0)))<>"";ИНДЕКС($D$2:$D$7; ПОИСКПОЗ(ИСТИНА;СОВПАД($B$2:$B$7;$G$2);0));"There is nothing to return, sorry.")
Оцените качество статьи. Нам важно ваше мнение:
Функция ВПР и другие подобные ей функции поиска имеют один недостаток – они не могут различать верхний и нижний регистр символов (большие и маленькие буквы). Данный недостаток может оказаться весьма раздражающим, а иногда существенно усложняющим для определенного рода задач. Если поставленная перед вами задача в Excel требует учитывать регистр символов в тексте значений, тогда функцию ВПР (и подобные ей) следует заменить формулой.
Как заставить формулу Excel различать большие и маленькие буквы
Допустим, что содержимое исходного значения для поиска находится в ячейке D1, а таблица, по которой будет выполнен поиск, находится в диапазоне A1:B10.
Чтобы найти необходимые значения:
- В ячейку E1 введите следующую формулу:
- После ввода формулы, для подтверждения нажмите комбинацию горячих клавиш CTRL+SHIFT+Enter, так как формула должна быть выполнена в массиве. Если все сделано правильно в строке формул появятся фигурные скобки { }.
Пример таблицы и работы формулы показано на рисунке:
Как видно теперь в критериях поиска учитывается верхний регистр символов.
Внимание! Если таблица не содержит исходное значение для поиска, тогда формула возвращает пустую ячейку. Если же таблица содержит несколько дубликатов исходного значения, тогда формула возвращает последний дубликат. Это противоположный результат функции ВПР, которая при наличии дубликатов возвращает первый из них.
Принцип действия формулы поиска с учетом регистра
Для поиска значения формула использует функцию =СОВПАД(), которая сравнивает два текста. При этому учитывает верхний регистр символов и возвращает логическое значение ИСТИНА, если тексты значений совпали. Иначе будет возвращено логическое значение ЛОЖЬ. Так как мы используем эту функцию в массиве формул, сравнение значения D1 происходит с каждым значением всех ячеек таблицы в диапазоне A1:A10.
Задача функции =ЕСЛИ() – возвращать постой текст, в случаи когда логическое выражение ИЛИ(СОВПАД(A1:A10;D1)) возвращает значение ЛОЖЬ. Пустой текст формула вернет если функция СОВПАД не найдет ни одного совпадения при сравнении с исходным текстом. Если вместо этого значение будет найдено, то в фрагменте формулы: СОВПАД(A1:A10;D1)*СТРОКА(A1:B10) будет выполнен повторный поиск и в результате в память будет возвращен номер строки, которая содержит найденное значение. Здесь используется тот факт, что во врем выполнения арифметических действий логические значения ИСТИНА и ЛОЖЬ заменяются на числа 1 и 0 – соответственно. Поэтому в случаи, когда в процессе поиска текст найден, будет получено значение соответствующие номеру строки (иначе будет равно 0). Из всех полученных номеров строк функция =МАКС() выбирает наибольший и передает его в качестве аргумента для функции =ИНДЕКС(). Эта функция уже возвращает окончательный результат отображения значения ячейки из столбца B соответственной номеру выбранной строки.
Нижний регистр
В отличие от Word, в Excel нет кнопки смены регистра. Для перевода текста в нижний регистр – например, чтобы вместо «СЕРГЕЙ ИВАНОВ» или «Сергей Иванов» стало «сергей иванов» – необходимо воспользоваться функцией «СТРОЧН» . Преимущество использования функции заключается в том, что вы можете изменить регистр всего столбца текста одновременно. В примере ниже показано, каким образом это сделать.
-
Вставьте новый столбец возле столбца, содержащего текст, который необходимо преобразовать.Предположим, что новый столбец – это столбец B, а первоначальный столбец – это столбец A, и что ячейка A1 содержит заголовок столбца.
-
В ячейке B2 введите =LOWER(A2) и нажмите клавишу «ВВОД». Текст в ячейке B2 должен стать строчным.
-
Заполните этой формулой столбец B.
-
Теперь выберите преобразованные значения в столбце B, скопируйте их ивставьте как значенияповерх значений в столбце A.
-
Удалите столбец B, поскольку больше он вам не понадобится.
Верхний регистр
В отличие от Word, в Excel нет кнопки смены регистра. Для перевода текста в верхний регистр – например, чтобы вместо «сергей иванов» или «Сергей Иванов» стало «СЕРГЕЙ ИВАНОВ» – необходимо воспользоваться функцией «ПРОПИСН». Преимущество использования функции заключается в том, что вы можете изменить регистр всего столбца текста одновременно. В примере ниже показано, каким образом это сделать.
-
Вставьте новый столбец возле столбца, содержащего текст, который необходимо преобразовать.Предположим, что новый столбец – это столбец B, а первоначальный столбец – это столбец A, и что ячейка A1 содержит заголовок столбца.
-
В ячейке B2 введите =ПРОПИСН(A2) и нажмите клавишу «ВВОД». Текст в ячейке B2 должен стать прописным.
-
Заполните этой формулой столбец B.
-
Теперь выберите преобразованные значения в столбце B, скопируйте их ивставьте как значенияповерх значений в столбце A.
-
Удалите столбец B, поскольку больше он вам не понадобится.
Каждое слово с заглавной буквы
В отличие от Word, в Excel нет кнопки смены регистра. Для преобразования текста таким образом, чтобы все слова в тексте были с заглавной буквы – например, чтобы вместо «Сергей ИВАНОВ» или «СЕРГЕЙ ИВАНОВ» стало «Сергей Иванов» – необходимо воспользоваться функцией «ПРОПНАЧ» Преимущество использования функции заключается в том, что вы можете изменить регистр всего столбца текста одновременно. В примере ниже показано, каким образом это сделать.
-
Вставьте новый столбец возле столбца, содержащего текст, который необходимо преобразовать.Предположим, что новый столбец – это столбец B, а первоначальный столбец – это столбец A, и что ячейка A1 содержит заголовок столбца.
-
В ячейке B2 введите =ПРОПНАЧ(A2) и нажмите клавишу «ВВОД». Текст в ячейке B2 должен изменить регистр.
-
Заполните этой формулой столбец B.
-
Теперь выберите преобразованные значения в столбце B, скопируйте их ивставьте как значенияповерх значений в столбце A.
-
Удалите столбец B, поскольку больше он вам не понадобится.
Нужна дополнительная помощь?
Skip to content
Вы узнаете, как сравнивать значения в ячейках 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. Благодарю вас за чтение.
Предположим, у вас есть ряд данных, как показано на скриншоте ниже, и теперь вы хотите узнать цену предмета va-6. С помощью общей формулы поиска вы получите нечувствительность к цене первых совпавших данных. В этом руководстве мы расскажем о методах ВПР, чувствительных к регистру или нечувствительных к регистру в Excel.
Поиск без учета регистра с формулой ВПР
Поиск без учета регистра с Kutools for Excel
Поиск с учетом регистра с помощью SUMPRODUCT
Поиск с учетом регистра с помощью функции, определяемой пользователем
Поиск без учета регистра с формулой ВПР
Для ВПР значения, основанного на другом значении без учета регистра, вам понадобится всего лишь одна формула ВПР.
Выберите пустую ячейку, в которую будет помещено найденное значение, и введите эту формулу = ВПР (F1; $ A $ 2: $ C $ 7,3; FALSE) в него и нажмите Enter ключ для получения первых совпавших данных.
Наконечник: В формуле F1 — это значение, которое вы хотите найти, A2: C7 — это диапазон таблицы, а 3 — номер столбца, в котором вы хотите найти совпадающие данные, вы можете изменить их в соответствии с вашими потребностями.
Поиск без учета регистра с Kutools for Excel
Если у вас есть Kutools for Excel in установлен, вы можете использовать Найдите значение в списке функция для быстрого и легкого поиска значения без учета регистра.
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
1. Выберите пустую ячейку, в которую вы поместите математические данные, и нажмите Кутулс > Формула Помощник > Формула Помощник. Смотрите скриншот:
2. в Формула Помощник диалоговое окно, выберите Ищите ценность в списке из Выберите формулу раздел, затем перейдите в правый раздел, чтобы указать диапазон таблицы, значение поиска и столбец, к которому вы хотите вернуться. Смотрите скриншот:
3. Нажмите Ok, и теперь данные о совпадении были возвращены.
Поиск с учетом регистра с помощью SUMPRODUCT
Если вы хотите найти значение с учетом регистра, вы можете использовать функцию СУММПРОИЗВ.
Выберите пустую ячейку, в которую вы поместите данные соответствия, и введите эту формулу =SUMPRODUCT((EXACT($A$2:$A$7,$F$1)*($C$2:$C$7))) и нажмите Enter ключ для получения данных соответствия. Смотрите скриншот:
Наконечник: В формуле $ A $ 2: $ A $ 7 — это столбец, в котором вы найдете значение поиска, F1 — это значение, которое вы хотите найти, $ C $ 2: $ C $ 7 — это столбец, в котором вы хотите найти совпадающие данные. Вы можете изменить их по своему усмотрению.
Поиск с учетом регистра с помощью функции, определяемой пользователем
На самом деле, если вы хотите использовать функцию, определяемую пользователем, вот она, которая справится с этой задачей.
1. Нажмите F11 + Альт ключи для открытия Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте ниже VBA в новый Модули окно.
VBA: поиск значения с учетом регистра
Function CaseVLook(FindValue, TableArray As Range, Optional ColumnID As Integer = 1) As Variant
Dim xCell As Range
Application.Volatile
CaseVLook = "Not Found"
For Each xCell In TableArray.Columns(1).Cells
If xCell = FindValue Then
CaseVLook = xCell.Offset(0, ColumnID - 1)
Exit For
End If
Next
End Function
3. Сохраните код, вернитесь на активный рабочий лист и выберите пустую ячейку, в которую вы поместите данные соответствия, введите эту формулу. = CaseVLook (F1; A1: C7,3) в него и нажмите Enter ключ для получения результата. Смотрите скриншот:
Наконечник: В формуле F1 — это значение, которое вы хотите найти, A2: C7 — это диапазон таблицы, а 3 — номер столбца, в котором вы хотите найти совпадающие данные, вы можете изменить их в соответствии с вашими потребностями.
Относительные статьи:
- Как выполнить ВПР и вернуть несколько соответствующих значений по горизонтали в Excel?
- Как выполнить ВПР по наименьшему значению и вернуть соседнюю ячейку в Excel?
- Как ВПР с выпадающим списком в Excel?
- Как найти значение и вернуть адрес ячейки в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!