Determinando se cada linha possui o maior valor dentro do grupo especificado em outra coluna

1

Queremos encontrar a linha com maior prioridade.

Temos cerca de 30.000 linhas de dados em Table da seguinte forma:

Item  Group  Priority  Highest(formula wanted)
A                              TRUE
B     P           2.2          TRUE
C     P             1          FALSE
D                              TRUE
E     Q             2          FALSE
F     Q             4          TRUE
G     Q             1          FALSE

(Nota: uma prioridade está presente se e somente se houver um grupo. Não existe empate em nossos dados.)

A coluna Highest é TRUE se a linha não tiver Group ou dentro do mesmo grupo que tiver a prioridade mais alta. No exemplo acima, o item C pertence ao grupo P , mas não é da maior prioridade. Os itens E e G são do Grupo Q , mas não têm prioridade mais alta.

Eu tentei a seguinte fórmula de matriz (também vi aqui ):

=IF([@Group]="",TRUE,MAX(([Group]=[@Group])*[Priority]))

No entanto, por algum motivo, não aceita a fórmula do array. A classificação também não é aceita, pois o pedido original é importante em outros cálculos. Então, como podemos definir a fórmula?

    
por HYC 09.10.2015 / 08:55

1 resposta

1

=OR([@Group]="",LOOKUP(1,0/FREQUENCY(0,1/(1+([Group]=[@Group])*[Priority])),[Priority])=[@Priority])

Por outro lado, estou muito interessado em saber seu motivo para não permitir fórmulas de matriz. Você se importaria de compartilhá-lo?

Atenciosamente

    
por 09.10.2015 / 09:33