メインコンテンツへスキップ

同じ日付に基づいて対応する値を合計するにはどうすればよいですか?

Author: Xiaoyang Last Modified: 2025-08-06

重複する値を持つ日付エントリを含むExcelデータセットを扱う場合、それぞれの日付に関連付けられた数値データを集計する必要が生じることがあります。例えば、以下の範囲A1:B13に示されている注文記録を管理していると仮定します。列Aには日付(一部の日付は複数回出現)がリストされ、列Bには関連する注文数が記録されています。各ユニークな日付ごとの注文数を合計して要約結果を生成したい場合、Excelにはこのタスクを効率的かつ正確に実行するためのいくつかの方法が用意されています。この機能は、日々の売上を要約したり、ログ記録を統合したり、あるいは同じ時間点に基づいてデータを集約する必要があるすべてのシナリオにおいて非常に重要です。適切な方法を選択することで、手動での作業時間を大幅に削減し、データの正確性を確保できます。

sum corresponding values with same date


同じ日付に基づいて対応する値を数式で合計する

最も直接的な解決策の1つは、ExcelのSUMIF関数を使用することです。このアプローチは、特にソースデータが変更されるたびに自動的に更新される動的な要約を作成したい場合に適しています。数式のアプローチは簡単に適用でき、あまりにも巨大ではないデータ範囲に対して効果的に動作します。以下の手順に従ってください:

1. 特定の日付の合計を表示したい空白のセルに次の数式を入力します(例:セルE2):

=SUMIF($A$2:$A$13,D2,$B$2:$B$13)

enter a formula sum relative values based on same date

上記の数式では:

  • A2:A13: 評価する日付を含む範囲
  • B2:B13: 合計する値を含む範囲
  • D2: 合計したい日付を指定する「条件」セル

2. 数式を入力したセルからフィルハンドルを下にドラッグして、すべての一意の日付に適用します。これにより、要約列が作成され、各セルには対応する日付の合計値が表示されます。スクリーンショットをご覧ください:

drag and fill the formula to other cells

ヒントと注意点:

  • 元の範囲に新しいデータを追加する場合、数式範囲(A2:A13B2:B13)もそれに応じて更新してください。
  • 構造化された表を使用する場合、柔軟性を高めるために表のフィールド名を参照してください(例:=SUMIF(Table1[Date], D2, Table1[Amount]))。
  • データにエラー(テキストエントリや空のセルなど)が含まれている場合は、ソースセルの内容を確認して正確な合計を確保してください。
  • このアプローチは小規模から中規模のデータセットに最適です。非常に大規模なデータセットの場合、ピボットテーブルを使用することで高速に要約できる可能性があります。
  • 一意の日付をリストするためにD2にUNIQUE関数(Excel365/2021+)を使用する場合、次のように入力します:=UNIQUE(A2:A13)、その後、SUMIF関数を組み合わせて使用します。

Kutools for Excelを使用して同じ日付に基づいて対応する値を合計する

Kutools for Excelがインストールされている場合、高度な行のマージツールを使用すると、このタスクをより簡単に行うことができます。このソリューションでは、任意のキー項目(ここでは日付)に基づいて行を統合し、対応する値を自動的に合計します。これにより、時間の節約につながり、数式の誤りリスクを軽減します。これは、頻繁に大きな範囲を要約したり、繰り返し結合・計算操作を行うユーザーにとって特に便利です。

Kutools for Excelは、300以上の高度な機能を提供し、複雑なタスクを簡素化し、創造性と効率を向上させます。 AI機能と統合され、Kutoolsは正確にタスクを自動化し、データ管理を容易にします。Kutools for Excelの詳細情報...無料トライアル...

Kutools for Excelをインストール後、次の手順に従ってください:

1. 同じ日付に基づいて合計したいデータ範囲を選択します。(このツールはデータレイアウトを変更するため、元のデータのバックアップを作成することをお勧めします。)

2. Kutools > マージと分割 > 高度な行のマージに進みます。

click Advanced Combine Rows feature of kutools

3. ダイアログボックスで、日付列を選択し、それを主キーとして設定します。次に、合計したい列(例:「注文数」)を選択し、計算セクションでその操作を「合計」に設定します。この設定により、Kutoolsは同一の日付で行をグループ化し、数値を合計して統合します。

specify the option in the dialog box

4. OKをクリックします。Kutoolsはすぐに要約リストを生成し、各ユニークな日付に対応するすべての金額値を1行に合計します。以下をご覧ください:

original data arrow right sumif same date by kutools
利点 最小限の手動操作でデータを結合して計算します。異なるフィールドタイプをグループ化して要約する必要があるユーザーにとって特に役立ち、合計以外の操作(平均、カウント、最大/最小値の検索など)も可能です。

VBAコードを使用して同じ日付に基づいて対応する値を合計する

自動化またはプログラム可能なアプローチを求めるユーザーにとって、VBA(Visual Basic for Applications)は日付ごとに値を合計し、要約結果を新しい範囲に出力するための柔軟な方法を提供します。VBAは、繰り返しのタスクを処理したり、大規模なデータセットを処理したり、要約をより広範なワークフローに統合する場合、特にビルトインの数式や機能がニーズに十分ではない場合に最適です。

1. 開発ツール > Visual Basic をクリックしてMicrosoft Visual Basic for Applicationsエディターを開きます。ウィンドウで挿入 > モジュールをクリックし、以下のコードをモジュールに貼り付けます:

Sub SumValuesByDate()
    Dim SourceRange As Range
    Dim OutputRange As Range
    Dim Dict As Object
    Dim Cell As Range
    Dim iRow As Long
    Dim LastRow As Long
    Dim ws As Worksheet
    Dim kDate As Variant
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set ws = Application.ActiveSheet
    
    ' Prompt for source data range containing dates and values
    Set SourceRange = Application.InputBox("Select the source data range (dates in first column, values in second):", xTitleId, ws.Range("A2:B13").Address, Type:=8)
    
    If SourceRange Is Nothing Then Exit Sub
    
    ' Prompt for output location
    Set OutputRange = Application.InputBox("Select the cell to output summary (top-left cell):", xTitleId, "E1", Type:=8)
    
    If OutputRange Is Nothing Then Exit Sub
    
    Set Dict = CreateObject("Scripting.Dictionary")
    
    ' Loop through data and sum by date
    For iRow = 1 To SourceRange.Rows.Count
        kDate = SourceRange.Cells(iRow, 1).Value
        If kDate <> "" And IsDate(kDate) Then
            If Dict.Exists(kDate) Then
                Dict(kDate) = Dict(kDate) + SourceRange.Cells(iRow, 2).Value
            Else
                Dict.Add kDate, SourceRange.Cells(iRow, 2).Value
            End If
        End If
    Next
    
    ' Write header
    OutputRange.Cells(1, 1).Value = "Date"
    OutputRange.Cells(1, 2).Value = "Sum"
    
    ' Write result to output range
    iRow = 2
    For Each kDate In Dict.Keys
        OutputRange.Cells(iRow, 1).Value = kDate
        OutputRange.Cells(iRow, 2).Value = Dict(kDate)
        iRow = iRow + 1
    Next
End Sub

2. Run button ボタンをクリックするか、 F5 を押してマクロを実行します。

3. ダイアログボックスが表示され、元のデータ範囲を選択するよう求められます(日付は最初の列、値は2番目の列にあることを確認してください)。次に、別のダイアログが結果を出力する位置を指定できます(例:セルE1)。

4. 確認後、選択した出力セルから日付とそれに対応する値の合計の要約表が生成されます。

ヒントとエラーメモ:

  • このマクロはリスト内の位置に関係なく、重複する日付を自動的に処理します。
  • 出力位置として元のデータを上書きする場所を選択した場合、マクロは上書きを防ぎませんので、空白の領域を選んでください。
  • マクロは日付列の空白または非日付値をスキップします。ベストな結果を得るために、データをクリーンにしておくことを確認してください。
  • この方法は、繰り返しの要約プロセスを自動化したり、バッチデータ操作タスクに統合するのに最適です。

VBAは、自動バッチ処理が必要な場合や、手動操作を避けたい場合に最適です。大規模または定期的に発生するデータのマージに優れた選択肢です。ただし、時々しか要約が必要ない場合は、数式やピボットテーブルの方法がよりシンプルかもしれません。


ピボットテーブルを使用して同じ日付に基づいて対応する値を合計する

ピボットテーブルは、日付ごとにデータをグループ化し、数回のクリックで合計を計算する便利で数式不要な方法を提供します。特に大規模なデータセットや、インタラクティブにデータを探索・分析したい場合に適しています。ピボットテーブルはデータが変更されたときに自動的に更新されるため、継続的なレポートやダッシュボードに最適です。

1. ヘッダーを含む元のデータ範囲を選択します(例:A1:B13)。

2. 挿入タブに移動し、ピボットテーブルを選択します。ダイアログボックスで、データ範囲を確認し、ピボットテーブルを配置する場所(新しいワークシートまたは既存のワークシート)を選択します。

3. ピボットテーブルフィールドリストで、日付フィールドをRowsエリアにドラッグし、対応するOrder(または値フィールド)をValuesエリアにドラッグします。Excelは自動的に各ユニークな日付の値を合計します。

4. 元のデータが変更されたときにピボットテーブルの結果を更新するには、ピボットテーブルを右クリックして更新を選択します。

利点 ピボットテーブル方式は関数やコードを必要とせず、対話型のフィルタリング、ソート、グループ化をサポートします。これは小規模および大規模のデータセットの両方でスケーラブルかつ信頼性があります。
欠点 計算を直接セルの数式に統合する際の柔軟性が低く、一部のユーザーはピボットテーブルインターフェースに慣れるのに時間がかかる場合があります。

トラブルシューティングと実用的な提案:

  • データ範囲にヘッダーと一貫したデータ型が含まれていることを確認してください。
  • ピボットテーブルが期待通りに一意の日付を表示しない場合は、隠れた書式設定がないか確認するか、「グループ解除」を使用してください。
  • 複数の計算フィールドを追加したり、月/四半期/年ごとにグループ化してより広範な要約を作成できます。

最高のオフィス生産性ツール

🤖 Kutools AI Aide:データ分析を革新:インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析してグラフを生成  |  Kutools Functions を呼び出す
人気機能重複の検索・ハイライト・マーキング   |  空白行を削除   |  データを失わず列やセルを統合   |   丸める ...
スーパーLOOKUP複数条件VLOOKUP   複数値VLOOKUP  |  複数シートの検索  |  ファジーマッチ ....
高度なドロップダウンリストすばやくドロップダウンリストを作成   |  依存型ドロップダウンリスト   |  複数選択ドロップダウンリスト ....
列の管理:特定数の列を追加  | 列を移動  | 非表示列の表示状態を切り替え |  範囲と列の比較 ...
注目機能グリッドフォーカス   |  デザインビュー  |  強化された数式バー   ワークブック&ワークシートの管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リスト送信で電子メールを送信   |  スーパーフィルター   |   特殊フィルタ(太字/斜体/取り消し線でフィルタ...)
トップ15ツールセット12 種類のテキストツールテキストの追加特定の文字を削除など)  |  50 種以上のグラフ タイプガントチャートなど)  |  40を超える実用的な 数式誕生日に基づいて年齢を計算する、など)  |  19種の 挿入ツールQRコードの挿入パスから画像の挿入など)  |  12種類の 変換ツール単語に変換する通貨変換など)  |  7つの 結合&分割ツール高度な行のマージセルの分割など)  |  ...さらに多数
お好きな言語でKutoolsを使用できます ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上に対応!

Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...


Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます

  • Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
  • 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
  • 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!