Excel - назначить индекс каждому значению является отсортированный массив - PullRequest
0 голосов
/ 29 ноября 2018

Я знаю, что вопрос не может действительно объяснить, о чем я спрашиваю, поэтому позвольте мне объяснить это здесь.По сути, в моей таблице есть строка, содержащая, например, 10 значений.Допустим, это выглядит так:

0.60|0.60|0.60|1.40|0.90|1.05|0.00|0.00

В этой строке у меня есть пустая строка, и проблема в том, что я должен присвоить каждому из этих значений ее позицию в обратном порядке.отсортированный массив этих значений (без дубликатов).В данном конкретном случае:

Сортированный массив: 0.00, 0.60, 0.90, 1.05, 1.40

Таким образом, я бы записал следующую строку: 4|4|4|1|3|2|5|5| (индексирование из 1)

Есть лиспособ написать формулу для такого рода проблемы?Или я должен сделать это вручную?

1 Ответ

0 голосов
/ 29 ноября 2018

Используйте эту формулу массива:

=MATCH(A1,LARGE(IF(MATCH($A$1:$H$1,$A$1:$H$1,0)=COLUMN($A$1:$H$1)-COLUMN($A$1)+1,$A$1:$H$1),ROW($A$1:INDEX($A:$A,SUMPRODUCT(1/COUNTIF($A$1:$H$1,$A$1:$H$1))))),0)

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

LARGE(IF(MATCH($A$1:$H$1,$A$1:$H$1,0)=COLUMN($A$1:$H$1)-COLUMN($A$1)+1,$A$1:$H$1),ROW($A$1:INDEX($A:$A,SUMPRODUCT(1/COUNTIF($A$1:$H$1,$A$1:$H$1))))) возвращает отсортированный массив, и MATCH найдет расположение чисел в этом массиве.

Настройте все диапазоны на ваш набор данных ИСКЛЮЧИТЬ ...ROW($A$1:INDEX($A:$A,... Это счетчики, которые должны оставаться как есть, независимо от того, где находится набор данных.

enter image description here

...