Формула Excel: поиск и получение недостающих значений -

Содержание

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

=INDEX(complete,MATCH(TRUE,ISNA(MATCH(complete, partial_expanding,0)),0))

Резюме

Чтобы сравнить два списка и извлечь отсутствующие значения из одного списка в другой, вы можете использовать формулу массива, основанную на ИНДЕКС и ПОИСКПОЗ. В показанном примере последнее значение в списке B находится в ячейке D11. Копируемая формула в D12:

=INDEX(complete,MATCH(TRUE,ISNA(MATCH(complete,$D$5:D11,0)),0))

где «полный» - именованный диапазон B5: B15.

Примечание: это формула массива, и ее нужно вводить с помощью Ctrl + Shift + Enter.

Объяснение

Ядром этой формулы, работающей изнутри наружу, является внутреннее выражение MATCH:

ISNA(MATCH(complete,$D$5:D11,0)

Здесь функция ПОИСКПОЗ используется для сравнения всех «полных» значений с частичным списком. Именованный диапазон «полный» используется для значений поиска, а частичный список используется в качестве массива поиска. Обратите внимание, однако, что частичный список вводится как расширяющийся диапазон, который заканчивается «на одну ячейку выше» ячейки формулы. Это позволяет частичному списку расширяться и включать новые значения, которые появляются под исходным списком.

Результатом MATCH является массив чисел и # N / A ошибок, где числа представляют значения в полном списке, которые существуют в частичном списке; а ошибки представляют собой пропущенные значения:

(1;#N/A;2;3;#N/A;4;5;6;#N/A;7;#N/A)

Функция ISNA используется для преобразования этих результатов в массив значений TRUE и FALSE. В этом массиве TRUE соответствует отсутствующим значениям, а FALSE соответствует существующим значениям:

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

Функция ISNA возвращает этот массив внешнему MATCH как поисковый массив. Функция MATCH всегда возвращает первое найденное совпадение, поэтому match будет возвращать позицию (строку) первого найденного отсутствующего значения. Этот результат возвращается в INDEX как номер строки, а именованный диапазон "завершен" предоставляется в виде массива.

В ячейке D12 первое найденное отсутствующее значение - "киви" в строке 2, поэтому мы имеем:

=INDEX(complete,2) // returns "kiwi"

В D13 «киви» теперь включен в расширяющуюся ссылку, поэтому первое отсутствующее значение - «груша»:

=INDEX(complete,5) // returns "pear"

И так далее. После добавления всех отсутствующих значений формула вернет ошибку # N / A.

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