ในคอลัมน์ CI มีการผลิต ในคอลัมน์ DI มีเป้าหมาย ในคอลัมน์ EI มีความแปรปรวน% สูตรของฉันคือ=(D11-C11)/D11
แต่อย่างไรคุณซ่อนเซลล์ลงแผ่นจนกว่าคุณจะใส่อะไรในD11
และไปซ่อนC11
#DIV/0!
ฉันลองใช้IF
สูตร แต่ดูเหมือนว่าผิด
ในคอลัมน์ CI มีการผลิต ในคอลัมน์ DI มีเป้าหมาย ในคอลัมน์ EI มีความแปรปรวน% สูตรของฉันคือ=(D11-C11)/D11
แต่อย่างไรคุณซ่อนเซลล์ลงแผ่นจนกว่าคุณจะใส่อะไรในD11
และไปซ่อนC11
#DIV/0!
ฉันลองใช้IF
สูตร แต่ดูเหมือนว่าผิด
คำตอบ:
มีการIF
ทดสอบ"พิเศษ" ที่ออกแบบมาเพื่อจัดการกับข้อผิดพลาด:
=IFERROR( (D11-C11)/D11, "")
สิ่งนี้จะให้ค่าที่คำนวณได้ของ (D11-C11) / D11 ยกเว้นผลลัพธ์ที่ได้คือข้อผิดพลาดซึ่งในกรณีนั้นจะส่งคืนค่าว่าง
ค่า "if error" พารามิเตอร์สุดท้ายสามารถเป็นอะไรก็ได้ มันไม่ได้ จำกัด อยู่ที่เครื่องหมายคำพูดคู่ว่างเปล่า IFERROR ทำงานได้กับเงื่อนไขใด ๆ ที่ส่งกลับค่าความผิดพลาด (สิ่งที่ขึ้นต้นด้วย#
) เช่น:
#NULL! - reference to an intersection of two ranges that don't intersect
#DIV/0! - attempt to divide by zero
#VALUE! - variable is the wrong type
#REF! - invalid cell reference
#NAME? - formula name, or text within a formula, isn't recognized
#NUM! - invalid number
#N/A - value is not available
สิ่งนี้มีประโยชน์สำหรับการดีบัก ฟังก์ชันสามารถพันรอบสูตรชั่วคราวเพื่อส่งกลับข้อความบางข้อความเมื่อสูตรเกิดข้อผิดพลาด นอกจากนี้ยังเป็นแบบทดสอบ IF ที่มีความคล่องตัว ไม่จำเป็นต้องมีการรวมนิพจน์เพื่อทดสอบจากนั้นรวมอีกครั้งเพื่อใช้ผลลัพธ์
ฟังก์ชันนี้ยังมีให้สำหรับผู้ใช้โปรแกรมสเปรดชีตอื่น ๆ ถูกเพิ่มลงใน Lotus Symphony Spreadsheets ในเวอร์ชัน 4.0 (ยังไม่ได้เป็นเวอร์ชันที่เผยแพร่ใน Linux distros บางรุ่น) แม้ว่า @Kroltan ชี้ให้เห็นว่ามีความคล่องตัวยิ่งขึ้นใน Google ชีตโดยที่ค่า "if error" เป็นตัวเลือก มันจะมีค่าเริ่มต้นเป็นค่าว่างหากไม่มี ดังนั้นในกรณีเช่นนี้ที่คุณต้องการเพียงแค่ค่าความผิดพลาดซ่อนศักยภาพ Google IFERROR(expression)
ชีตสามารถทำมันได้ด้วย
ภายในIF
คำสั่งเป็นการตรวจสอบแบบลอจิคัล (ส่วนแรก)
IF(logical_test, value_if_true, [value_if_false])
เพื่อหลีกเลี่ยงการก่อให้เกิดข้อผิดพลาดขณะที่การผลิตและ / หรือข้อมูลเป้าหมายของคุณว่างเปล่าใช้OR
กับISBLANK
ฟังก์ชั่นภายในตรวจสอบตรรกะ
=IF(OR(ISBLANK(C11),ISBLANK(D11)), "", (D11-C11)/D11)
วิธีนี้จะตรวจสอบว่าเซลล์ที่อ้างถึงว่างเปล่าหรือไม่ หากหนึ่งหรือทั้งสองว่างเปล่า (ทำให้การทดสอบตรรกะจริง) มันจะประมวลผลIF TRUE
ส่วนของIF
คำสั่ง ในกรณีนี้""
สูตรจะบอกให้ไม่ทำอะไรเลย มิฉะนั้นจะประมวลผลIF FALSE
ส่วนของสูตรซึ่งเป็นสูตรที่คุณมี
C11
& D11
ตามที่คุณโพสต์ไว้ ขอโทษที่ฉันพลาดนั่นในคำตอบเดิมของฉัน
ลองสิ่งนี้:
= IF (D11 <> 0 (D11-C11) / D11, "")หรือ
= IF (D11 = 0 "" (D11-C11) / D11)
เลือกสเปรดชีตทั้งหมดจากนั้นภายใต้เมนูหน้าแรก - การจัดรูปแบบตามเงื่อนไข - กฎใหม่ ... - เลือกรูปแบบเฉพาะเซลล์ที่มี - ภายใต้จัดรูปแบบเฉพาะเซลล์ที่มีข้อผิดพลาดเลือก- ปุ่มรูปแบบ ...คลิก - ไปที่แท็บแบบอักษร - ภายใต้สีที่เลือก สีตัวอักษรเดียวกันกับพื้นหลัง (เช่นสีขาว)
=IFERROR(yourformula)
การลดความซับซ้อนของมัน