エクセル雑感
日時データから日付ごとの集計(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


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

Gemini CLIの徹底解説:AIをターミナルから使いこなす|生成AI活用研究(2025-07-03)
Gemini CLIとPowerShellでVBAerのAI活用を加速する実践ガイド|生成AI活用研究(2025-07-02)
「Gemini CLI」によるExcel自動化フレームワーク:実践ガイド|生成AI活用研究(2025-07-01)
AI(Gemini)とエクセル数式対決 その3|生成AI活用研究(2025-06-24)
不合理の砦|AIが計算を終えた場所から、人間の価値が始まる|生成AI活用研究(2025-06-23)
生成AIはExcelの複雑な数式を書けるのか?|AIとの対話から学ぶ協業のリアル|生成AI活用研究(2025-06-22)
日時データから日付ごとの集計(UNIQUE,SUMIFS,GROUPBY)|エクセル雑感(2025-06-20)
AI時代の働き方革命:オンリーワン戦略 ― 属人化で搾取されない労働者に|生成AI活用研究(2025-06-20)
VBA開発の標準化を実現する共通プロンプトのすすめ|生成AI活用研究(2025-06-14)
生成AIと100本ノック 29本目:画像の挿入|生成AI活用研究(6月13日)


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

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




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


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.



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