Excel n-е наименьшее значение DISTINCT - PullRequest
0 голосов
/ 17 октября 2019

У меня есть набор значений, функция Small дает мне возможность получить 5 самых маленьких значений. но это не учитывает дубликаты. Я хочу видеть каждое значение только один раз. например:

1 2 2 3 4 5

я хочу вывести 1,2,3,4,5, а не 1,2,2,3,4

Я помещаю вывод в 5 различных столбцов с формулой Small (A1: A20, [1-5]), но я не уверен, как сказать, чтобы он смотрел только на каждое отдельное значение в диапазоне

Ответы [ 3 ]

1 голос
/ 17 октября 2019

Если кто-то имеет доступ к формулам динамического массива (в настоящее время доступен только для инсайдеров Office 365), его можно просто поместить в первую ячейку, и результаты будут распределены по:

=SMALL(UNIQUE(A:A),SEQUENCE(,5))

enter image description here


В противном случае нам нужно определенным образом использовать некоторую формулу массива.

У нас должно быть что-то кроме числа в ячейке, непосредственно предшествующей тому, где мы помещаемформула в первой ячейке. Поэтому, если я помещаю формулу в C1, B1 не должен содержать одно из чисел, как нам нужно, чтобы сослаться на него.

Поместите это в C1:

=SMALL(IF(COUNTIF($B$1:B$1,$A$1:$A$20)=0,$A$1:$A$20),1)

Будучи формулой массиваэто должно быть подтверждено Ctrl-Shift-enter вместо Enter при выходе из режима редактирования. Затем скопируйте более 5 столбцов.

enter image description here


Если вы не можете покинуть ячейку B1 без номера, тогда мы должны получить массив другим способом:

Поместите эту формулу массива в первую ячейку:

=SMALL(INDEX($A:$A,N(IF({1},MODE.MULT(IF(MATCH($A$1:$A$20,$A:$A,0)=ROW($A$1:$A$20),ROW($A$1:$A$20)*{1,1}))))),COLUMN(A:A))

Будучи формулой массива, она должна быть подтверждена Ctrl-Shift-enter вместо Enter при выходе из режима редактирования. Затем скопируйте более 5 столбцов.

enter image description here

0 голосов
/ 17 октября 2019

Вот еще один вариант и в единой формуле

Предположим, ваши данные 1 2 2 3 4 5 вставлены в A1: A6

B1, оставлено пустым

В C1,Перекрестная формула пересекается вправо до тех пор, пока не будет пусто

=IFERROR(1/(1/AGGREGATE(15,6,$A$1:$A$20/($A$1:$A$20>B1),1)),"")

Редактировать: AGGREGATE - это функция для Excel 2010 или выше

0 голосов
/ 17 октября 2019

Вот еще один вариант:

enter image description here

Формула в C1:

=SMALL($A:$A,COUNTIF($A:$A,"<="&B1)+1)

Перетащите вправо ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...