Мне нужно получить второе наименьшее УНИКАЛЬНОЕ значение, исключая ноль и исключая любые повторяющиеся значения.
Вот пример моих данных:
0
1
1
3
2
4
5
Мне нужно значение 2
решение1
Вот решение с использованием опорных ячеек, так легче увидеть логику, однако вы, конечно, можете объединить все в одну формулу.
=COUNTIF(A1:A7,0)
- подсчитать количество ячеек, содержащих0
=COUNTIF(A1:A7,SMALL(A1:A7,D1+1))
- подсчитать количество ячеек, содержащих наименьшее значение (исключая0
)=SMALL(A1:A7,D1+D2+1)
- второе наименьшее значение
Общая формула будет выглядеть так:
=SMALL(A1:A7,COUNTIF(A1:A7,0)+COUNTIF(A1:A7,SMALL(A1:A7,COUNTIF(A1:A7,0)+1))+1)
решение2
Это зависит от того, как вы хотите это сделать, но вот способ: используйте этот снимок экрана в качестве примера (я взял ваш пример, но использовал 3 для второго самого низкого значения...)
Предположим, что у вас все время есть нули, в противном случае быстрый способ — добавить ноль... или добавить еще немного теста...
- упорядочьте столбец с числами от A->Z (от наименьшего значения к наибольшему)
- добавьте столбец слева от него с помощью следующего кода
=IF(F7>F6;1;0)+E6
- в ячейке найдите второе значение с помощью vlookup
=VLOOKUP(2;E6:F13;2;TRUE)
Вы добавляете столбец слева от столбца данных, потому что вам нужен поиск
Вы также можете добавить проверку непосредственно для полученных значений, ЕСЛИ 2, то вернуть значение и отфильтровать столбец по этому значению или выполнить сумму столбца в ячейке (так как будет только одно значение, то будет возвращено значение)
Надеюсь, это поможет.
ps: возможно, вам придется использовать запятые вместо «;» в формуле..
решение3
Вы можете попробовать:
=IFERROR(AGGREGATE(15,6,1/(1/((COUNTIF(A2:A8,A2:A8)=1)*A2:A8)),2),MAX(A2:A8))