
Общая формула
=MIN(UNIQUE(range,0,1))
Резюме
Чтобы найти минимальное уникальное значение в наборе данных, вы можете использовать функцию UNIQUE вместе с функцией MIN. В приведенном ниже примере формула E5 выглядит так:
=MIN(UNIQUE(data,0,1))
где «данные» - именованный диапазон B5: B14.
В более старых версиях Excel вы можете использовать формулу массива на основе функций МИН, ЕСЛИ и СЧЁТЕСЛИ, как описано ниже.
Объяснение
Цель этого примера - вернуть минимальное уникальное значение, то есть минимальное значение, которое встречается в данных только один раз.
Функция UNIQUE, новая в Excel 365, возвращает уникальный список значений из набора данных. По умолчанию это список любых значений, которые встречаются в данных один или несколько раз.
У UNIQUE есть необязательный третий аргумент, называемый точно_once, который ограничивает результаты значениями, которые встречаются только один раз в исходных данных. Чтобы включить эту функцию, аргумент должен иметь значение ИСТИНА или 1.
Работая изнутри, функция UNIQUE настраивается так:
UNIQUE(data,0,1)
Для массива мы предоставляем данные именованного диапазона . Для аргумента by_col мы используем ноль (0), поскольку нам нужны уникальные значения по строкам, а не по столбцам. Наконец, для even_once мы предоставляем 1, так как нам нужны только значения, которые встречаются в исходных данных только один раз.
При такой настройке UNIQUE возвращает 4 значения, которые появляются только один раз:
(700;600;500;300) // result from unique
Этот массив возвращается непосредственно в функцию MIN, которая возвращает минимальное значение 300 в качестве окончательного результата:
=MIN((700;600;500;300)) // returns 300
Формула массива с СЧЁТЕСЛИ
Если вы используете версию Excel без функции UNIQUE, вы можете найти минимальное уникальное значение с помощью формулы массива, основанной на функциях COUNTIF, MIN и IF.
(=MIN(IF(COUNTIF(data,data)=1,data)))
Это формула массива, и ее нужно вводить с помощью Ctrl + Shift + Enter, кроме Excel 365.
Работая изнутри, функция СЧЁТЕСЛИ используется для подсчета каждого значения в данных следующим образом:
COUNTIF(data,data) // count all values
Поскольку в данных именованного диапазона 10 значений , COUNTIF возвращает массив из 10 результатов:
(2;1;1;2;1;2;2;2;1;2)
Этот массив содержит количество каждого значения. Затем мы проверяем массив на значения, равные 1:
(2;1;1;2;1;2;2;2;1;2)=1
Снова получаем массив с 10 результатами:
(FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE)
Каждое значение ИСТИНА соответствует значению в исходных данных, которое встречается только один раз. Этот массив передается непосредственно в функцию IF, которая использует его как фильтр. Только значения в данных, связанных с ИСТИНА, попадают в массив, возвращаемый IF, все остальные значения - ЛОЖЬ.
(FALSE;700;600;FALSE;500;FALSE;FALSE;FALSE;300;FALSE)
Этот массив возвращается непосредственно в функцию MIN, которая автоматически игнорирует логические значения и возвращает минимум оставшихся значений, 300, в качестве окончательного результата.