Этот небольшой урок объясняет, как сделать функцию ВПР (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.")
Оцените качество статьи. Нам важно ваше мнение:
Есть ли слово в списке MS EXCEL
Найдем слово в диапазоне ячеек, удовлетворяющее критерию: точное совпадение с критерием, совпадение с учетом регистра, совпадение лишь части символов из слова и т.д.
update Опубликовано: 07 апреля 2013
Подсчет ТЕКСТовых значений с учетом РЕгиСТра в MS EXCEL
Буквы могут находиться в ВЕРХНЕМ и нижнем регистре (ПРОПИСНЫЕ и строчные). Текстовые строки, соответственно, могут состоять целиком из строчных или ПРОПИСНЫХ букв, а также состоять из букв находящихся в разном …
update Опубликовано: 19 апреля 2013
Функция ВПР и другие подобные ей функции поиска имеют один недостаток – они не могут различать верхний и нижний регистр символов (большие и маленькие буквы). Данный недостаток может оказаться весьма раздражающим, а иногда существенно усложняющим для определенного рода задач. Если поставленная перед вами задача в Excel требует учитывать регистр символов в тексте значений, тогда функцию ВПР (и подобные ей) следует заменить формулой.
Как заставить формулу Excel различать большие и маленькие буквы
Допустим, что содержимое исходного значения для поиска находится в ячейке D1, а таблица, по которой будет выполнен поиск, находится в диапазоне A1:B10.
Чтобы найти необходимые значения:
- В ячейку E1 введите следующую формулу:
- После ввода формулы, для подтверждения нажмите комбинацию горячих клавиш CTRL+SHIFT+Enter, так как формула должна быть выполнена в массиве. Если все сделано правильно в строке формул появятся фигурные скобки { }.
Пример таблицы и работы формулы показано на рисунке:
Как видно теперь в критериях поиска учитывается верхний регистр символов.
Внимание! Если таблица не содержит исходное значение для поиска, тогда формула возвращает пустую ячейку. Если же таблица содержит несколько дубликатов исходного значения, тогда формула возвращает последний дубликат. Это противоположный результат функции ВПР, которая при наличии дубликатов возвращает первый из них.
Принцип действия формулы поиска с учетом регистра
Для поиска значения формула использует функцию =СОВПАД(), которая сравнивает два текста. При этому учитывает верхний регистр символов и возвращает логическое значение ИСТИНА, если тексты значений совпали. Иначе будет возвращено логическое значение ЛОЖЬ. Так как мы используем эту функцию в массиве формул, сравнение значения D1 происходит с каждым значением всех ячеек таблицы в диапазоне A1:A10.
Задача функции =ЕСЛИ() – возвращать постой текст, в случаи когда логическое выражение ИЛИ(СОВПАД(A1:A10;D1)) возвращает значение ЛОЖЬ. Пустой текст формула вернет если функция СОВПАД не найдет ни одного совпадения при сравнении с исходным текстом. Если вместо этого значение будет найдено, то в фрагменте формулы: СОВПАД(A1:A10;D1)*СТРОКА(A1:B10) будет выполнен повторный поиск и в результате в память будет возвращен номер строки, которая содержит найденное значение. Здесь используется тот факт, что во врем выполнения арифметических действий логические значения ИСТИНА и ЛОЖЬ заменяются на числа 1 и 0 – соответственно. Поэтому в случаи, когда в процессе поиска текст найден, будет получено значение соответствующие номеру строки (иначе будет равно 0). Из всех полученных номеров строк функция =МАКС() выбирает наибольший и передает его в качестве аргумента для функции =ИНДЕКС(). Эта функция уже возвращает окончательный результат отображения значения ячейки из столбца B соответственной номеру выбранной строки.
Учет регистра аргумента в формуле/функции |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
In Excel datasets, sometimes you must have noticed, that there are many values in a table that are case-sensitive in nature. And if we want a particular type of value from our dataset, but unfortunately that value also has some duplicates, but with different case sensitivity, so here we need to search on the basis of case sensitivity. To make conditions worse, you only know one method to perform the search functions,i.e none other than VLOOKUP, and in nature, it is case-insensitive nature. What will you do? The only option to perform VLOOKUP in case of insensitivity is to optimize it using different methods.
But first, let us see how VLOOKUP is case-insensitive, by using an example:
Now, let’s suppose we have this dataset of a company, and what we want, is how much “KaTy” has earned, and we only know the VLOOKUP function to perform it. So, applying VLOOKUP straightforward to find “KaTy” is not possible. Nonetheless, the output of applying VLOOKUP is going to be
VLOOKUP will look for approximation, rather than going for an exact match.VLOOKUP will look for the first encountered value and will return it. This is a problem, as first, we want an exact match to the keyword provided, and second of all, we want it to search the whole range provided. So, we will use some methods and functions to meet these conditions.
VLOOKUP CASE SENSITIVE FORMULA:
To do the above task using a formula, we can use VLOOKUP’s embedded formulas,i.e on what range you want to find values, the keyword, or the numeric value to be found, etc. So, the formula for doing the above task will be:
=VLOOKUP("KaTy",$A$2:$B$7,2)
This will yield the same output table as obtained in the above example.It will search “KaTy” keyword in its default column,i.e column 1. The range for searching will be A2 to B7,i.e the whole dataset and the value for this keyword will be fetched from the 2nd column.
But, we want to make it case-sensitive by using some methods or some functions.
Here, we will use a virtual column,i.e known as a “Helper Column” in our formula, but technically, that column won’t be visible to us, as this helper function will be virtual in nature. Here, two functions, which are known as EXACT and CHOOSE are used. But first, let us apply the function and understand it part by part.
=VLOOKUP(MAX(EXACT("KaTy",$A$2:$A$7)*(ROW($A$2:$A$7))),CHOOSE({1,2},ROW($A$2:$A$7),$B$2:$B$7),2,0)
This will yield the following output:
Now, these case-sensitive values, when called exclusively, will return separate values for each one of them, and not return 27 as redundant data every time. But, how did this formula worked? Let’s understand it part by part:
- EXACT(“KaTy”,$A$2:$A$7)–Exact always creates a boolean array, which will store true, whenever there is an exact carbon copy match of a given keyword in a given range, which in this case, is A2 TO A7.So, the array for this case will look like
{ FALSE;FALSE;TRUE;FALSE;FALSE;FALSE}
- (EXACT(“KaTy”,$A$2:$A$7)*(ROW($A$2:$A$7))–This method will multiply every boolean value of the above array, which was created by EXACT, and will multiply it with the row number of every cell from A2 TO A7. And, whenever the returned value is TRUE,it will put the row number of that entry in the same index, in the newly created array, and whenever the value is not matched, it will return 0. Keep in mind, that we are starting our range from A2,so row number 2 will be the initial searching row for us. Now, as row 4 contains “KaTy”, so the returned array will put number 4 in the 4th index of the newly created array. The array will look like this:
{0;0;4;0;0;0}
- (CHOOSE({1,2},ROW($A$2:$A$7),$B$2:$B$7)–Here the real magic is done by CHOOSE function only. This function will also create an array, but that array will look different from the above arrays. This function will basically register the row number from every cell encountered in the 1st range, which is A2 TO A7 and will assign their corresponding values from the 2nd range, which is B2 TO B7. Here,{1,2} will signify each element’s nature,i.e how the values will be stored in the array. Each element will have the row number and corresponding to it, its value. So, the array will look like
{2,16;3,27;4,6;5,18;6,32;7,11}
Here you can see, we are giving this unique identification to every argument of the dataset, and their case sensitivity is also undertaken here.
- (MAX(EXACT(“KaTy”,$A$2:$A$7)*(ROW($A$2:$A$7)))– This will return the maximum value, or should we say the row number on which “KaTy” is stored in the dataset. So, if you look at the array which was returned by the EXACT function, the MAX value will be 4.
The VLOOKUP will look on the virtual array, or the helper dataset created by the CHOOSE function, and the MAX and EXACT will guide the VLOOKUP function.
SUMPRODUCT IN TEXT VALUES:
Now,if you have to lookup only at the numbers, and your return value is also number(s), so here we can use the SUMPRODUCT method. This method will help us multiply the values directly, by not using any helper column, and applying functions to it, hence saving our time. The declaration for this method will look like–
=SUMPRODUCT (--(1st array),array2*,array3*,...)
The arguments marked with asterick(*) are optional arrays(or columns), if not provided, it will find the sum of values of the first array. The “–” in this formula is only applied in the first array, and it will convert TRUE/FALSE values into 0/1 accordingly, as SUMPRODUCT works in numeric values arrays.
To understand the above syntax, we will see an example–
Here in this dataset, mistakenly INDIA’s GDP was written in two columns, and we have to return the total value of INDIA’S GDP.So, we will use SUMPRODUCT to do the task. First the formula will be:
=SUMPRODUCT(--(A2:A6="INDIA"),B2:B6)
When this formula is applied to C2 column, under the column name “CORRECTED GDP”,the returned dataset will be:
Now, how did this happen? What did SUMPRODUCT do? First of all, take a look at the representation of what happened in SUMPRODUCT’s implementation:
Here, as explained above, the “–” converted the returned value of the “=” function, which was either TRUE or FALSE, and it converted TRUE into 1, and FALSE into 0. Then sumproduct did a multiplication function on these two arrays(columns), and the above representation shows, how it is done.
We were searching for the keyword “INDIA” in A2 TO A6, and after conversion by the “–“(double negation), the corresponding values are multiplied, and the result is stored in other columns, named as CORRECTED GDP.So, the corrected GDP for INDIA is 5 trillion$.
INDEX MATCH, a LOOKUP method for case-sensitive searching:
INDEX MATCH is probably the best contender for doing case-sensitive lookups in Excel. But, why? There are some points, that make INDEX MATCH lookup method very preferable in the lookup areas-
- Whatever data type you have, that has to look up, whether it is file, text, numerics, alphanumerics, etc,it is compatible on almost any data type you want.
- If you know the basics of the LOOKUP method, you must know that this method requires you to sort the lookup column, but in INDEX MATCH, there is no problem like this,i.e it works on unsorted lookup columns too.
- It does not require any helper column too.
Here, the MATCH function or INDEX function alone can’t achieve case-sensitive lookups, so we will use a method known as EXACT. As EXACT was helping VLOOKUP to achieve case sensitivity, here EXACT, combined with MATCH and INDEX function will make the INDEX MATCH method case-sensitive.
The syntax for this method will be:
{=INDEX(data from which value will be fetched by searching,MATCH(TRUE/FALSE,EXACT(Lookup Column Range,key),0))}
Note: As this formula is treated as an array function, so we will use Ctrl+Shift+Enter to execute the formula.
Now, we will understand the working and the syntax of this formula through an example–
Now, here in this dataset, the data entry person made a mistake and entered INDONESIA’s GDP two times in the same dataset, and we know is that the one with the “INDO” keyword is the correct one, and we will fetch its GDP. Now, we will use INDEX MATCH to accomplish it. The formula for this will be:
{=INDEX($B$2:$B$7,MATCH(TRUE,EXACT($A$2:$A$7,"INDO"),0))}
This will output us the GDP of “INDO”,i.e Indonesia, which is 2.1.
Now, we will understand its working part by part:
- EXACT($A$2:$A$7,”INDO”)–This will search for the keyword “INDO” in the given range, ie from A2 to A7, and the match will be exact.
- MATCH(TRUE,EXACT($A$2:$A$7,”INDO”)–This will return us the row number, on which the given keyword has been matched exactly, which in this case is 5.
- INDEX($B$2:$B$7,MATCH(TRUE,EXACT($A$2:$A$7,”INDO”),0))–This will search for the value in the given range, on which the given keyword in the range A2 to A7 has been matched, ie it will return 2.1 to us.
- Отрасль бизнеса: — Любая —
- Подразделение: — Любое —
- ERP-система: — Любая —
Обратите внимание, что далее приведены примерные образцы наиболее распространенных регистров налогового учета по налогу на прибыль.
Формы регистров налогового учета и порядок отражения в них аналитических данных должны быть разработаны налогоплательщиком самостоятельно и зафиксированы в учетной политике организации для целей налогообложения (ст. 314 НК РФ). Регистры налогового учета в обязательном порядке должны содержать следующие реквизиты: наименование регистра; период (дату) составления; измерители операции в натуральном и денежном выражении; содержание хозяйственных операций; подпись и расшифровку подписи лица, ответственного за составление указанных регистров.
Все приведенные далее формы налоговых регистров — в формате Excel, с прописанными формулами, форматами, полностью готовые как для ручного заполнения, так и для настройки автоматизированного заполнения.
… Если Вам нужна помощь с настройкой налогового учета и регистров налогового учета в ERP-системах SunSystems 4, Infor10 — обращайтесь в нашу компанию, мы с удовольствием Вам поможем.
Налоговый регистр по учету расходов на рекламу, включаемых в состав прочих расходов для целей налогообложения (скачать в формате Excel) |
Бухгалтерская справка-расчет суммы представительских расходов, включаемых в состав прочих расходов для целей налогообложения (скачать в формате Excel) |
Бухгалтерская справка-расчет по расходам на добровольное страхование работников, включаемых в состав прочих расходов для целей налогообложения (скачать в формате Excel) |
Налоговый регистр расчета процентов, включаемых в состав прочих расходов для целей налогообложения, по кредитам и займам (скачать в формате 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% и сокращает количество щелчков мышью на сотни каждый день!