web-dev-qa-db-ja.com

ARRAYFORMULAでのSUMPRODUCTの使用

シート1に次のランダムデータがあります

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

シート2では、次のクエリ関数を使用します。

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)
.
.
.

次の結果が返されます。

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

各行でsum productを使用する代わりに、arrayformulaが自動的に展開されるようにします。

E1=ArrayFormula(sumproduct(A1:A10=C1:C,B1:B10=D1:D))を使用すると、

エラー:EQへの配列引数のサイズが異なります。

私を助けてください。

1
Dave

アレイソリューションは次のとおりです。

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

ただし、QUERY自体で一意のカウントを生成する方が良い場合があります。

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

これは、Sheet1に列Cが存在することに依存しています(列Cに実際に何があるかは関係ありません)。ただし、列Cが存在しない場合は、回避することができます。

2
AdamL