KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で年/四半期/月/週ごとの出現回数をカウントするには、どうすればよいですか?

著者ケリー変更日

日常業務では、データ分析において、記録やイベントの件数を時間単位(例:各月の売上件数、週ごとの活動頻度、四半期ごとの季節トレンド分析など)で集計することがよくあります。Excel のCOUNTIF 関数は特定の条件に基づいてデータをカウントする際に広く使われていますが、日付を直接「年」「月」「四半期」「週」などの期間でグループ化してカウントしたい場合には、必ずしも簡単とは限りません。こうした課題を解決するために、本記事ではExcel でさまざまな期間(年、四半期、月、週、曜日)ごとの出現回数をカウントするための、実用的で簡単に適用できる複数の方法をご紹介します。これにより、時系列データを効率的に集計・分析し、手作業によるミスを確実に回避できるようサポートします。


数式で年/月ごとの出現回数をカウントする

特定の年や月にイベントが何回発生したかを素早く把握したいなら、数式が柔軟で動的な解決策を提供します。SUMPRODUCTと組み込みの日付関数を組み合わせることで、年、月、あるいはその組み合わせごとに直接件数をカウントでき、ソースデータが更新されると自動的に最新の集計結果が反映されます。この方法は、小~中規模のデータセットにおける日常的な分析タスクに最適です。

件数の結果を表示したい空白セルを選択し、次の数式を入力してください。

=SUMPRODUCT((MONTH($A$2:$A$24)=F2)*(YEAR($A$2:$A$24)=$E$2))

数式を入力したら、セルのオートフィルハンドルを下方向にドラッグして、必要に応じて他の行にも同じ数式を適用します。下図のとおりです。
数式を適用して、年と月ごとの出現回数をカウントする

注意点とヒント:

  • 数式 MONTH($A$2:$A$24)=F2およびYEAR($A$2:$A$24)=$E$2は、F2 セルの月と E2 セルの年と一致するデータを抽出する条件です。ご自身のデータレイアウトに合わせて、範囲や参照(例:A2:A24E2F2)を適宜更新してください。
  • 年を無視して月ごとの件数をカウントするには、次の式を使いましょう。
    =SUMPRODUCT(1*(MONTH($A$2:$A$24)=F2))
  • エラーや不整合を防ぐため、日付列にはテキスト形式ではなく、実際のExcel 日付値が含まれていることをご確認ください。数式の結果が想定と異なる場合は、日付の表示形式を改めてご確認ください。
  • 大規模なデータセットの場合は、パフォーマンスと保守性をさらに高めるために、ピボットテーブルや VBA の活用をご検討ください。

この方法は、迅速な日付集計が必要で、データ変更時に結果を自動更新したいほとんどのシナリオに最適です。ただし、複数のグループ化条件を適用すると数式が複雑になり、保守が困難になる場合があります。


Kutools for Excel で年/月/曜日/日ごとの出現回数をカウントする

Kutools for Excel がインストール済みであれば、直感的なユーティリティを使って、年、月、曜日、日、または「年&月」「月&日」などの組み合わせで出現回数を簡単にグループ化・カウントできます。複雑な数式を構築する手間がなく、視覚的でメニュー駆動型の操作を求めるユーザーに特に効率的です。

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

1。日付を含む列を選択し、Kutools > 書式 > 日付形式を適用をクリックすると、以下のダイアログが表示されます。
「日付の書式設定の適用」ダイアログに移動してオプションを設定する

2。日付形式を適用ダイアログボックスで、カウント要件(月、年、曜日、日など)に応じた書式スタイルを選択し、OKをクリックします。たとえば、月ごとの集計には「Mar」を選択してください。

3。日付列がまだ選択されている状態で、Kutools > 実際の値に変換をクリックします。これにより、すべての日付が表示値(例:月名)に変換され、後続のステップでのグループ化がスムーズになります。
「実際の値に変換」をクリックして日付を月名に変換する

4。次に、変換済みのグループ名と関連データ(金額やカテゴリ列など)を含む範囲を選択し、Kutools > コンテンツ > 高度な行のマージをクリックしてください。以下のインターフェースが表示されます。
「高度な行の結合」機能に移動してオプションを設定する

5。高度な行のマージダイアログボックスで:
(1) 日付列を主キーとして設定し、これに基づいてグループ化します。
(2) カウント対象の列(例:金額)について、集計方法を件数に設定します。
(3) 他の列については、別の集計方法や結合方法を選択できます(例:果物の名前をカンマ区切りで結合)。
(4) OKをクリックして処理を実行します。

これにより、選択した期間ごとのレコード件数が表示されます。下のスクリーンショットをご参照ください。
月ごとの出現回数がカウントされる

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手

Kutools は手動での数式入力と比べて処理を大幅に合理化し、人的ミスを軽減します。頻繁にグループごとのカウントを行い、複雑な数式を避けたいユーザーに最適です。小規模・大規模を問わず、あらゆるデータセットに対応可能です。大量の行を一括で変換または結合する前に、必ずデータのバックアップを取得してください。

ピボットテーブルで年/月/四半期/時刻ごとの出現回数をカウントする

ピボットテーブルは、大規模なデータセットを分析し、年・月・四半期・時刻など1 つ以上の時間軸で出現回数を集計する強力でインタラクティブな手法です。ポイント&クリックの簡単操作で誰でもすぐに使え、素早い再構成やフィルタリングも可能。データの傾向をすばやく把握したり、経営報告書を作成したりするのに最適です。

1。データテーブルを選択し、挿入 > ピボットテーブルをクリックすると、「ピボットテーブルの作成」ダイアログボックスが表示されます。
「挿入」>「ピボットテーブル」をクリックしたスクリーンショット

2。ダイアログでピボットテーブルの配置場所(新しいワークシートまたはセル E1 など既存の場所)を指定し、OKをクリックします。
「ピボットテーブルの作成」ダイアログボックスでオプションを設定する

3。ピボットテーブルのフィールドペインで、日付フィールドを行ラベルセクションに、金額(または対象フィールド)をセクションにドラッグしてください。デフォルトでは、値は合計されます。

下のスクリーンショットのように、ピボットテーブルが表示されます。
列名を対応するフィールドにドラッグする

4。集計方法を「合計」から「個数」に変更するには、値の列見出し(例:金額の合計)を右クリックし、値の集計方法 > 個数を選択します。
右クリックメニューから「集計方法」>「カウント」を選択する

5。追加の期間(月、年、四半期など)でグループ化するには、「行ラベル」列内の任意のセルを右クリックし、グループ化を選択します。表示されるダイアログボックスで、グループ化の基準(月、年、四半期など)を選び、OKをクリックしてください。
右クリックメニューから「グループ化」を選択し、月と年を選ぶ

これで、選択した期間ごとの件数がテーブルに表示されます。
年と月ごとの出現回数がカウントされる

注:複数の期間(例:月と年)でグループ化すると、「行ラベル」に階層が追加されます。集計ビューを調整するには、「ピボットテーブルのフィールド」ウィンドウでグループ化フィールドの順序を変更してください(例:日付の下に移動)。
月次レコードの件数は、月と年でグループ化することで計算されます。

この方法は、大規模で動的なデータセットに最適であり、定期的にグループ化・比較・集計を行う必要がある場合に特に効果的です。ただし、セル単位での簡単な即席計算や、ピボットテーブル機能に慣れていないユーザーにはあまり向いていません。


VBA マクロ:年/四半期/月/週ごとの出現回数を自動集計

さまざまな期間における発生回数の集計を繰り返し作成したい場合や、大規模データセットでのカウント処理を効率化したい場合には、カスタム VBA マクロが非常に効果的な解決策です。この方法は、定期的なデータ処理や周期的な集計表の作成に最適であり、標準の数式やピボットテーブルでは対応が難しいカスタムグループ化(会計四半期や週単位など)が必要な場面にも特に適しています。

操作手順の概要:

  • マクロを初めて実行する前に、必ずワークブックのバックアップを取ってください。
  • クリックして、開発 > Visual Basicを開き、VBA エディターを起動します。
  • クリックして挿入標準モジュールを選択し、下記のコードをモジュールウィンドウにコピー&ペーストしてください。
Sub CountOccurrencesByPeriod()
    Dim lastRow As Long
    Dim ws As Worksheet, summaryWs As Worksheet
    Dim periodType As String
    Dim dict As Object, key As Variant
    Dim dateRange As Range, cell As Range
    Dim outputRow As Long
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set ws = Application.ActiveSheet
    Set dateRange = Application.InputBox("Select date range:", xTitleId, Selection.Address, Type:=8)
    
    periodType = Application.InputBox("Count by (Year/Quarter/Month/Week):", xTitleId, "Month", Type:=2)
    
    If dateRange Is Nothing Or periodType = "" Then Exit Sub
    
    Set dict = CreateObject("Scripting.Dictionary")
    
    For Each cell In dateRange
        If IsDate(cell.Value) Then
            Select Case LCase(periodType)
                Case "year"
                    key = Year(cell.Value)
                Case "quarter"
                    key = "Q" & WorksheetFunction.RoundUp(Month(cell.Value) / 3, 0) & " " & Year(cell.Value)
                Case "month"
                    key = Format(cell.Value, "yyyy-mm")
                Case "week"
                    key = "W" & WorksheetFunction.WeekNum(cell.Value) & " " & Year(cell.Value)
                Case Else
                    key = Format(cell.Value, "yyyy-mm")
            End Select
            
            If dict.Exists(key) Then
                dict(key) = dict(key) + 1
            Else
                dict.Add key, 1
            End If
        End If
    Next cell
    
    Set summaryWs = Worksheets.Add(After:=ws)
    summaryWs.Name = "Occurrence_Summary"
    
    summaryWs.Range("A1").Value = "Period"
    summaryWs.Range("B1").Value = "Occurrences"
    
    outputRow = 2
    For Each key In dict.Keys
        summaryWs.Cells(outputRow, 1).Value = key
        summaryWs.Cells(outputRow, 2).Value = dict(key)
        outputRow = outputRow + 1
    Next key
    
    MsgBox "Summary completed in sheet 'Occurrence_Summary'.", vbInformation
End Sub

コード入力後:

  • Excel に戻って、Alt+F8を押して、CountOccurrencesByPeriodを選択し、実行をクリックしてください。
  • 分析対象の日付範囲を選択するプロンプトが表示されます。日付を含む該当の列またはセル範囲を選択してください。
  • 2 つ目のプロンプトで集計単位を尋ねられます。「Year」、「Quarter」、「Month」、または「Week」と入力してください(大文字と小文字は区別されません)。
  • マクロは、新しいワークシートを作成し、Occurrence_Summaryという名前で各期間とその出現回数を一覧表示します。

トラブルシューティングとヒント:

  • マクロのセキュリティ警告が表示されたら、ファイル > オプション > トラストセンター > マクロの設定でマクロの設定を調整してください。
  • 日付列に有効なExcel 日付値が含まれていることをご確認ください。テキスト文字列や形式の混在があると、件数が正確でなくなったり、エラーが発生したりする可能性があります。
  • このマクロは柔軟に対応可能。「Quarter」と入力すれば年と四半期で簡単に集計でき、「Week」と入力すれば週単位で集計できます。
  • 出力をカスタマイズしたい場合(たとえば、詳細情報を追加するなど)、マクロを修正して、他の列や計算ルールも処理できるように変更できます。

この方法はバッチレポートや定期分析に非常に効果的ですが、VBA およびワークブック管理の基本知識を前提としています。視覚的な集計も併用したい場合は、ピボットテーブルと VBA を組み合わせることをご検討ください。


WEEKNUM 関数で週ごとの出現回数をカウントする

売上追跡、プロジェクト管理、リソース配分において、エントリーやイベントを週単位でカウントすることは一般的な要件です。Excel には、WEEKNUM 関数があり、指定された日付がその年の何週目かを返すため、数式を使って週単位で簡単にデータをグループ化できます。

適用シナリオ:日付のリスト(例:売上データや出勤記録)があり、各週に該当するエントリー数をカウントしたい場合に最適です。この方法は、継続的な分析や頻繁に更新されるデータにぴったりで、カウント結果は自動的に最新の状態に保たれます。

1。空の列(例:B2)に、A 列の各日付に対応する週番号を計算する次の数式を入力してください。

=WEEKNUM(A2,1)

第2 引数(「1」)は週の開始曜日を日曜日とします(月曜日を週の開始とする場合は「2」に変更してください)。この数式を日付データのすべての行にコピーしてください。

2。集計したい週番号の一覧を作成します(例:1、2、3 など)。別の空白セル(例:D2)に、特定の週番号の出現回数をカウントする次の数式を入力します(B2:B24 に週番号がリストされており、D2 に検索対象の週番号が入力されていると仮定)。

=COUNTIF($B$2:$B$24, D2)

Enter キーを押した後、この数式を週番号の一覧に対して下方向にドラッグしてください。各結果は、該当週の出現回数を示します。

ヒントと注意点:

  • 異なる年にわたるエントリーを明確に区別し、年と週の両方でカウントしたい場合は、次のようにしてください。
    =SUMPRODUCT((YEAR($A$2:$A$24)=$F$2)*(WEEKNUM($A$2:$A$24,1)=G2))
    ここで、F2 は対象の年、G2 は対象の週番号です。列の範囲やセル参照は、必要に応じて適宜調整してください。
  • 関数 WEEKNUMが返す週番号は、設定(システム、米国/ISO 規格、開始曜日の選択)によって異なります。
  • ISO 週番号(ヨーロッパ規格。週の開始は月曜日で、最初の木曜日を含む週を第1 週とする)を使用する場合は、=ISOWEEKNUM(A2)(Excel 2013 以降)をご利用ください。
  • 正確な結果を得るには、すべての日付値が有効なExcel 日付形式であることを常にご確認ください。

この方法は動的データテーブルに柔軟に対応でき、ダッシュボードや定期集計に最適です。また、ピボットテーブルや追加アドインを使わずに週単位でクロス集計したい場合にもぴったりです。


デモ:年/月/曜日/日ごとの出現回数をカウントする

 

関連記事:

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得