Inilah yang saya yakini sebagai solusi terbaik sejauh ini:
=CountIf(ArrayFormula(range<>""),TRUE)
Inilah sebabnya dalam 3 langkah mudah
Langkah 1: Sederhana Sebagai Pai - Tambahkan Kolom Ekstra
The jawaban dengan eniacAvenger akan menghasilkan solusi yang tepat tanpa khawatir tentang kasus tepi sebagai =A1<>""
tampaknya tiba di truthy / nilai falsy benar didasarkan pada bagaimana kita secara intuitif berpikir sel kosong, baik kosong perawan atau dibuat kosong.
Jadi bayangkan kita memiliki data ini dan kami ingin Hitungan kosong di 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 |
Jika kami mengandalkan Kolom C , kami bisa mendapatkan jumlah nilai dalam B seperti ini:
=COUNTIF(C2:C6,True)
Langkah 2: Gunakan FormulaArray
untuk secara dinamis membuat Kolom Ekstra
Namun, komentar consideRatio adalah komentar yang valid - jika Anda membutuhkan kolom tambahan, Anda sering dapat mencapai tujuan yang sama dengan ArrayFormula
yang dapat membuat kolom dalam memori tanpa menghabiskan ruang lembar.
Jadi jika kita ingin membuat C secara dinamis, kita bisa menggunakan rumus array seperti ini:
=ArrayFormula(B2:B6<>"")
Jika kita cukup meletakkannya di C2, itu akan membuat array vertikal dengan satu goresan pena:
| | 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 |
Langkah 3: Hitung Nilai dalam Kolom Dinamis
Tetapi dengan itu diselesaikan, kita tidak perlu lagi kolom untuk hanya menampilkan nilai.
ArrayFormula
akan memutuskan untuk berbagai berikut: {True,True,False,True,False}
.
CountIf
hanya mengambil dalam kisaran apa pun dan dalam hal ini dapat menghitung jumlah nilai True.
Jadi kita bisa membungkus CountIf
nilai-nilai yang dihasilkan oleh ArrayFormula
seperti ini:
=CountIf(ArrayFormula(B2:B6<>""),TRUE)
Bacaan lebih lanjut
Solusi lain di utas ini terlalu rumit, atau gagal dalam kasus tepi tertentu yang telah saya sebutkan dalam lembar tes ini:
Untuk alasan mengapa CountA
bekerja dengan cara yang payah seperti itu, lihat jawaban saya di sini