2011-12-07 30 views
13
A B C 

1 Β  Β 
2 Β  Β 
3 Α  Α 
4 Α  Α 
5 Β  Β 
6 Α  Α 
7 Α  B 
8 Β  Β 
9 Β  Β 
10 Α  Α 
11 Β  A 
12 Α  Α 
13 Α  Α 
14 Β  Β 
15 Α  Α 
16 Β ?? 

Trong ô B16 Tôi muốn đếm có bao nhiêu "B" s (giá trị trong A16) là trong các tế bào C1: C15 A16. Sau đó, sử dụng một số chức năng tôi sẽ đặt một "A" hoặc "B" trong ô C16. Làm thế nào tôi có thể cung cấp phạm vi như vậy trong COUNTIF? Cùng một công thức phải được sử dụng cho tất cả các tế bào trong cột B.Làm thế nào để xác định một phạm vi không liên tục trong COUNTIF

Trả lời

15

Dưới đây là công thức cho ô B16: =SUM(COUNTIF(INDIRECT({"C1:C15","A16"}),"B"))

+0

đẹp nhất - Tôi không biết bạn có thể sử dụng '{}' trong một 'INDIRECT' để khai báo các phạm vi không liên tục – JMax

+1

T công thức của anh ấy dường như hiệu quả, nhưng tôi không thể sao chép nó. –

+0

Bạn có thể sử dụng '' INDIRECT'' để tạo một dãy các dãy, nhưng bạn chỉ có thể truyền chuỗi đó. Do đó, bạn cần cập nhật các dải ô cho mỗi ô theo cách thủ công. Ngoài ra, bạn có thể viết một hàm VBA để làm điều này. –

0

Đối với hồ sơ, nếu tôi hiểu tốt, bạn muốn đếm các giá trị từ các tế bào A16. Nhưng nếu bạn làm một công thức như:

=COUNTIF(C1:C15,A16) 

Bạn biết bạn sẽ có giá trị (ở đây B) trong tế bào A16, không bạn?

Vì vậy, các giá trị mà bạn muốn nhận được là:

=COUNTIF(C1:C15,A16) + 1 

tôi đã hiểu lầm gì?

+0

Không, tôi không biết. Nó có thể là A hoặc B. Vì vậy, tôi không thể sử dụng "+1" –

+0

Không nếu bạn đang sử dụng một var ('A16' trong trường hợp này) trong công thức của bạn – JMax

+0

Ok, tôi nên nói rằng thực sự tôi muốn một công thức tính abs (alphas-betas) –

13

Là một thay thế đó sẽ làm việc cho sao chép và dán, bạn có thể làm:

=COUNTIF($C$1:$C$15,"B") + COUNTIF(A16,"B") 
+1

Trong khi câu trả lời của tôi có thể là một phương tiện để giới thiệu cho người dùng hàm 'INDIRECT', câu trả lời này rất đơn giản. –

+0

Trong khi hơi cồng kềnh đối với nhiều ô không liên tục, nó có lợi thế rất lớn khi điều chỉnh các ô tự động nếu hàng hoặc cột bị xóa. Cảm ơn nhiều. –

1

Bạn cũng có thể tuyên bố một loạt tên của dãy không tiếp giáp, nhưng bạn phải sử dụng chức năng TIẾP thực hiện kê khai phạm vi . Nếu không, nó sẽ thất bại giống như một phạm vi bình thường, không tiếp giáp.

Tuyên bố phạm vi ("RANGE1") nên có "áp dụng cho" lĩnh vực đọc:

=INDIRECT({"A1:B2","C4:F17"}) 

Hoặc sử dụng phạm vi khác có tên:

=INDIRECT({"Table1[Column1]","Table2[Column3]","Table4[Column2]") 

Sau đó, bạn có thể tham khảo nó thích:

=COUNTIF(Range1,"=Yes") 
Các vấn đề liên quan