web-dev-qa-db-ja.com

結果を行にして複数の範囲をクエリする

1つの行に表示される結果で5つの範囲を照会しようとしています。これを行うには、各範囲をコンマで区切って{ }を使用していましたが、最初の範囲のみを返します。

式:

=QUERY({A2:C2,D2:F2,G2:I2,J2:L2,M2:O2}, "select Col1, Col2, Col3 where Col3='USA'")

サンプルスプレッドシート

4
Bardo

列のセットごとに1つずつ、合計5つのQUERY関数を使用する必要がありますが、空白の列を削除するために別の何かを追加します。次の式では、JOINとSPLITを使用しています。

=SPLIT(JOIN(",",IFERROR({QUERY({A2:C2},"select Col1, Col2, Col3 where Col3='USA'"),QUERY({D2:F2},"select Col1, Col2, Col3 where Col3='USA'"),QUERY({G2:I2},"select Col1, Col2, Col3 where Col3='USA'"),QUERY({J2:L2},"select Col1, Col2, Col3 where Col3='USA'"),QUERY({M2:O2}, "select Col1, Col2, Col3 where Col3='USA'")},"")),",")


コンマ区切り(スプレッドシートで小数点区切りとしてコンマを使用する場合はスラッシュ)が列区切りとして使用されます。コンマをセミコロンに置き換えます。

=QUERY({A2:C2;D2:F2;G2:I2;J2:L2;M2:O2}, "select Col1, Col2, Col3 where Col3='USA'")

1
Rubén
=ARRAYFORMULA(SUBSTITUTE(SPLIT(JOIN(" ",TRANSPOSE(QUERY(TRANSPOSE(QUERY(SUBSTITUTE(
 {A2:C2;D2:F2;G2:I2;J2:L2;M2:O2}," ","♦"),"where Col3='USA'")),,50000)))," "),"♦"," "))

0

0
user0