スプレッドシートで、マスターファイルから派生ファイルを作る

次のようなスプレッドシート「マスターファイル」のデータがあったとすると

「派生ファイル」というスプレッドシートを作成し、そのA1セルに次のように入力すると、

=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/edit", "シート1!A1:K10"), "SELECT Col1,Col2,Col3,Col5,Col6,Col7,Col8,Col9,Col10,Col11 where Col11 ='販売中'", 1)

次のようにデータを抽出して持ってくることができる。

派生ファイルに記述した式の補足。

URLはマスターファイルをブラウザで開いた時のアドレスバーのURLそのもの。

シート1!A1:K10 というのはA1セルからK10セルまでを選択範囲としている。

SELECT Col1, Col2, ... というのは必ずCol1 みたいに指定しないといけない。Col1がA列に対応している。今回は仕入価格を見せたくなかったと仮定して、Col4は抽出しないようにしている。 SELECT文の最後で where Col11='販売中' とすることで現在販売中の行だけ抽出するようにしている。

これを使うと、派生ファイルのほうで行列を挿入したり、中のデータを更新、修正することはできなくなっちゃう。

列の真ん中に手動で列を追加したい場合は?

たとえばCol1, Col2, Col3 と Col5, Col6, Col7の間に「金庫No」列を手動で追加したいような場合を想定しています。

以下のような結果を得たい場合。

A1セルに、左側のデータを取得
D列に手動で金庫Noを入力
E1セルに、右側のデータを取得

という手順でやればよい。

つまり

A1セルには、
=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxxxxxxxx/edit", "シート1!A1:K10"), "SELECT Col1,Col2,Col3 where Col11 ='販売中'", 1)
とし

E1セルには、
=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxxxxxxxx/edit", "シート1!A1:K10"), "SELECT Col5,Col6,Col7 where Col11 ='販売中'", 1)
とする。