(Gスプレッドシート)QUERY関数を使った月別集計

 Googleスプレッドシートで、日付データに基づき月別の集計を行う例です。
  • QUERY関数の第2引数(SELECT句など)ではYEAR関数とMONTH関数により日付の年と月を算出できますので、対象データ中に「月」の列を用意しなくとも月別の集計を行うことができます。
  • ただしここでのMONTHは通常のワークシート関数のMONTH関数とは異なり、1月なら0、2月なら1……12月なら11を返します。

手順

 早速ですが結果です。
 B,C列に日付と数値(売上)の組からなるデータが並んでいます。これに対しE2セルに1つの式を入力することで月別に売上を集計しています。

f:id:accs2014:20200130010831p:plain:w780

 式は次のようなものです。

=QUERY(B2:C10,"SELECT YEAR(B),MONTH(B)+1,SUM(C) GROUP BY YEAR(B),MONTH(B)",1)

 YEAR関数とMONTH関数を使って日付の年と月を求めてそれらによりグループ化し、それぞれの月の売上の合計を求めています。
 ただしここで用いるMONTH関数は通常のMONTH関数と異なり0~11(1月~12月に対応)を返しますので、表示の際には1を足す必要があります。よってSELECT句では「MONTH(B)+1」としています。GROUP BYの後のMONTHは単にグループ分けをしているだけで表示には影響しないので1を足す必要はありません。