目次
この記事では、異なるデータセットや異なる条件から、Excelで日付の出現回数を数える方法を中心に説明します。
練習用ワークブックをダウンロードする
デモに使用したワークブックは、以下のリンクからダウンロードできます。
日付の出現回数.xlsm
2 Excelで日付の出現回数をカウントする適切な例
ここでは、すべての例を異なるセクションとサブセクションに分類しています。 そうすることで、理解が容易になります。 最初のセクションでは、Excelで特定の日付の出現をカウントする方法を示しました。 2番目は、特定の範囲内の出現をカウントします。 そして最後に、Excelでユニークな日付の出現をカウントする方法を示しました。
1.ある日付の発生回数
この最初のケースでは、以下のデータセットに注目します。
このデータセットは、H. Ridder Haggardの作品とその出版日のリストである。 以下のサブセクションでは、Microsoft Excelのさまざまな関数を使用して、特定の日に発生した数をカウントする方法を紹介する。
1.1 COUNTIF関数の使用
これは、Excelで特定の日付の出現回数を数える最も簡単な方法です。 主なアイデアは、以下のとおりです。 COUNTIF関数 しかも、日付だけでなく、あらゆる種類の値に対して行うことができます。
しかし COUNTIF 関数は2つの引数、すなわちrangeと呼ばれるセル範囲とcriteriaと呼ばれる特定の条件を受け取り、その範囲内で特定の条件を満たすセルの数を返します。
データセットの場合、以下のような手順となる。
ステップス
- まず、セルを選択します。 E5 .
- そして、その中に次の式を書き込んでください。
=COUNTIF(C5:C243,"18-Aug-1888")
- その後 入力 .
このように、Excelで特定の日付の出現回数を簡単に数えるには、以下の方法があります。 COUNTIF 関数を使用します。
1.2 SUMPRODUCT関数の使い方
同じ結果を得るためのもう一つの方法として SUMPRODUCT関数 この関数は、1つまたは複数のセル範囲を引数として受け取り、その数学的な合計を出力します。 したがって、この関数を使用して、Excel で日付の出現をカウントする式を構成することができます。
以下の手順で、このデータセットにどのように使用できるかを確認します。
ステップス
- まず、セルを選択します。 E5 .
- そして、次の式をintで書き出してみてください。
=SUMPRODUCT(--(C5:C25="18-Aug-1888"))
🔎 フォーミュラの内訳
👉 ここでは C4:C23="18-Aug-1888″(8月18日)。 は、範囲内のすべてのセルを比較します。 C4 まで C23 を返します。 真 日付が 1888年8月18日 .そうでなければ、次のようになります。 FALSE .
👉 その (-) の部分は、ブール値の配列 ( 真 と FALSE )を1と0, 1の配列に変換してください。 真 の場合は0となります。 FALSE .
👉 その サンプロダクト これは、日付のあるセルの総数である。 1888年8月18日 .
- 最後に 入力 をキーボードで入力します。
この式により、この関数はExcelスプレッドシートから特定の入力の発生日の合計を返すようになりました。
1.3 ピボットテーブルの使用
もし、すべての日付の出現回数をまとめて数えるのであれば、Excelの ピボットテーブル これは、Excelの強力なツールで、データの計算、要約、分析に使用できます。 また、要約によって、データセット内のすべての日付の出現回数の合計を数えることができます。
この方法をデータセットまたは類似のデータセットに使用するには、次の手順を実行する必要があります。
ステップス
- まず、データセットから任意のセルを選択します。
- その後 インサート タブをクリックします。
- 次に、以下を選択します。 ピボットテーブル から テーブル のグループセクションをご覧ください。
- さらに、データセット範囲とピボットテーブルを置く場所を次のボックスで確認できます。 デモのために、新しいワークシートを選択しました。
- をクリックします。 よっしゃー 前の選択により、新しいスプレッドシートが開かれます。
- 今度は ピボットテーブルのフィールド をクリックすると、ピボット・テーブルを含むスプレッドシートの右側に表示されます。
- 次に 発行年月日 ともに 列 と 価値観 のフィールドを個別に表示します。
- その結果、ピボットテーブルが目的の場所に表示されるようになります。
2.特定の範囲に含まれる日付の総数
このセクションでは、Excelで日付の出現回数を数える方法を説明します。 しかし、今回は前セクションのような単一の一致ではなく、範囲に属する日付を数えることにします。
メソッドを実証するために、以下のデータセットを使用します。
データセットに変更がありました。 大筋は前回と同じですが、1901年以降の日付では一部の関数や計算式が正しく機能しません。 そのため、データセットにこのような変更がありました。
いずれにせよ、これらの3つの方法のいずれかに従って、特定の範囲にある日付の出現回数を数えることができるのです。
2.1 COUNTIFS関数の使い方
この小節では、以下のものを利用します。 COUNTIFS機能 から、日付の出現回数を数えることができます。 エクセルの特定範囲 この関数はいくつかの引数(常に範囲と条件のペア)を取り、与えられた条件すべてを表すセルの数を返す。 だから、この関数を簡単に利用することができるのだ。
以下の手順で、その方法を確認してください。
ステップス
- まず、セルを選択します。 E5 .
- そして、次の式を書き留めてください。
=COUNTIFS(C5:C17,">1/1/1940",C5:C17,"<=12/31/1950")
- 最後に 入力 .
つまり、1940年から1950年までの範囲で合計3冊の本があることがわかります。 そして、これがExcelで特定の範囲から日付の出現をカウントする方法です。
続きを読む 今日と他の日付の間の日数を計算するExcelの公式
2.2 SUMPRODUCT関数の使い方
もう一つの方法として、同じように SUMPRODUCT関数 一般に,この関数は複数の配列の積の和を求めるのに使われます。 そして,これらの配列を関数の引数として与えます。
ここで、1940年から1950年の間に出版された本という同じ結果を求めるとします。 そこで、1940年以降と1950年以前に出版された本の配列を求め、その配列から サンプロダクト 関数を使って、それらの積の合計を求めます。 それによって、その期間内に発生した本や日付の総数がわかります。
以下の手順で、その実装方法を確認します。
ステップス
- まず、セルを選択します。 E5 .
- 次に、セルに次の数式を挿入します。
=SUMPRODUCT(((C5:C17)>=DATE(1940,1,1))*((C5:C17)<=DATE(1950,12,31)))
- 3番目に、 を押します。 入力 .
これは、Excelで特定の範囲から日付の出現をカウントする関数を使用する方法です。
続きを読む 2つの日付の間の日数を表すExcelの公式
2.3 VBAコードの使用
マイクロソフトのVBA(Visual Basic for Applications)は、イベント駆動型のプログラミング言語で、単純なセル入力や修正から大規模で退屈な処理の自動化まで、さまざまな用途に使用できます。
このセクションでは、範囲に属する日付をカウントするためのコードについて説明します。 しかし、何らかのVBAコードを使用する前に、まず最初に デベロッパー タブをリボン上に表示させることができます。 まだお持ちでない方は、こちらをご覧ください。 リボンに「Developer」タブを表示する方法 .
処理の詳細に入る前に、処理に使うデータセットを用意しましょう。 これは、上記の同じデータセットでも使えますが、コードの長さをわかりやすく紹介するためです。 ここでは、以下のデータセットに、書籍ごとに日付範囲を指定した場合のアプリケーションを紹介します。
タブを取得したら、以下の手順でExcel内の特定の範囲に属する日付の出現を数えることができます。
ステップス
- まず デベロッパー タブをクリックします。
- 次に、以下を選択します。 ビジュアルベーシック から コード のグループセクションをご覧ください。
- その結果、VBAのウィンドウが開くことになります。
- ここで インサート タブが表示されます。
- 次に、以下を選択します。 モジュール をドロップダウン・メニューから選択します。
- モジュールが選択されていない場合は、選択します。
- 次に、次のコードをモジュールに挿入します。 これは、新しい関数を定義します。
Public Function CountFor(ByVal calendarDate As Date, ByVal eventDates As Range) As Long Dim dates As Variant dates = eventDates.Value 'assert eventDates consists of 2 columns Debug.Assert UBound(dates, 2) = 2 Const StartDateColumn = 1 Const EndDateColumn = 2 Dim result As Long Dim eventIndex As Long For eventIndex = LBound(dates, 1) To UBound(dates, 1) If dates(eventIndex, StartDateColumn) = 2; 'Restart Dates = 2, 3; 'Restart DeleteColumn = 2, 3; 'Restart DeleteColumn = 2, 'Restart Dates = 1, 3, 'Restart Dates = 1, 'Restart Dates = 1, 2; 'Restart Delete = 1, 2] = 'Restant Delete = 1, 'calendarDate Then result = result + 1 Next CountFor = result End Function
- ここでモジュールを閉じて、スプレッドシートに戻ってください。
- その後、値を格納したいセルを選択します(セル F5 の場合)、次の式を挿入します。
=CountFor(DATE(90,1,1),C5:D24)です。
- 最後に 入力 .
このように、VBAを駆使してカスタム関数を作成し、ワークブック内で何度でも使用して、Excelの特定期間内の日付の出現回数をカウントすることができるのです。
続きを読む 日付から日数を数えるExcelの計算式(5つの簡単な方法)
3.一意な日付の出現を数える
日付の数を数える方法の一部として、Excelですべての固有の日付とそれぞれの出現回数を数える方法を紹介します。 このようなデータセットには、この方法が必要になります。
ご覧のように、いくつかの日付が繰り返されています。 どの日付が何回あるのかを正確に数える必要があります。 UNIQUE と COUNTIF という機能があります。
以下の手順で、その活用方法を確認します。
ステップス
- まず、ユニークな日付を調べます。 そのために、セル
- そして、その中に次の式を書き込んでください。
=unique(c5:c17)
- その結果、範囲内のすべての一意な値からなる配列が作成されます。
- ここで、カウントを求めるために、セルを選択します。 F5 を入力し、次の計算式を挿入します。
=countif($c$5:$c$17,e5)
- 次に、 を押します。 入力 .
- その後、再びセルを選択し、塗りつぶしハンドルのアイコンをクリックしてユニークな値の終わりまでドラッグすると、残りのセルに数式が再現されます。
その結果、Excelは、すべての固有の日付とそれぞれの日付の発生を提供してくれる。
結論
今回は、日付の出現回数をカウントする方法について説明しましたが、いかがでしたでしょうか? このガイドがお役に立ち、参考になれば幸いです。 もし、ご質問やご提案があれば、以下のコメントでお知らせください。
このようなガイドをもっと見たい方は、以下をご覧ください。 エクセルウィキ・ドットコム .