ランダムなソートされていない日付で埋められたセルの範囲がある場合、それらの日付のうち、開始日と終了日の間にいくつあるかを把握することをお勧めします。たとえば、B1:B101にランダムな日付が含まれ、セルE1に開始日が含まれ、セルE2に終了日が含まれる場合、セルE4で使用してB1の日付数を返すことができる数式の種類を知りたい場合があります。 :E1とE2の間にあるB101。

実際には、解決策にたどり着くにはいくつかの異なる方法があります。

もちろん、最初の方法は、列Bの日付の右側の各セルに数式を追加し、日付がE1とE2の間にある場合は1を返し、そうでない場合は0を返すようにすることです。次に、列を合計して、目的のカウントを取得できます。日付の右側の各セルで次の数式を使用します:

=IF(AND(B1>=E$1,B1<=E$2),1,0)

この特定の式はセルC1に入り、セルC2からC101にコピーできます。次に、セルE4で、次の数式を使用するだけです。

=SUM(C1:C101)

もちろん、これの欠点は、C1:C101の追加の値が、慎重に作成されたワークシートの外観に大混乱をもたらす可能性があることです。幸い、中間値を使用せずに適切な結果を見つける方法があります。

1つの方法は、配列数式を使用することです。セルE4に配置された次の数式でうまくいきます。 Shift + Ctrl + Enterを使用して数式を入力することを忘れないでください。 (これは、配列数式を入力していることをExcelに示します。)

=COUNT(IF((B1:B101>$E$1)*(B1:B101<$E$2),B1:B101))

配列数式を使用したくない場合は、E4で次の標準のCOUNTIFベースの数式を使用できます。

=-COUNT(B1:B101)+COUNTIF(B1:B101,">"&E1)+COUNTIF(B1:B101,"<"&E2)

この数式を入力すると、Excelは日付値を返していると見なすため、セルを日付としてフォーマットすると便利です。これを修正するために必要なのは、フォーマット|を使用することだけです。一般など、日付形式以外のものを使用してセルをフォーマットするセル。

この式は、早い日付より後のすべての日付と遅い日付より前のすべての日付をカウントすることによって機能します。これは基本的にすべての日付を1回カウントし、目的の選択を2回カウントします。範囲内の日付の数(数式の先頭)を引くことにより、数式は目的の結果を除くすべてを効果的に削除します。

必要に応じて、DCOUNT関数を使用して目的のカウントを返すこともできます。ただし、これはもう少し複雑です。以前のソリューションとは異なり、DCOUNTは名前付き範囲の使用に依存しています。次の手順に従ってください:

。データの上部に空白行を配置します。これにより、すべてが1セル押し下げられます。

。日付がセルB2:B102にある状態で、セルB1を選択し、MyDatesなどのラベルをセルに配置します。

。必要に応じてセルB1をフォーマットします。

。ラベル(セルB1:B102)を含む範囲全体を選択します。

。名前ボックス(行ヘッダーのすぐ上、列ヘッダーの左側)を使用して、範囲の名前を定義します。名前は、手順2(MyDates)で使用した名前と同じである必要があります。

。セルD1とE1に、ラベル名(MyDates)を配置します。

。セルD2に、「2002年4月1日」(引用符なし)のように、日付範囲に大なり記号と小さい日付を入力します。

。セルE2に、「<6/1/2002」(引用符なし)のように、日付範囲の小なり記号と上限日を入力します。

。セルE4に、次の数式を入力します。

=DCOUNT(MyDates,1,D1:E2)

DCOUNT関数は、D1:E2で指定した基準を使用して、MyDatesとして定義されたデータ範囲を調べ、それらの基準を満たすセルの数を返します。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2818)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。