У меня есть данные в ячейках от А1 до Е1. все они числа. например, 6, 13, 13, 3, 15,.

Я хотел бы отсортировать их таким образом, чтобы на первом месте было наибольшее количество совпадений, а затем наибольшее, а за ним следовали меньшие числа, наименьшее - последнее.

Итак, в идеале результат должен быть таким:

13,13,15,6,3.

Я посчитал количество совпадений следующим образом:

H1 = COUNTIF($ A1:$ E1, A1) и распределите его от H1 до L1.

Затем отсортированы частоты появления:

N1 = LARGE($ H1:$ L1,1), M1 = LARGE($ H1:$ L1,2) и т.д. И получена правильная сортировка по количеству совпадений:

2,2,1,1,1

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

2 ответа2

1

В A2 формула массива **:

=INDEX($A1:$E1,MATCH(LARGE(COUNTIF($A1:$E1,$A1:$E1)+$A1:$E1/10^6,COLUMNS($A:A)),COUNTIF($A1:$E1,$A1:$E1)+$A1:$E1/10^6,0))

Скопируйте до E2 .

Предполагалось, что каждая ячейка в диапазоне A1:E1 всегда будет содержать число.

С уважением

** Формулы массива вводятся не так, как «стандартные» формулы. Вместо того, чтобы просто нажимать ENTER, вы сначала удерживаете CTRL и SHIFT, и только потом нажимаете ENTER. Если вы сделали это правильно, вы заметите, что Excel заключает в формулу фигурные скобки {} (хотя не пытайтесь вставить их вручную).

0

Я не знаю, практично ли это в вашей ситуации, но если вы можете преобразовать столбцы в строки, вы можете сделать это довольно просто.

Просто используйте =COUNTIF(A:A,A1) в B1 и перетащите вниз, затем сортируйте по столбцу Column B , затем по Column A Однако, если вам это нужно в столбцах, вам может потребоваться решение VBA.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .