Como funciona esta função SUMPRODUCT(COUNTIF( ))?

Como funciona esta função SUMPRODUCT(COUNTIF( ))?

Eu estava procurando uma solução para contar valores distintos em um intervalo e me depareiEste artigo. O exemplo fornece uma lista de dez nomes composta por quatro entradas exclusivas. Em seguida, ele usa a seguinte fórmula para contar as quatro entradas exclusivas:=SUMPRODUCT(1/COUNTIF(B3:B12,B3:B12))

Eu tenho uma compreensão básica de como as funções SUMPRODUCTe COUNTIFfuncionam. Mas não entendo essa fórmula.

  • O que está COUNTIFfazendo para produzir uma matriz de {1,2,2,3,3,3}?
  • Como ele SUMPRODUCTinterage com isso para ceder 4?

Quando duplico os dados e insiro =COUNTIF(B3:B12,B3:B12), ele rende 3.

  • O que esse valor significa?
  • Como isso está vinculado à matriz {1,2,2,3,3,3}?

Responder1

Esse {1,2,2,3,3,3}exemplo é, na verdade, completamente arbitrário e nada tem a ver com os resultados reais. Na COUNTIF()verdade, isso retornaria this {3,3,3,2,2,3,3,3,2,2}. Essa matriz é o resultado do COUNTIF()cálculo de cada elemento do seu segundo argumento. Então, como diz o artigo, cada elemento dessa matriz é usado na divisão com 1 como numerador. Ou seja, seu array {1/3,1/3,1/3,1/2...} SUMPRODUCT()então soma todos os elementos do array para obter quatro.

informação relacionada