Isso não é difícil se você assumir que Coluna A
está classificada,
então estamos lidando com intervalos contíguos na coluna B
(que é o que os aspectos visuais da sua pergunta sugerem).
Configure a coluna E
como uma coluna auxiliar com esta fórmula:
-
E2
→=IF(A2=A3, E3, ROW())
Para cada linha, isso identifica a última linha do intervalo que a linha atual está dentro Então você pode obter os resultados desejados com
-
B2
→=IF(A1=A2, "", AVERAGE(B2:INDIRECT("B" & E2)))
-
C2
→=IF(A1=A2, "", STDEV(B2:INDIRECT("B" & E2)))
(Ou use qualquer método que você queira para calcular o desvio padrão.)
Isso verifica se é a primeira linha de um intervalo.
Se for, ele usa a função INDIRECT()
para construir um intervalo
entre a célula atual e a última célula com o mesmo valor de ID.
E, é claro, você pode ocultar a coluna E
ou usar alguma coluna fora da vista
(por exemplo, Z
) como coluna auxiliar.
Observe que esta solução não usa fórmulas de matriz.