リストのすべての行に対して実行する必要があるクエリがあります。単一の行に書き込むとうまく機能します。
QUERY(MaraRankData,
"select J,I,H,G,F,E where
A='"&E3&"' and
B='"&B3&"' and
C="&C3&" and
D="&D3&"",
0
)
これにより、必要に応じてデータの行が出力されます。しかし、それをARRAYFORMULAでラップすると、多くの行ではなく1行しか出力されません。
=ARRAYFORMULA(
QUERY(MaraRankData,
"select J,I,H,G,F,E where
A='"&E3:E&"' and
B='"&B3:B&"' and
C="&C3:C&" and
D="&D3:D&"",
0)
)
Googleスプレッドシートではエラーが発生しないため、何が問題なのかわかりません。すべての行で数式を繰り返す必要がないように、どのようにしてARRAYFORMULAをQUERYで動作させることができますか?
Query()式をArrayformulaでラップすることに関する赤赤ワインによるコメントをサポートするため。すでに配列型の結果を返す/生成する数式をラップする必要はありません。つまり、「Filter」、Unique、「Transpose」などにArrayformulaを適用しない
—
Xzila
また、ほとんどの場合、クエリを使用できますが、フィルター式は機能します。そうすれば問題を簡単に解決できると思います。
—
Xzila
=FILTER({E:E,F:F,G:G,H:H,I:I,J:J},A3:A=E3:E)
最初の部分は、中括弧で列を並べ替えることです。2つ目は、AからEは、Bがそれ自体を見て、Cがそれ自体を見て、重要な唯一の列のように見えるためです。たぶん私は理解していません。