Как получить второе наименьшее значение, исключая ноль и игнорируя дубликаты в Excel

Как получить второе наименьшее значение, исключая ноль и игнорируя дубликаты в Excel

Мне нужно получить второе наименьшее УНИКАЛЬНОЕ значение, исключая ноль и исключая любые повторяющиеся значения.

Вот пример моих данных:

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 для второго самого низкого значения...)

Предположим, что у вас все время есть нули, в противном случае быстрый способ — добавить ноль... или добавить еще немного теста...
Снимок экрана Excel

  1. упорядочьте столбец с числами от A->Z (от наименьшего значения к наибольшему)
  2. добавьте столбец слева от него с помощью следующего кода
    =IF(F7>F6;1;0)+E6
  3. в ячейке найдите второе значение с помощью 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))

Связанный контент