3

セルの範囲でCOUNTIF(または同様のもの)を実行する数式を探しています。含まれている値が日付の場合、カウンターをインクリメントします。基本的には次のようになります。

=COUNTIF(range, if_date())

私が見つけられなかったのは、質問のif_date()部分の論理テストです。セルをテストして、その内容が日付であるかどうかを確認する方法はありますか?

4

9 に答える 9

5

Excelの日付は単純にフォーマットされた数値であるため、これはワークシート関数では困難です。関数のみCELLでセルのフォーマットを調査できます(範囲に適用できないため、ヘルパー列が必要になります)。 ..または、日付と空白だけがある場合.....または日付とテキストがある場合は、COUNT関数を使用するだけで十分です。

=COUNT(range)

これは数値をカウントするため、日付と数値を区別する場合は適切ではありません。その場合、番号範囲を利用できます。たとえば、範囲と日付に番号があり、番号がすべて10,000未満で、日付がすべて比較的新しい場合は、このバージョンを使用して番号を除外できます。

=COUNTIF(range,">10000")

于 2013-03-06T15:48:59.610 に答える
4

これが私の解決策です。セルに日付または空白のみが含まれる場合は、別の日付と比較してください。セルを日付に変換できる場合は、カウントされます。

=COUNTIF(C:C,">1/1/1900")
## Counts all the dates in column C

注意、数字のあるセルはカウントされます。

于 2014-09-17T15:07:04.293 に答える
2

これが1つのアプローチです。上記の回答を組み合わせて使用​​すると、次のようになります。

  1. 事前定義された形式を使用してセルをテキストに変換する
  2. DATEVALUEを使用して日付に変換してみてください
  3. DATEVALUEがエラーを返すセルを除外します

式として、以下の例を使用し、<>を範囲参照に置き換えます。

=SUM(IF(ISERROR(DATEVALUE(TEXT(<<RANGE HERE>>, "MM/dd/yyyy"))), 0, 1))

これは、CTRL + SHIFT+ENTERを使用して配列数式として入力する必要があります。

于 2014-03-21T19:08:43.963 に答える
0

これは、潜在的な日付値の列が列Aにあることを前提としています。隣接する列で次のようなことを行うことができます。

「日付」が有効な場合は数値に変換し、有効でない場合はエラー値をゼロに変換するネストされた数式を作成します。
次に、有効な数値を1に変換し、ゼロをそのままにします。
次に、新しい列を合計して、有効な日付の総数を取得します。

= IF(IFERROR(DATEVALUE(A1)、0)> 0,1,0)

于 2013-03-06T15:51:02.527 に答える
0

単一のテスト(等しい、より大きい、より小さい、より大きいか等しい、または等しいなど)を満たす数値または日付をカウントするには、COUNTIF関数を使用します。Excel 2007以降では、範囲内(9000より大きく同時に22500未満など)の数値または日付をカウントするために、COUNTIFS関数を使用できます。Excel 2003以前を使用している場合は、SUMPRODUCT関数を使用して、範囲内の数値をカウントできます(COUNTIFSはExcel 2007で導入されました)。

もっと見てください

于 2013-03-06T15:55:23.267 に答える
0

上記のCELLのように、一部の関数はベクトルに対応していないため、 Excelにはインタラクティブなソリューションはありません。たとえば、 ABSは数式配列内で受け入れられるため、絶対値が3未満のすべての数値をカウントすることができます。

したがって、次の配列数式を使用しました(中括弧なしで編集した後、Ctrl + Shift + Enter )

             ={SUM(IF(ABS(F1:F15)<3,1,0))}

F

                   F
          1 ...    2
          2 ....   4
          3 ....  -2
          4 ....   1
          5 .....  5

それは3を数えます!(-2、2および1)。ABSがどのように配列に適した機能であるかを示すために、簡単なテストを行いましょう。数式バーでG1:G5、digit = ABS(F1:F5)を選択し、 Ctrl + Shift+Enterを押します。誰かがAbs(F1:F5)(1)、Abs(F1:F5)(2)などを書くようなものです。

                   F    G
          1 ...    2  =ABS(F1:F5) => 2 
          2 ....   4  =ABS(F1:F5) => 4
          3 ....  -2  =ABS(F1:F5) => 2
          4 ....   1  =ABS(F1:F5) => 1
          5 .....  5  =ABS(F1:F5) => 5

ここで、2つの日付値を含むいくつかの混合データを配置します。

                   F
          1 ...    Fab-25-2012
          2 ....   4
          3 ....   May-5-2013
          4 ....   Ball
          5 .....  5

この場合、CELLは失敗し、1を返します。

             ={SUM(IF(CELL("format",F1:F15)="D4",1,0))}

これは、 CELLが範囲の最初のセルの形式を返すために発生します。(D4はmdy形式です)

ですから、残っているのはプログラミングだけです!式配列のUDF(ユーザー定義関数)は、バリアント配列を返す必要があります。

Function TypeCell(R As Range) As Variant
Dim V() As Variant
Dim Cel As Range
Dim I As Integer
Application.Volatile '// For revaluation in interactive environment
ReDim V(R.Cells.Count - 1) As Variant
I = 0
For Each Cel In R
   V(I) = VarType(Cel) '// Output array has the same size of input range.
   I = I + 1
Next Cel
TypeCell = V
End Function

今は簡単です(定数VbDateは7です):

             =SUM(IF(TypeCell(F1:F5)=7,1,0))  

それは2を示しています。その技術は、あらゆる形状の細胞に使用できます。関数内の注文にを使用して入力するため、垂直、水平、および長方形の形状をテストしまし た。

于 2013-03-12T22:06:11.510 に答える
0

少し長めですが、私にとってはうまくいきます:これを試してください::

=SUM(IF(OR(ISBLANK(AU2), NOT(ISERR(YEAR(AU2)))),0,1)
 +IF(OR(ISBLANK(AV2), NOT(ISERR(YEAR(AV2)))),0,1))

ifの最初の部分では、セルを空白にするか、セルに何かがある場合は年に変換しようとします。エラーがある場合、または日付の結果= 1以外の場合は、各セルに対して同じことを行い、結果を合計する

于 2016-09-25T01:53:52.923 に答える
0

これが、Excelをだまして、期限切れの証明書をリストにカウントする方法です。日付や日付範囲は設定されていませんでした。現在の日付だけです。「TODAY()」は、Excel 2013の場合は機能しません。日付値ではなく、テキストまたは条件として表示されます。したがって、これらの以前は私にはうまくいきませんでした。それで、文章題/シナリオ:このリストで何人の人が期限切れになっていますか?

使用:= IFERROR(D5-TODAY()、0)ここで、D5は問い合わせられる日付です。

次に、次を使用します。= IF(J5> = 1,1,0)ここで、J5は、最初の方程式が正または負の数を生成しているセルです。このセットは、表示されているシートの側面に隠してあり、有効期限が切れていないメンバーの数の合計を合計するだけです。

于 2018-08-31T17:59:17.873 に答える
0

範囲内のセルの総数から同じ範囲の空白セルを引いた数。

=(115-(COUNTBLANK(C2:C116)))

これは範囲内のすべてをカウントするので、おそらくあなたが探しているものではありません。

于 2019-01-23T17:55:06.203 に答える