ใน Excel ฉันสามารถให้ "ค่าเริ่มต้น" ในกรณีที่สูตรของฉันส่งกลับ #NA?


23

ตัวอย่างเช่น,

กล่าวว่ามูลค่าของเซลล์คือ:

IF(ISNA(VLOOKUP(A3,somesheet!G:J,3,FALSE) * VLOOKUP(A3,someothersheet!A:D,4,FALSE)), 0, VLOOKUP(A3,somesheet!G:J,3,FALSE) * VLOOKUP(A3,someothersheet!A:D,4,FALSE))

ที่นี่ฉันต้องการผลิตภัณฑ์ของสอง VLOOKUP แต่บางแถวอาจไม่อยู่ที่นั่นดังนั้นจึงสามารถส่งคืน NA ได้ ถ้ามันคืนค่า NA ให้ใส่ศูนย์ในเซลล์นี้ แต่อย่างอื่นที่ฉันต้องการผลิตภัณฑ์

ดูเหมือนว่างี่เง่าที่คุณจะต้องแสดงออกอย่างนั้นทั้งสองครั้ง มีทางลัดบ้างไหมที่ฉันสามารถพูดว่า "ทำการคำนวณนี้และถ้ามันคืนค่าลองใช้ที่อื่น แต่ใช้ค่าเริ่มต้นบ้างไหม?


ฉันไม่แน่ใจว่าจะทำอย่างไรให้ถูกต้อง แต่ลองดูที่นี่mrexcel.com/td0110.htmlตัวอย่างสุดท้ายจะช่วยได้
chmod

สูตรของคุณสมบูรณ์แบบฉันไม่แน่ใจว่าทางลัดใดที่คุณต้องการ คุณสามารถกำหนดฟังก์ชั่นที่ผู้ใช้กำหนด แต่นั่นจะทำให้มันสั้นลงไม่เกี่ยวข้องมากขึ้น
Raystafarian

คำตอบ:


38

หากคุณมี Excel 2007 หรือรุ่นที่ใหม่กว่าคุณสามารถใช้ฟังก์ชัน IFERROR เพื่อหลีกเลี่ยงการซ้ำซ้อน

=IFERROR(VLOOKUP(A3,somesheet!G:J,3,FALSE)*VLOOKUP(A3,someothersheet!A:D,4,FALSE),0)

หรือคุณสามารถใช้วิธีแก้ปัญหาเช่นนี้ในรุ่นก่อนหน้า

=LOOKUP(9.9E+307,IF({1,0},0,VLOOKUP(A3,somesheet!G:J,3,FALSE)*VLOOKUP(A3,someothersheet!A:D,4,FALSE)))


ตัวอย่างแรกนั้นเป็นสิ่งที่ฉันกำลังมองหา ขอบคุณ!
Jer

5

อาจเหมาะสมกว่าสำหรับคุณหากคุณตรวจสอบค่าการค้นหาครั้งแรกสำหรับ NA แล้วตรวจสอบค่าที่สองและหากค่าเหล่านั้นใช้ได้ทั้งคู่ให้คูณด้วย

=IF(OR(ISNA(VLOOKUP(A3,somesheet!G:J,3,FALSE)),ISNA(VLOOKUP(A3,somesheet!A:D,4,FALSE))), 0, VLOOKUP(A3,somesheet!G:J,3,FALSE) * VLOOKUP(A3,somesheet!A:D,4,FALSE))

สิ่งนี้เพิ่มความซับซ้อนมากขึ้น แต่อาจไม่ทำให้เกิดความรู้สึกอ่อนไหวต่อโปรแกรมเมอร์ที่ละเอียดอ่อน ;-)

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