Total de itens exclusivos no col B para o ID do usuário x

0

Tentei tudo o que posso pensar que o Google sugere, irá copiar e colar alguns aqui para revisão, mas basta colocar. Eu tenho uma string de texto como um ID que diz "id-1" Estou tentando contar o número de itens exclusivos em uma coluna onde a linha também tem esse ID exclusivo

na tabela abaixo eu estou querendo dizer que o id-1 do usuário tem 3 tipos de frutas, essencialmente. os dados que eu tenho também têm espaços em branco, o que parece quebrar muitas das sugestões que encontrei no googling.

  id   fruta

 id-1  maçã

 id-1  maçã

 id-1  banana

 id-2  maçã

 id-2  banana

 id-2  maçã

 id-1

 id-1

id-1  pera

tentou:

=SUMPRODUCT(--(P:P>="id-1"),--(P:P<="id-1"),N:N)

=ArrayFormula(SUM(IF("id-1"=$P:$P,1/(COUNTIFS($P:$P,"id-1",$N:$N<>"",$N:$N<>"")),0)))

=SUM(IF(FREQUENCY(IF(P:P="id=1",N:N),N:N)>0,1))

Não é minha área de especialização, então gostaria de receber qualquer orientação. Usando o Planilhas Google, não o Excel.

    
por Ryan Hollingsworth 03.11.2015 / 21:23

1 resposta

0

Isso deve funcionar, embora eu queira alertar contra o uso de toda a referência de estilo de coluna, já que os cálculos de fórmulas de matriz são intensivos em processamento. Se você souber seus intervalos de dados, defina os intervalos para os limites dos dados.

=ArrayFormula(SUM(IF(FREQUENCY(IF($A:$A="id-1",IF($B:$B<>"",MATCH($B:$B,$B:$B&"",0))),ROW($B:$B)-ROW($B$1)+1),1)))

O "id-1" precisará ser alterado se você tiver muitos IDs que deseja executar a pesquisa, você pode colocar esses IDs únicos em outra coluna, fazer referência a essa coluna em vez do código "id-codificado" # "e deixe as $ âncoras fora e copie a fórmula para baixo.

O que está fazendo:

IF($A:$A="id-1",

Descobre se cada linha no intervalo corresponde à string dada, "id-1"

IF($B:$B<>"",

então, em caso afirmativo, verifica apenas células não vazias na coluna de frutas

MATCH($B:$B,$B:$B&"",0)

e encontra o índice da primeira ocorrência encontrada de cada string

FREQUENCY(IF($A:$A="id-1",IF($B:$B<>"",MATCH($B:$B,$B:$B&"",0))),ROW($B:$B)-ROW($B$1)+1

Em seguida, descobre quantas frutas únicas existem

IF(FREQUENCY(IF($A:$A="id-1",IF($B:$B<>"",MATCH($B:$B,$B:$B&"",0))),ROW($B:$B)-ROW($B$1)+1),1)

E correlaciona os valores exclusivos aos encontrados nos três primeiros recortes de código acima para obter uma contagem total de cada valor exclusivo e, em seguida, atribui cada string encontrada a uma única contagem para sinalizar que ela foi encontrada para o ID atual. / p>

SUM(IF(FREQUENCY(IF($A:$A="id-1",IF($B:$B<>"",MATCH($B:$B,$B:$B&"",0))),ROW($B:$B)-ROW($B$1)+1),1))

E, finalmente, soma todas as strings encontradas para essa ID

    
por 04.11.2015 / 20:28