web-dev-qa-db-fra.com

Utilisation de SOMMEPROD avec ARRAYFORMULA

J'ai les données aléatoires suivantes dans la première feuille

A  orange
D  yellow
C  yellow
B  orange
B  orange
C  blue
A  yellow
D  blue
C  orange
C  blue

Dans la feuille deux, j'utilise la fonction de requête suivante:

A1=UNIQUE(QUERY(Sheet1!A1:B10,"select A, B order by A asc"))
C1=sumproduct(Sheet1!A:A=A1,Sheet1!B:B=B1)
C2=sumproduct(Sheet1!A:A=A2,Sheet1!B:B=B2)
C3=sumproduct(Sheet1!A:A=A3,Sheet1!B:B=B3)
.
.
.

Ce qui retourne le suivant:

A   orange 1
A   yellow 1
B   orange 2
C   yellow 1
C   blue   2
C   orange 1
D   yellow 1
D   blue   1

Au lieu d'utiliser sum product dans chaque ligne, je souhaite que arrayformula se développe automatiquement.

Quand j'utilise E1=ArrayFormula(sumproduct(A1:A10=C1:C,B1:B10=D1:D)) je reçois

Erreur: les arguments de tableau à EQ sont de taille différente.

Sil te plait aide moi.

1
Dave

Une solution de tableau pourrait être:

=ArrayFormula(IF(LEN(A:A),COUNTIF(Sheet1!A:A&CHAR(9)&Sheet1!B:B,A:A&CHAR(9)&B:B),))

bien qu'il soit peut-être préférable de générer les comptes uniques dans la requête elle-même:

=QUERY(Sheet1!A1:C10,"select A, B, count(C) where A != '' group by A, B order by A asc label count(C) ''",0)

Cela repose sur l'existence d'une colonne C dans la feuille Sheet1 (peu importe ce qui se trouve réellement dans la colonne C). Cependant, si la colonne C n'était pas viable, elle pourrait être contournée.

2
AdamL