Ранговые и массивные формулы в Google Sheets на основе критериев из двух столбцов - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь ранжировать два столбца с помощью формулы массива:

Текущая формула:

=if(B2<>"",if(B2=B1,if(C1=1,2, C1+1),1),)

Вот ссылка на образец Google Sheet:

https://docs.google.com/spreadsheets/d/14BX3mO2Nd-RTMyhivwJ9w_rnVbVjSqE72o3Rdx-GQME/edit?usp=sharing

Я хотел бы иметь возможность создать формулу массива в столбце C, но несколько попыток поставили меня в тупик, если это возможно. По существу, столбец C должен располагаться в порядке убывания от $ до наибольшего $ из столбца A, и порядок, в котором он появляется, чтобы значения ранга не повторялись. Кроме того, ранг должен быть только один и тот же элемент в столбце B и отличается для каждого элемента.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

Это должно работать, если положить в C1:

=ARRAYFORMULA({"Rank";IF(B2:B="",,COUNTIFS(B2:B,B2:B,A2:A+1/(1000*ROW(A2:A)),"<="&A2:A+1/(1000*ROW(A2:A))))})
0 голосов
/ 10 февраля 2020

Вы можете ранжировать свои данные так:

=arrayformula(query({sort({row(A2:A),A2:B},3,1,2,1), sort({COUNTIFS(B2:B,B2:B,row(B2:B),"<=" & row(B2:B)),B2:B},2,1,1,1)}, "Select Col4 where Col4<>0 Order by Col1 "))
...