web-dev-qa-db-ja.com

複数のシート、同じワークブックを結合するためのGoogleスプレッドシートQUERY()

目標:gSheetsでQUERY()を使用して、同じブック内の複数のシートのデータを結合しています。データは、GAからの抽出です。サンプリングを防ぐために小さなセグメントに分割されています。これは、すべて同じフィールドを持っていることを意味します。

Google Analytics Sheetsアドオンを使用してデータが自動更新に接続されるため、これを行うにはQUERY()を使用します。これは、将来更新されると再び統合され、追加の労力(または人的ミスのリスク)なしで分析が実行されるという考え方です。

Googleサポート 構文 に従い、複数のシートに合わせて1つの宿泊施設を設けました。これは他の投稿でも言及されており、他の人にとっては有効であるようです。ただし、外部ワークブックを参照するIMPORTRANGEと組み合わせると効果的です。同じワークブック内で同様の方法でそれを行う必要があります。

私が試したこと:

=QUERY({'LandingPages-Oct1'!A16:F,'LandingPages-Oct2'!A16:F},"select *",0)

^すべてのカンマ区切りにより、シートが並んでインポートされます

=QUERY({'LandingPages-Oct1'!A16:F;'LandingPages-Oct2'!A16:F},"select *",0)

^シートを区切るセミコロンにより、最初のデータシートが表示されますが、2番目のシートは表示されません

=QUERY({'LandingPages-Oct1'!A16:F;'LandingPages-Oct2'!A16:F};"select *",0)

^クエリパラメータを区切るセミコロンは結果を返しません

私は何が欠けていますか?

サンプルデータ:https://docs.google.com/spreadsheets/d/1STuBdXPCY-mtJdmKZVblR8WlvLaRPa3tl4Kme10sQBQ/edit?usp=sharing =

7
Minadorae

シートを区切るセミコロンにより、最初のデータシートが表示されますが、2番目のデータは表示されません

これは通常、最初のシートのすべての空行の下で、シートの一番下までスクロールしてそこのデータの2番目の部分を表示しなかったことを意味します。

おそらく空の行をインポートしたくないので、それらをフィルターで除外します(空でないと予想される列によって)。

={filter('LandingPages-Oct1'!A16:F, len('LandingPages-Oct1'!A16:A));
  filter('LandingPages-Oct2'!A16:F, len(LandingPages-Oct2'!A16:A))}

クエリはまったく必要ありません。クエリ文字列 "select *"は、実際にクエリを実行していないことを意味します。

10
user6655984

または、クエリを使用して空の行を削除することもできます

=QUERY({'LandingPages-Oct1'!A16:F; 'LandingPages-Oct2'!A16:F}, "where Col1 <>''")
9
JPV

上記の式を使用して列でソートする方法を理解しました:

=SORT(QUERY({'LandingPages-Oct1'!A16:F; 'LandingPages-Oct2'!A16:F}, "where Col1 <>''"),1,TRUE)

これは列1でソートされます。

0
Brando313

に関してで:

^シートを区切るセミコロンにより、最初のデータシートが表示されますが、2番目のシートは表示されません

最初にこれが機能しなかった理由は、2つのテーブルの形式が同じではなかったからです。同じ形式を貼り付けた後、これは再び機能しました。

0
Jef Gielen