Google Sheets - формула для возврата N первых значений из диапазона A, где MAX (диапазон B) - PullRequest
1 голос
/ 17 марта 2019

F1: N1 со случайными числами (может иметь дубликаты).
F2: N2 с отсортированными номерами.
Нужна формула для заполнения A1: C1 значениями из F2: N2, где F1: N1 имеет максимальное значение.
В примере это должно быть 1,8,3 от F2: N2 - согласно 9,9,8 от F1: N1.


_ A B C D E F G H I J K L M N
1 ? ? ?     9 3 8 1 5 5 3 9 8
2           1 2 3 4 5 6 7 8 9

Ответы [ 3 ]

1 голос
/ 17 марта 2019

Вы можете сделать это с помощью "строки помощника", чтобы создать список уникальных рангов:

F3:  =RANK(F1,$F$1:$N$1)+COUNTIF($F$1:F1,F1)-1
  and fill right to N3

Поскольку ваши значения в F2:N2 являются последовательными {1...8}, вы можете использовать эту формулу:

A1:  =MATCH(SMALL($F$3:$N$3,COLUMNS($A:A)),$F$3:$N$3,0)
  and fill right to C1

Если значения в F2:N2 являются случайными, вы можете использовать это:

A1:   =INDEX($F$2:$N$2,1,MATCH(SMALL($F$3:$N$3,COLUMNS($A:A)),$F$3:$N$3,0))
   and fill right to C1

enter image description here

0 голосов
/ 17 марта 2019

Никто не запрыгнул, чтобы предложить решение для Google Sheets, поэтому вот один:

=query(transpose(sortn(transpose(F1:N2),3,,1,false,2,true)),"select Col1,Col2,Col3 limit 1 offset 1")

В А1. Это саморасширяющаяся формула, поэтому ее не нужно заполнять поперек и не нужны вспомогательные строки.

enter image description here

EDIT

«Предел 1» может быть опущен в приведенной выше формуле, как указано в комментарии.

Также это немного короче:

=transpose(query(sortn(transpose(F1:N2),3,,1,false,2,true),"Select Col2"))    
0 голосов
/ 17 марта 2019

Excel Solution with helper cells

Формула в A1 = INDEX($F$2:$N$2,MATCH(COLUMN(A1),$F$3:$N$3,0)) и перемещается до C1
Формула в F3 = RANK(F1,$F$1:$N$1)+COUNTIF($F$1:F1,F1)-1 и тянется до N3

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