エクセル雑感
日時データから日付ごとの集計(UNIQUE,SUMIFS,GROUPBY)

ExcelマクロVBAとエクセル関数についての私的雑感
公開日:2025-06-20 最終更新日:2025-06-20

日時データから日付ごとの集計(UNIQUE,SUMIFS,GROUPBY)


𝕏(旧Twitter)で出題したエクセル数式問題です。


日時のデータがあります。
そこから、日付ごとの合計を算出する問題です。


𝕏(旧Twitter)の出題ポスト

「エクセルのお題」
日時データより日別合計を算出する。
この問題って既出?ですかね。普通にありがちな問題です。
D列への日付のユニー化と日付ごとの合計。
最近は関数も増えているので、いろいろな方法がありますよね。
添付のように一発スピルにも挑戦ですかね。

エクセル Excel 問題 GROUPBY UNIQUE SUMIFS


𝕏(旧Twitter)の回答ポスト

これは、いろいろとできるようにしておいた方が良いと思います。
エクセルの技術の問題というより、考え方の問題かなと。
こういう基本問題は、言ってみれば公式を覚えるようなものだと思います。
まずは基本を知らないと、応用も何もないですから…


スピルしない2019以前のエクセルならどうするか?
日付のユニークデータ作成方法を考えましょう。
もちろん作業列使ってください。
日時の基本は、整数部分は日で小数以下が時分です。
つまり整数部分だけ取り出せば日になることが分かります。
もちろん、YEAR,MONTH,DAY関数を使うという手もありです。


整数部分を取り出すなら、良く使われる関数がINT関数です。
=INT(A2)
これが日付です。もちろん以下でも良いです。
=DATE(YEAR(A2),MONTH(A2),DAY(A2))
この数式を16行までドラッグコピーします。
これで日付の一覧が完成です。


では、この日付の一覧をユニークな日付の一覧にします。
これは方法が複数あり、かつ、説明が大変なので、既存ページの説明で勘弁してください😅
「重複削除しユニークデータ作成」
https://excel-ubara.com/excel2/EXCEL317.html


これで、D列にはユニークな日付の一覧が作成されました。
ここまでできれば、E列にSUMIF(S)関数で集計できます。
先程の日時を日付に変換した列(仮にC列)を条件範囲にして、B列を合計すればよいですね。
=SUMIFS(B2:B16,C2:C16,D2)

エクセル Excel 問題 GROUPBY UNIQUE SUMIFS


ではExcel2021以降のスピル対応ではどうでしょうか。
本当にスピルは便利ですよね。使えば使うほど便利さがわかってくると思います。
そんな中で今回はUNIQUE関数です。
名前の通り、ユニークデータを作成してくれます。
先程のINT関数と組み合わせれば、一発でユニークな日付の一覧が作成できます。

エクセル Excel 問題 GROUPBY UNIQUE SUMIFS


次はE列にSUMIFS関数を入れれば…
あれ、今回は日時を日付にした作業列が無いぞ、どうしたら良いのだろう…
そうですね、先の2019以前のやり方では、C列で日付変換したのでそれを条件にできましたが、それがありません。
もちろん基本に戻ってC列に作業列を追加するというのも正しい対処方法です。


せっかくUNIQUE関数で一発でユニークな日付を作成できたのに、結局日付の作業列を追加するのでは、UNIQUE関数が不憫だ…
ここで、1日の範囲を考えましょう。
ある日の1日の範囲というのは、
指定日の0時以上、かつ、指定日の翌日の0時未満
指定日の翌日の0時 > 対象日 >=指定日の0時
ということです。


これをSUMIFS関数に組み込みます。
SUMIF(S)やCOUNTIF(S)での条件指定は難しいですよね。
完成した数式をみると簡単そうなのですが、いざ作ろうとすると、ちょっと手が止まってしまうかもしれません。
以下も参考にしてください。「SUMIF関数」
https://excel-ubara.com/excel1/EXCEL530.html

エクセル Excel 問題 GROUPBY UNIQUE SUMIFS


SUMIF(S)でどうしてこれができないのかと思う仕様があります。
「合計範囲」「条件範囲」
これらはセル範囲でなければならないのです。
配列ではダメなんですね。
INT(A2:A16)
これはセル範囲ではなく配列です。
なのでエラーになってしまうのです。
本当にこの仕様だけはどうにかしてもらいたい…

エクセル Excel 問題 GROUPBY UNIQUE SUMIFS


ここまで来たら残るは最新の365です。
超便利な超優秀な関数が追加されています。
GROUPBY関数です。
UNIQUE関数+SUMIFS関数=GROUPBY関数
こんな感じで考えてもらえれば良いです。
https://excel-ubara.com/excel1/EXCEL694.html

さらにPIVOTBY関数も追加されています。
「PIVOTBY関数」
https://excel-ubara.com/excel1/EXCEL695.html


=GROUPBY(INT(A2:A16),B2:B16,SUM,,0)
たったこれだけでできてしまうのです。どうです、便利でしょ。
引数が8個もあるので、細かい使い方をみていくと迷子になってしまうかもしれないので注意してね。
単純に今回のような使い方なら、そんなに難しくはないと思います。

エクセル Excel 問題 GROUPBY UNIQUE SUMIFS


=GROUPBY(INT(A2:A16),B2:B16,SUM,,0)
この数式のなかの第3引数、
,SUM,
この部分秀逸ですよね。
この引数は function(関数)を指定します。
これについては以下を参照してください。
「イータ縮小ラムダ(eta reduced lambda)」
https://excel-ubara.com/excel1/EXCEL696.html


以上になります。
✅2019までの非スピルバージョン
✅2021以降のスピル対応
✅365の最新関数
この3通りでのやり方を説明しました。
もちろん、方法や数式はこの他にも多数ありますので、良い方法を思いついたら実際にやってみてください。




同じテーマ「ツイッター出題回答 」の記事

数列内の連続偶数のみ順序を入れ替える
ランクによりポイントを付ける(同順位はポイントを分割)
記号を繰り返してグラフ作成(10単位で折り返す)
Excel関数の引数を省略した場合について
日時データから日付ごとの集計(UNIQUE,SUMIFS,GROUPBY)
シートコピー後のアクティブシートは何か
ByRef引数の型が一致しません。
シートのActiveXチェックボックスの指定方法
列全体を指定する時のRangeとColumnsの違い
スピルのゴーストの範囲を選択するVBA
列幅不足による「####」表示を検知するVBA


新着記事NEW ・・・新着記事一覧を見る

カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ