Đây là những gì tôi tin là giải pháp tốt nhất cho đến nay:
=CountIf(ArrayFormula(range<>""),TRUE)
Đây là lý do tại sao trong 3 bước dễ dàng
Bước 1: Đơn giản như bánh - Thêm cột thêm
Câu trả lời của eniacAvenger sẽ mang lại giải pháp chính xác mà không phải lo lắng về các trường hợp cạnh vì =A1<>""
dường như đi đến giá trị trung thực / sai lệch dựa trên cách chúng ta nghĩ một cách trực giác về các ô trống, hoặc các ô trống hoặc tạo khoảng trống.
Vì vậy, hãy tưởng tượng chúng tôi có dữ liệu này và chúng tôi muốn Đếm số khoảng trống trong 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 |
Nếu chúng tôi dựa vào Cột C , chúng tôi có thể nhận được số lượng giá trị trong B như thế này:
=COUNTIF(C2:C6,True)
Bước 2: Sử dụng FormulaArray
để tự động tạo Cột bổ sung
Tuy nhiên, nhận xét của consideRatio là hợp lệ - nếu bạn cần thêm một cột, bạn thường có thể hoàn thành cùng một mục tiêu với mục tiêu ArrayFormula
có thể tạo một cột trong bộ nhớ mà không cần ăn hết dung lượng trang tính.
Vì vậy, nếu chúng ta muốn tạo C một cách linh hoạt, chúng ta có thể sử dụng một công thức mảng như thế này:
=ArrayFormula(B2:B6<>"")
Nếu chúng ta chỉ cần đặt nó vào C2, nó sẽ tạo ra mảng dọc chỉ bằng một nét bút:
| | 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 |
Bước 3: Đếm các giá trị trong Cột động
Nhưng với điều đó đã được giải quyết, chúng ta không còn cần cột chỉ hiển thị các giá trị.
ArrayFormula
sẽ giải quyết trong phạm vi sau : {True,True,False,True,False}
.
CountIf
chỉ mất trong bất kỳ phạm vi nào và trong trường hợp này có thể đếm số lượng giá trị True.
Vì vậy, chúng ta có thể bao CountIf
quanh các giá trị được tạo ra ArrayFormula
như thế này:
=CountIf(ArrayFormula(B2:B6<>""),TRUE)
Đọc thêm
Các giải pháp khác trong luồng này quá phức tạp hoặc thất bại trong các trường hợp cạnh cụ thể mà tôi đã liệt kê trong bảng thử nghiệm này:
Để biết lý do tại sao CountA
hoạt động mạnh mẽ như vậy, xem câu trả lời của tôi ở đây