Формула Excel: XLOOKUP с учетом регистра -

Содержание

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

=XLOOKUP(1,--EXACT(range1,"RED"),range2)

Резюме

Чтобы создать точное соответствие с учетом регистра, вы можете использовать функцию XLOOKUP с функцией EXACT. В показанном примере формула в F5:

=XLOOKUP(1,--EXACT(B5:B15,"RED"),B5:D15)

который соответствует "RED" (с учетом регистра) и возвращает всю строку.

Объяснение

Сама по себе функция XLOOKUP не чувствительна к регистру. Значение поиска «RED» будет соответствовать «красный», «RED» или «Red». Мы можем обойти это ограничение, построив подходящий поисковый массив для XLOOKUP с логическим выражением.

Работая изнутри, чтобы дать XLOOKUP возможность сопоставлять регистр, мы используем функцию EXACT следующим образом:

EXACT(B5:B15,"RED") // test for "RED"

Поскольку существует 11 значений в диапазоне E5: D15, EXACT возвращает массив с 11 результатами TRUE FALSE следующим образом:

(FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE)

Обратите внимание, что положение ИСТИНА соответствует строке, в которой цвет «КРАСНЫЙ».

Для краткости (и для того, чтобы логика могла быть легко расширена с помощью логической логики), мы устанавливаем значения ИСТИНА ЛОЖЬ до 1 и 0 с двойным отрицанием:

--EXACT(B5:B15,"RED") // convert to 1s and 0s

что дает такой массив:

(0;0;0;0;1;0;0;0;0;0;0)

Обратите внимание, что позиция 1 соответствует строке, в которой цвет «КРАСНЫЙ». Этот массив возвращается непосредственно в функцию XLOOKUP в качестве аргумента массива поиска.

Теперь мы можем просто формулу:

=XLOOKUP(1,(0;0;0;0;1;0;0;0;0;0;0),B5:D15)

При поисковом значении 1 XLOOKUP находит 1 в 5-й позиции и возвращает 5-ю строку в возвращаемом массиве B9: D9.

Расширяя логику

Структура логики легко расширяется. Например, чтобы сузить соответствие до «КРАСНЫЙ» в апреле месяце, вы можете использовать следующую формулу:

=XLOOKUP(1,EXACT(B5:B15,"RED")*(MONTH(C5:C15)=4),B5:D15)

Здесь, поскольку каждое из двух выражений возвращает массив значений ИСТИНА ЛОЖЬ, и поскольку эти массивы умножаются вместе, математическая операция переводит значения ИСТИНА и ЛОЖЬ в 1 и 0. Необязательно использовать двойное отрицание.

Поскольку значение поиска остается 1, как в приведенной выше формуле.

Первый и последний матч

Обе приведенные выше формулы вернут первое совпадение "КРАСНОГО" в наборе данных. Если вам нужно последнее совпадение, вы можете выполнить обратный поиск, установив аргумент режима поиска для XLOOKUP равным -1:

=XLOOKUP(1,--EXACT(B5:B15,"RED"),B5:D15,,,-1) // last match

Если вам нужно вернуть результаты из нескольких совпадений, см. Функцию ФИЛЬТР.

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