SQL/データベース(DB)

【ソフトウェア】Googleスプレッドシートの表データから、入力された条件で別シートへ抽出する

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

はじめに

Excelに蓄積されたデータから、条件によって別シートへ抽出したい事案が発生しました。
SQL等に慣れていればGoogleスプレッドのquery関数で簡単に実現できそうです。
データがExcel上にあるので本来はExcelのみで実現させたかったのですが、目的まで最短で行けそうなので取り急ぎGoogleスプレッドシートで行ってみました。

やりたい事

以下のような日付(年月日)と金額の2項目存在する元データから、指定した年月の条件で抽出し日付順に並び替えて出力します。

AB
1日付金額
220210313300
320210211210
420210425451
520210329675
620210207650
720210109354
820210306367
920210424655
1020210316245
シート名「元データ」

例えば2021年3月とA2のセルへ抽出条件を指定した場合、2021年3月のデータを抽出し日付順に別シートへ出力する事を目的とします。

ABC
1抽出年月日付金額
220210320210306367
320210313300
420210316245
520210329675
シート名「抽出データ」

手順

データ出力開始である「B2」セルに、以下のようなquery関数を埋め込みます。

=QUERY(データ,クエリ,見出し)

解説します。

1:データ
検索及び抽出範囲(データ全て)を指定します。
今回のデータは、シート「元データ」でデータの範囲は、A2~B10になります。

2:クエリ
SQLに慣れている方は、説明は不要ですね。
1:selectで元データから抽出する列を指定します。「select A,B」

whereは抽出条件です。
1:日付を元に検索するので、Aの列を指定します。「where A」
2:抽出する値を指定します。「like A2%」
あいまい検索なのでlikeを使用します。
検索条件は、シート抽出データ内のA2を指定します。
3:データの並び替えをA列に対して行います。「order by A」

3:見出し
今回のデータ抽出は見出しは不要なので「-1」としています。
見出しを作成せずにデータ範囲をA1:B10とすれば、「1」を指定すれば同じ結果となります。

という訳で今回のqueryは、以下で実行可能となります。

=QUERY('元データ'!A2:B10,"select A,B where A like '"&A2&"%' order by A",-1)

まとめ

Googleスプレッドシートのquery関数で、簡単に目的を達成する事ができました。
Excel上でも結果的に別関数や組み合わせで実現可能なのですが、ここまで簡単に行う事は不可能です(多分・・・)
この件については、また別の機会に行ってみたいと思います。

表形式のデータをデータベースのように扱えるのは、かなり便利ですね。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

ブログ記事について

ブログ記事は基本、毎週月曜日午前中に発信!(私感/私考カテゴリについては随時)
今回参照して頂いた記事以外、メニューや検索機能を使用して頂けると目的の情報に辿り着ける事もあります。
多少でも記事に価値があると感じましたら、コメントまたは以下の支援のご協力を頂けましたらありがたいです!

公式ホームページについて

当ブログではITエンジニア関連のテクニカルな事、そして様々な商品のレビュー記事を公開しています。
一方ホームページでは、それ以外の少しビジネス寄り(企業や個人事業主向け)のサービスや情報を発信します。

該当される方、ご興味のある方はホームページの方もご参照ください。

コメントを残す

*