web-dev-qa-db-de.com

Excel-Formel: Zählen Sie die Zellen, deren Wert das Datum ist

Ich suche nach einer Formel, um einen COUNTIF (oder ähnliches) für einen Zellbereich auszuführen, und bei dem der enthaltene Wert ein Datum ist, um den Zähler zu erhöhen - im Wesentlichen so etwas wie:

=COUNTIF(range, if_date())

Was ich nicht finden konnte, ist ein logischer Test für den if_date () - Teil der Frage. Gibt es eine Möglichkeit, eine Zelle zu testen, um zu prüfen, ob der Inhalt ein Datum ist?

2
jvc26

Dies ist bei Arbeitsblattfunktionen schwierig, da Datumsangaben in Excel einfach aus formatierten Zahlen bestehen - nur mit der Funktion CELL können Sie das Format einer Zelle untersuchen (und Sie können das nicht auf einen Bereich anwenden. Daher wäre eine Helfer-Spalte erforderlich). ... oder wenn Sie nur Datumsangaben und Leerzeichen haben ... oder Datumsangaben und Text, dann reicht es aus, die COUNT-Funktion zu verwenden, dh.

=COUNT(range)

Das zählt Zahlen, so dass es nicht ausreicht, Datumsangaben von Zahlen zu unterscheiden. Wenn Sie dies tun, könnte der Nummernbereich verwendet werden, z. Wenn Sie Zahlen in einem Bereich und Datumsangaben haben, die Zahlen jedoch alle unter 10.000 liegen und die Datumsangaben relativ neu sind, können Sie diese Zahlen verwenden, um die Zahlen auszuschließen

=COUNTIF(range,">10000")

5
barry houdini

Hier ist meine Lösung. Wenn Ihre Zellen nur Datumsangaben oder Leerzeichen enthalten, vergleichen Sie sie einfach mit einem anderen Datum. Wenn die Zelle in ein Datum konvertiert werden kann, wird sie gezählt.

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

Achtung, Zellen mit Zahlen werden gezählt. 

2
Paul Stephens

Hier ist ein Ansatz. Verwenden Sie eine Kombination der obigen Antworten, um Folgendes zu tun: 

  1. Konvertieren Sie die Zelle in einem vordefinierten Format in Text
  2. Versuchen Sie es mit DATEVALUE, um es wieder in ein Datum umzuwandeln
  3. Schließen Sie alle Zellen aus, in denen DATEVALUE einen Fehler zurückgibt

Verwenden Sie als Formel einfach das folgende Beispiel, wobei <> durch Ihre Bereichsreferenz ersetzt wird.

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

Sie müssen dies als Matrixformel mit STRG + UMSCHALT + EINGABETASTE eingeben.

2
user1600453

Verwenden Sie die COUNTIF-Funktion, um Zahlen oder Datumsangaben zu zählen, die einem einzelnen Test entsprechen (z. B. gleich, größer, kleiner, größer oder gleich oder kleiner oder gleich). Um in Excel 2007 und höher Zahlen oder Datumsangaben zu zählen, die in einen Bereich fallen (z. B. mehr als 9000 und gleichzeitig weniger als 22500), können Sie die Funktion COUNTIFS verwenden. Wenn Sie Excel 2003 oder eine frühere Version verwenden, können Sie die SUMPRODUCT-Funktion verwenden, um die Zahlen zu zählen, die innerhalb eines Bereichs liegen (COUNTIFS wurde in Excel 2007 eingeführt).

bitte sehen mehr

0
user1193035

So konnte ich Excel dazu bringen, abgelaufene Zertifizierungen in einer Liste zu zählen. Ich hatte kein festes Datum oder Datumsbereich, nur das aktuelle Datum. "TODAY ()" funktioniert in Excel 2013 nicht. Es wird als Text oder Bedingung betrachtet, nicht als Datumswert. Also funktionierten diese Vorgänger nicht für mich. Das Problem/Szenario des Wortes: Wie viele Personen sind in dieser Liste abgelaufen?

Verwendung: = IFERROR (D5-TODAY (), 0) Dabei ist D5 das Datum, das abgefragt werden soll. 

Verwenden Sie dann: = IF (J5> = 1,1,0) Wobei J5 die Zelle ist, in der die erste Gleichung entweder eine positive oder eine negative Zahl ergibt. Dieses Set habe ich auf der Seite des sichtbaren Blattes ausgeblendet, dann summiere ich einfach die Summe für die Anzahl der nicht abgelaufenen Mitglieder.

0
Firefly

Gesamtzahl der Zellen in einem Bereich minus den leeren Zellen desselben Bereichs.

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

Das zählt alles im Bereich so, vielleicht nicht was Sie suchen.

0
Luke Cogburn

In Excel gibt es keine interaktive Lösung, da einige Funktionen nicht vektorfreundlich sind, wieZELLE, oben. Es ist beispielsweise möglich, alle Zahlen zu zählen, deren absoluter Wert weniger als 3 ist, daABSinnerhalb eines Formel-Arrays akzeptiert wird.

Ich habe also die folgende Matrixformel Verwendet ( Ctrl + Shift + Enter nach dem Editieren ohne geschweifte Klammern)

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

Wenn Spalte F hat

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

Es zählt 3! (-2,2 und 1). Um zu zeigen, wie ABS eine arrayfreundliche Funktion ist, führen wir einen einfachen Test durch: Wählen Sie G1: G5 , Ziffer = ABS (F1: F5) in der Bearbeitungsleiste aus und drücken Sie Strg + Umschalt + Enter . Es ist, als würde jemand schreiben Abs (F1: F5) (1), Abs (F1: F5) (2) usw.

                   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

Jetzt habe ich einige gemischte Daten eingegeben, darunter 2 Datumswerte.

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

In diesem Fall schlägtCELLfehl und gibt 1 zurück

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

Dies geschieht, weilCELLdas Format der ersten Zelle des Bereichs zurückgibt. ( D4 ist ein m-d-y-Format)

Also bleibt nur noch das Programmieren übrig! Eine UDF (Benutzerdefinierte Funktion) für formula array muss ein variantes Array zurückgeben:

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

Nun ist es einfach (die Konstante VbDate ist 7):

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

Es zeigt 2. Diese Technik kann für jede Form von Zellen verwendet werden. Ich habe vertikale, horizontale und rechteckige Formen getestet, da Sie mit für jede Reihenfolge innerhalb der Funktion füllen.

0
Paulo Buchsbaum

Ein bisschen langatmig, aber es funktioniert für mich: Versuchen Sie folgendes: 

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

der erste Teil von if lässt zu, dass die Zelle leer ist oder wenn sich etwas in der Zelle befindet, die versucht wird, in ein Jahr zu konvertieren. Wenn ein Fehler auftritt oder etwas anderes als ein Datumsergebnis = 1 ist, machen Sie dasselbe für jede Zelle und summiere das Ergebnis

0
Bill Hannigan

Dies setzt voraus, dass sich die Spalte mit den möglichen Datumswerten in Spalte A befindet. In einer angrenzenden Spalte können Sie etwa Folgendes tun: 

Erstellen Sie eine verschachtelte Formel, die das "Datum" in seinen numerischen Wert umwandelt, wenn es gültig ist, oder einen Fehlerwert in Null, wenn dies nicht der Fall ist.
Dann konvertiert es die gültigen numerischen Werte in 1 und belässt die Nullen so wie sie sind.
Addieren Sie dann die neue Spalte, um die Gesamtzahl der gültigen Daten zu erhalten.

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

0
glthornberry