Я понял это, перевернув решение для нахождения общих значений, приведенных на этой странице:
Как найти общие значения из двух списков
Он работает как функция массива, поэтому вы должны нажать Ctrl + Shift + Enter после ввода. Преимущество использования этого как функции массива состоит в том, что он не оставляет кучу пробелов для редактирования. Все соответствующие значения находятся вверху.
У меня есть список из 40 эталонных значений в столбце A, я ввожу список из 7 неизвестных значений для сравнения в столбце B и хочу получить список в столбце C, показывающий значения в столбце B, которых нет в столбце А.
=INDEX($B$2:$B$7, SMALL(IF(COUNTIF($A$2:$A$40,$B$2:$B$7),"",ROW($B$2:$B$7)-MIN(ROW($B$2:$B$7))+1),ROW(B1)))
Оператор COUNTIF генерирует массив из 1 и 0 в зависимости от того, находится ли значение в столбце B в столбце A (1, если да, 0, если нет).
Так как я ищу необычные значения, у меня есть оператор IF, возвращающий массив значений строк, соответствующих значениям в B, которых нет в A. Бит ~ Row-Min (Row) +1 гарантирует, что вы используете значение правой строки.
SMALL возвращает значение ROW (B1), наименьшее (например, 1-е наименьшее или 4-е наименьшее) из массива, возвращаемого оператором IF. Так что теперь у меня есть одно значение вместо массива.
INDEX возвращает значение строки в столбце B.
Не забудьте нажать Ctrl + Shift + Enter.