Sử dụng câu lệnh IF và ISBLANK để xác định một phạm vi ô nếu bất kỳ ô nào trong số chúng có thông tin trong đó


10

Tôi có một công thức mà tôi đang kiểm tra một loạt các ô cho dù chúng có trống hay không.

Nếu tất cả chúng đều trống tôi muốn trả lại một khoảng trống khác.

Nếu bất kỳ ô nào trong phạm vi không trống, tôi muốn trả về một giá trị Major Milestone Due.

Đây là công thức tôi hiện có:

=IF(ISBLANK(BM2:BQ2),"","Major Milestone Due")

Nó đang trả về mọi thứ như Major Milestone Due, ngay cả khi có một phạm vi hàng nhất định với tất cả các ô trống.

Câu trả lời:


16

COUNTAsẽ đưa ra số lượng ô trong một phạm vi không trống .

Vậy hãy thử ...

 =IF(NOT(COUNTA(BM2:BQ2)),"","Major Milestone Due")

Công thức cơ bản: KHÔNG (COUNTA (BM2: BQ2)) có thể áp dụng với toán tử logic hơn, chẳng hạn như: AND (COUNTA (BN2), KHÔNG (COUNTA (BM2: BQ2)))
Rhak Kahr

9

Công thức của bạn là chính xác nếu nó được nhập dưới dạng một công thức mảng .

Các isblankkhông làm việc cho một mảng trừ khi bạn nhập nó như một công thức mảng bằng cách sử dụng ctrl+ shift+ enter. Nó sẽ trông như thế này bằng cách có các dấu ngoặc nhọn xung quanh nó:

{=IF(ISBLANK(BM2:BQ2),"","Major Milestone Due")}

Ngoài ra, một if - Counta cũng sẽ không có vấn đề gì -

=IF(COUNTA(BM2:BQ2)=0,"","Major Milestone Due")


Công thức mảng không hoàn toàn chính xác. Phiên bản này sẽ chỉ đi từ TRUEđến FALSEnếu ô đầu tiên trong phạm vi chứa giá trị. Để kiểm tra chính xác tất cả các ô trong phạm vi, ANDcần phải được thêm -{=IF(AND(ISBLANK(BM2:BQ2)),"","Major Milestone Due")}
Marcus Hughes

@MarcusHughes tại sao lại như vậy? Đó là một công thức mảng và hoạt động trên toàn bộ mảng
Raystafarian

Tôi không biết chính xác lý do tại sao , nhưng tôi đã thử nghiệm nó (Excel 2010) và nó không hoạt động với chỉ ISBLANK. Hãy thử nhập công thức đó, giữ ô đầu tiên trong phạm vi trống, sau đó nhập dữ liệu vào ô sau trong phạm vi .... Điều ISBLANKkiện sẽ vẫn trả về TRUE. Chỉ khi bạn nhập dữ liệu vào ô đầu tiên, nó sẽ trả về FALSEchính xác. Bây giờ hãy thử thêm AND. Nếu bất kỳ ô nào trong phạm vi được thêm dữ liệu vào nó, nó sẽ trở lại FALSEnhư bình thường. (Tôi cho rằng đây không chỉ là một sự may mắn kỳ lạ với năm 2010)
Marcus Hughes

2

Một điều quan trọng cần xem xét là định nghĩa của bạn về "trống". Dựa trên thực tế là bạn đã sử dụng từ ngữ "Tôi muốn trả lại một khoảng trống khác", có vẻ như bạn đang xác định "trống" là các ô xuất hiện trống, nhưng thực tế có thể chứa một công thức đầu ra ""và do đó không trống .

Các phương thức COUNTAISBLANKsẽ không hoạt động nếu bạn muốn xử lý các loại ô này dưới dạng khoảng trắng, vì hai công thức đó tìm kiếm các ô thực sự trống . Để xử lý các công thức đầu ra "", bạn có hai tùy chọn:


  • Nếu bạn luôn biết kích thước của phạm vi của mình, bạn có thể sử dụng một trong các cách sau:

    =IF( COUNTBLANK(BM2:BQ2)=5, "", "Major Milestone Due")
    =IF( COUNTIF(BM2:BQ2,"")=5, "", "Major Milestone Due")

    trong đó 5 là kích thước của phạm vi của bạn. Phương pháp này không hoạt động tốt với các phạm vi động.


  • Một công thức phức tạp hơn một chút (ít nhất, phức tạp hơn để giải thích!) Sử dụng SUMPRODUCT:

    =IF( SUMPRODUCT(--(BM2:BQ2<>""))=0, "", "Major Milestone Due")


(Lưu ý rằng COUNTIF(BM2:BQ2,"<>")có cùng một vấn đề như COUNTA.)


-1

Tôi đến trang này để tìm câu trả lời cho một câu hỏi gần như giống hệt nhau.

Khi tôi thấy điều đó COUNTAđược đề cập, tôi biết gần như ngay lập tức phải làm gì. Trong một ngữ cảnh hơi khác, tôi có một phạm vi các cột ở bên trái của một cột mà tôi muốn nói not startednếu tất cả các ô trong cùng một hàng trống (trống).

Các công thức sau đây làm việc cho tôi.

=IF(COUNTA(P3:U3)=0,"Not Started"...)

Dấu chấm lửng chỉ ra rằng có một số IFhàm bổ sung trong công thức của tôi, thực hiện các thử nghiệm tiếp theo về phạm vi nếu một hoặc nhiều được điền.


Chào mừng đến với Siêu người dùng. Nhận thấy câu trả lời của bạn thu hút một downvote. Lý do có khả năng là chúng tôi cố gắng tránh trùng lặp. Mỗi câu trả lời nhằm cung cấp một giải pháp khác biệt đáng kể so với những gì đã được đóng góp. Điều này về cơ bản trùng lặp phần thứ hai của câu trả lời của Raystafarian.
sửa chữa1234

Câu trả lời của tôi nên được đưa ra như một bình luận.
David A. Gray
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.