【Excel】”当月の販売実績”を集計する – SUMIFS関数とEOMONTH関数の組み合わせ

Excel 基本動作

今回は、”X月”と月を指定するのではなく、”当月”という形で動的に特定期間の実績を集計する方法を紹介します。使用するのはSUMIFS関数とEOMONTH関数です。それぞれの関数の基本的な使い方については以下を参照ください。

【Excel】EOMONTH関数の使い方
Excelにはさまざまな日付関連の関数がありますが、その中でも今回はEOMONTH関数を紹介します。この関数は指定された日付から数えて、何か月後(または何か月前)の月末日を返します。

今回使用する販売実績テーブルは以下です。

スポンサーリンク

当月の販売実績を集計する方法

まず手っ取り早く答えを知りたい人向けに、数式を掲載します。

=SUMIFS(I2:I500, C2:C500, ">=" & EOMONTH(NOW(), -1) + 1, C2:C500, "<=" & EOMONTH(NOW(), 0))

この数式によって、以下の結果が返ってきました。

テーブルを調べて、正しいか確認します。なお、現在は24年6月です。

確かに、合計すると11,970となります。

なお今回のテーブルは、150行目が最終行ですが、余裕をもって500行目までを集計対象としています。VBAを使用する場合は、最終行を取得して正しい範囲で計算されることもできます。VBAによる最終行の取得方法は以下を参照ください。

テーブルを使う方法

なお、テーブルを設定することで、正しい範囲を常に参照させることもできます。同じデータを、下では販売実績テーブルとして設定しています。

数式は以下の通りです。

=SUMIFS(販売実績[販売価格(合価)], 販売実績[受注日], ">=" & EOMONTH(NOW(), -1) + 1, 販売実績[受注日], "<=" & EOMONTH(NOW(), 0))
スポンサーリンク

ロジックを解説

では、上の集計がどのようなロジックになっているのかを解説します。数式を再掲します。

=SUMIFS(I2:I500, C2:C500, ">=" & EOMONTH(NOW(), -1) + 1, C2:C500, "<=" & EOMONTH(NOW(), 0))

動かしたのは、2024/6/9です。

以下のようにEOMONTH関数を使うことで、当月の最初の日を取得できます。

次に、以下のようにEOMONTH関数を使うことで、当月の末尾を取得できます。

ここから、最初の長い数式は以下のようになっていることがわかります。

=SUMIFS(I2:I500, C2:C500, ">=2024/6/1", C2:C500, "<=2024/6/30")

ここまでくれば、全体が見通せますね。SUMIFSでしている2つの条件を言葉に書き下すと、C列、つまり受注日が①2024/6/1以降、かつ②2024/6/30以前となり、両方を満たすのは、6月中、となります。

EOMONTH関数の中でNOWやTODAYを使っていれば、常に”当月中”という条件を指定することができるのです。

コメント

タイトルとURLをコピーしました