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 FormulaArraydiese 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 ArrayFormulader 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.
ArrayFormulawird in den folgenden Bereich aufgelöst : {True,True,False,True,False}.
CountIfNimmt nur einen beliebigen Bereich auf und kann in diesem Fall die Anzahl der True-Werte zählen.
Wir können also CountIfdie Werte ArrayFormulawie 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 CountAes so funktioniert, siehe meine Antwort hier