Tenho uma tabela na qual quero contar quantas ocorrências de valores existem em duas colunas, com base no valor de uma terceira, e para facilitar a leitura, quero poder ver esses valores exclusivos com a contagem ao lado deles.
Por exemplo:
Pessoa1 | Pessoa2 | Número |
---|---|---|
Conta | Dave | 2 |
Dave | John | 2 |
John | Conta | 1 |
Quero ver quantas vezes o nome de cada pessoa aparece, com base no valor da terceira coluna. Como este é um documento fluido, as únicas colunas atualizadas são essas três, então quero uma nova coluna com os valores únicos de A e B, se o valor de C = 2.
O que eu descobri até agora é:
=UNIQUE(VSTACK(A2:A100,B2:B100))
O que funciona bem, mas contar as ocorrências com base no valor de C é onde estou tropeçando. Eu tentei
=COUNTIFS(A2:B100,E2,C2:C100,">1")
Mas ele continua apresentando a mensagem "Um valor é o tipo de dado errado". Eu me certifiquei de que as colunas são do tipo correto, por exemplo, C é um número, e também copiei os valores da função UNIQUE para uma coluna separada, para que ele não tente empilhar funções.
Tentei outras funções como, COUNT(UNIQUE(FILTER())
mas isso não elimina as contagens inválidas, e outra solução, não sei se funciona porque não consigo entender a função:
=SUM(--(FREQUENCY(IF(C2:C18=2,MATCH(A2:A18,B2:B18,0)),ROW(A2:B18)-ROW(A2)+1)>1))
Com esta tabela de entrada:
esta fórmula:
resultados nesta tabela
toonecol contém as duas colunas de nomes unidas com
Number
coluna.filt contém apenas com
Number=2
cnt conta as ocorrências de nomes exclusivos
e a última linha une nomes exclusivos com o resultado.
Para se divertir e se aplicável, tente utilizar
GROUPBY()
:Utilizando os dados gentilmente fornecidos pela Black cat
Como sempre, existem várias soluções. Usando uma tabela chamada
tblData
Para cada nome exclusivo da lista, tblData é filtrado por número e nome da pessoa. cnt = número de linhas filtradas.
Mais um:
=LET(a,TOCOL(FILTER(A1:B10,C1:C10=2)),b,UNIQUE(a),c,BYROW(b,LAMBDA(x,SUM(1*(x=a)))),HSTACK(b,c))
Resultado: