การใช้คำสั่ง IF และ ISBLANK เพื่อกำหนดช่วงของเซลล์หากมีเซลล์ใดมีข้อมูลอยู่ในเซลล์


10

ฉันมีสูตรที่ฉันกำลังตรวจสอบช่วงของเซลล์ว่าว่างเปล่าหรือไม่

หากทั้งหมดว่างเปล่าฉันต้องการคืนค่าว่างอีกอัน

ถ้าใด ๆ Major Milestone Dueของเซลล์ในช่วงที่ไม่ได้ว่างเปล่าผมต้องการที่จะกลับค่า

นี่คือสูตรที่ฉันมีอยู่ในปัจจุบัน:

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

มันกำลังส่งคืนทุกอย่างเป็นMajor Milestone Dueแม้ว่าจะมีช่วงแถวที่แน่นอนพร้อมเซลล์ว่างทั้งหมด

คำตอบ:


16

COUNTAจะทำให้จำนวนของเซลล์ในช่วงที่มีไม่ว่างเปล่า

ดังนั้นลอง ...

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

สูตรพื้นฐาน: NOT (COUNTA (BM2: BQ2)) ใช้กับตัวดำเนินการเชิงตรรกะได้มากกว่าเช่น: และ (COUNTA (BN2), NOT (COUNTA (BM2: BQ2))
Rhak Kahr

9

สูตรของคุณถูกต้องหากมีการป้อนเป็นเป็นสูตรอาร์เรย์

isblankไม่ทำงานสำหรับอาร์เรย์จนกว่าคุณจะใส่มันเป็นสูตรอาร์เรย์โดยใช้ctrl+ +shift enterจะมีลักษณะเช่นนี้โดยมีวงเล็บปีกการอบ:

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

นอกจากนี้ถ้า - counta จะทำเช่นนี้ไม่มีปัญหาเช่นกัน -

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


สูตรอาร์เรย์ไม่ถูกต้องนัก รุ่นนี้จะเปลี่ยนจากTRUEไปเป็นFALSEหากเซลล์แรกในช่วงมีค่า เพื่อที่จะตรวจสอบเซลล์ทั้งหมดในช่วงANDที่ถูกต้องจะต้องมีการเพิ่ม -{=IF(AND(ISBLANK(BM2:BQ2)),"","Major Milestone Due")}
มาร์คัสฮิวจ์

@MarcusHughes ทำไมถึงเป็นเช่นนั้น มันเป็นสูตรอาเรย์และทำงานได้กับอาเรย์ทั้งหมด
Raystafarian

ผมไม่ทราบว่าทำไมมันว่า แต่ผมทดสอบ (Excel 2010) ISBLANKและมันไม่ได้ทำงานที่มีเพียง ลองป้อนสูตรที่ให้เซลล์แรกในช่วงที่ว่างเปล่าจากนั้นป้อนข้อมูลในเซลล์ต่อมาในช่วง .... สภาพยังจะกลับมาISBLANK TRUEเฉพาะเมื่อคุณป้อนข้อมูลลงในเซลล์แรกมันจะกลับมาFALSEอย่างถูกต้อง ANDตอนนี้ลองเพิ่ม หากเซลล์ใด ๆ ในช่วงได้รับข้อมูลเพิ่มเข้าไปเซลล์นั้นจะกลับมาFALSEตามที่ควร (ฉันสมมติว่านี่ไม่ใช่แค่ความบังเอิญแปลก ๆ กับปี 2010)
มาร์คัสฮิวจ์

2

สิ่งสำคัญที่ต้องพิจารณาคือนิยามของคำว่า "blank" จากข้อเท็จจริงที่ว่าคุณใช้คำว่า "ฉันต้องการคืนค่าว่างอีก" มันจะปรากฏว่าคุณกำลังกำหนด "ว่าง" เป็นเซลล์ที่ปรากฏว่างเปล่า แต่ที่จริงแล้วอาจมีสูตรที่ให้ผลลัพธ์""ดังนั้นจึงไม่ว่างเปล่า .

COUNTAและISBLANKวิธีการจะไม่ทำงานหากคุณต้องการจัดการแปลก ๆ เหล่านี้ของเซลล์เป็นช่องว่างเนื่องจากทั้งสองสูตรมองหาอย่างแท้จริงว่างเซลล์ ในการจัดการกับสูตรที่เอาต์พุต""คุณมีสองตัวเลือก:


  • หากคุณรู้ขนาดของช่วงของคุณคุณสามารถใช้ข้อใดข้อหนึ่งต่อไปนี้:

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

    โดยที่5คือขนาดของช่วงของคุณ วิธีนี้ใช้ไม่ได้กับช่วงไดนามิก


  • สูตรที่ซับซ้อนกว่าเล็กน้อย (อย่างน้อยก็ซับซ้อนกว่าที่จะอธิบาย!) ใช้SUMPRODUCT:

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


(โปรดทราบว่าCOUNTIF(BM2:BQ2,"<>")มีปัญหาเช่นเดียวกับCOUNTA.)


-1

ฉันมาที่หน้านี้เพื่อค้นหาคำตอบของคำถามที่เกือบจะเหมือนกัน

เมื่อฉันเห็นสิ่งนั้นCOUNTAถูกกล่าวถึงฉันรู้ได้ทันทีว่าจะต้องทำอะไร ในบริบทที่แตกต่างกันเล็กน้อยฉันมีช่วงของคอลัมน์ทางด้านซ้ายของคอลัมน์ที่ฉันต้องการจะบอกว่าnot startedถ้าเซลล์ทั้งหมดในแถวเดียวกันนั้นว่างเปล่า (ว่าง)

สูตรต่อไปนี้ใช้ได้กับฉัน

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

เครื่องหมายจุดไข่ปลาระบุว่ามีIFฟังก์ชั่นเพิ่มเติมหลายอย่างในสูตรของฉันซึ่งทำการทดสอบเพิ่มเติมในช่วงหากมีประชากรหนึ่งคนขึ้นไป


ยินดีต้อนรับสู่ Super User สังเกตเห็นคำตอบของคุณดึงดูด downvote สาเหตุที่เป็นไปได้คือเราพยายามหลีกเลี่ยงการทำซ้ำ แต่ละคำตอบมีวัตถุประสงค์เพื่อให้วิธีการแก้ปัญหาที่แตกต่างอย่างมากจากสิ่งที่มีส่วนร่วมแล้ว นี่เป็นการทำซ้ำส่วนที่สองของคำตอบของ Raystafarian
fixer1234

คำตอบของฉันน่าจะเป็นความคิดเห็น
David A. Gray
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.