Формула Excel: поиск точного соответствия с помощью ИНДЕКС и ПОИСКПОЗ -

Содержание

Общая формула

(=INDEX(data,MATCH(TRUE,EXACT(val,lookup_col),0),col_num))

Резюме

Поиск с учетом регистра

По умолчанию при стандартном поиске с помощью VLOOKUP или INDEX + MATCH регистр не учитывается. И ВПР, и ПОИСКПОЗ просто вернут первое совпадение, игнорируя регистр.

Однако, если вам нужно выполнить поиск с учетом регистра, вы можете сделать это с помощью формулы массива, которая использует ИНДЕКС, ПОИСКПОЗ и функцию ТОЧНОСТЬ.

В этом примере мы используем следующую формулу

(=INDEX(data,MATCH(TRUE,EXACT(F4,B3:B102),0),3))

Эта формула представляет собой формулу массива, и ее необходимо вводить с помощью Control + Shift + Enter.

Объяснение

Поскольку только ПОИСКПОЗ не чувствительно к регистру, нам нужен способ заставить Excel сравнивать регистр. Функция EXACT - идеальная функция для этого, но то, как мы ее используем, несколько необычно, потому что нам нужно сравнить одну ячейку с диапазоном ячеек.

Работая изнутри наружу, мы сначала имеем:

EXACT(F4,B3:B102)

где F4 содержит значение поиска, а B3: B102 - это ссылка на столбец поиска (имена). Поскольку мы даем ТОЧНЫЙ массив в качестве второго аргумента, мы вернем массив ИСТИННЫХ ложных значений, например:

(ЛОЖЬ, ЛОЖЬ, ЛОЖЬ, ЛОЖЬ, ЛОЖЬ, ИСТИНА и т. Д.)

Это результат сравнения значения B4 в каждой ячейке столбца подстановки. Где бы мы ни увидели ИСТИННО, мы знаем, что у нас есть точное совпадение с учетом регистра.

Теперь нам нужно получить позицию (т.е. номер строки) ИСТИННОГО значения в этом массиве. Для этого мы можем использовать MATCH, ища TRUE и устанавливая режим точного совпадения:

MATCH(TRUE,EXACT(F4,B3:B102),0)

Важно отметить, что MATCH всегда будет возвращать первое совпадение, если есть дубликаты, поэтому, если в столбце будет другое точное совпадение, вы найдете только первое совпадение.

Теперь у нас есть номер строки. Затем нам просто нужно использовать INDEX, чтобы получить значение на правом пересечении строки и столбца. Номер столбца в этом случае жестко задан как 3, поскольку данные именованного диапазона включают все столбцы. Итоговая формула:

(=INDEX(data,MATCH(TRUE,EXACT(F4,B3:B102),0),3))

Мы должны ввести эту формулу как формулу массива из-за массива, созданного EXACT.

Эта формула будет извлекать как текстовые, так и числовые значения. Если вы хотите получать только числа, вы можете использовать формулу на основе СУММПРОИЗВ; см. ссылку ниже

Интересные статьи...