Folgendes ist meiner Meinung nach die bisher beste Lösung:
=CountIf(ArrayFormula(range<>""),TRUE)
Hier ist der Grund in 3 einfachen Schritten
Schritt 1: Einfach wie Torte - Fügen Sie eine zusätzliche Spalte hinzu
Die Antwort von eniacAvenger liefert die richtige Lösung, ohne sich um =A1<>""
Randfälle zu kümmern, da sie den richtigen Wahrheits- / Falschwert zu erhalten scheint, basierend darauf, wie wir intuitiv leere Zellen betrachten, entweder jungfräuliche Leerzeichen oder erstellte Leerzeichen.
Stellen Sie sich vor, wir haben diese Daten und möchten die Anzahl der Nicht-Leerzeichen in B2:B6
:
| | A | B | C |
|---|-------------|-------|---------|
| 1 | Description | Value | B1<>"" |
| 2 | Text | H | TRUE |
| 3 | Number | 1 | TRUE |
| 4 | IF -> "" | | FALSE |
| 5 | IF -> Text | h | TRUE |
| 6 | Blank | | FALSE |
Wenn wir uns auf Spalte C verlassen würden , könnten wir die Anzahl der Werte in B wie folgt ermitteln:
=COUNTIF(C2:C6,True)
Schritt 2: Verwenden Sie FormulaArray
diese Option, um eine zusätzliche Spalte dynamisch zu erstellen
Der Kommentar von consideRatio ist jedoch gültig. Wenn Sie eine zusätzliche Spalte benötigen, können Sie häufig dasselbe Ziel mit einer erreichen, mit ArrayFormula
der eine Spalte im Speicher erstellt werden kann, ohne Speicherplatz zu verbrauchen.
Wenn wir also C dynamisch erstellen möchten, können wir eine Array-Formel wie die folgende verwenden:
=ArrayFormula(B2:B6<>"")
Wenn wir es einfach in C2 einfügen, wird das vertikale Array mit einem einzigen Strich des Stifts erstellt:
| | A | B | C |
|---|-------------|-------|--------------------------|
| 1 | Description | Value | =ArrayFormula(B2:B6<>"") |
| 2 | Text | H | TRUE |
| 3 | Number | 1 | TRUE |
| 4 | IF -> "" | | FALSE |
| 5 | IF -> Text | h | TRUE |
| 6 | Blank | | FALSE |
Schritt 3: Zählen Sie die Werte in der dynamischen Spalte
Aber wenn das gelöst ist, brauchen wir die Spalte nicht mehr, um nur die Werte anzuzeigen.
ArrayFormula
wird in den folgenden Bereich aufgelöst : {True,True,False,True,False}
.
CountIf
Nimmt nur einen beliebigen Bereich auf und kann in diesem Fall die Anzahl der True-Werte zählen.
Wir können also CountIf
die Werte ArrayFormula
wie folgt umschließen :
=CountIf(ArrayFormula(B2:B6<>""),TRUE)
Weiterführende Literatur
Die anderen Lösungen in diesem Thread sind entweder zu komplex oder schlagen in bestimmten Randfällen fehl, die ich in diesem Testblatt aufgezählt habe:
Warum CountA
es so funktioniert, siehe meine Antwort hier