การใช้สูตร Array IF แบบหลายเงื่อนไข
กรณี Range ที่ใช้ตรวจสอบเงื่อนไขมาจากเรื่องเดียวกัน ให้ใช้บวก
ให้หายอดรวม Amount ของรหัส Id a001 กับ a002 (ทั้งนี้ที่เรียกว่า เป็นเรื่องเดียวกันเพราะเงื่อนไขเป็นเรื่องของรหัสเช่นกันทั้งคู่) โดยบันทึกรหัสที่ต้องการให้ใช้เป็นรหัสที่ค้นหาไว้ที่เซลล์ G3 และ H3 ตามลำดับ ซึ่งสามารถใช้สูตรหาคำตอบเป็นยอดรวม 110 ได้หลายวิธี ดังนี้
- ใช้สูตร {=SUM(IF(Id=G3, Amount, IF(Id=H3,Amount,0) ))}
โดยต้องกดปุ่ม Ctrl+Shift+Enter เพื่อสร้างเครื่องหมายวงเล็บปีกกา { } ปิดหัวท้ายสูตร ถ้าแกะสูตร IF(Id=G3, Amount, IF(Id=H3,Amount,0) ) โดยการคลิกลากทับส่วนของสูตรนี้แล้วกดปุ่ม F9 จะได้ Array {10;20;30;0;50} ซึ่งเปลี่ยนค่า Amount ของรหัสอื่นที่ไม่เท่ากับ a001 หรือ a002 ให้เท่ากับ 0 แทน - ใช้สูตร { =SUM( ((Id=G3)+(Id=H3)) *Amount) }
โดยต้องกดปุ่ม Ctrl+Shift+Enter เพื่อสร้างเครื่องหมายวงเล็บปีกกา { } ปิดหัวท้ายสูตร ถ้าแกะสูตร ((Id=G3)+(Id=H3)) โดยการคลิกลากทับส่วนของสูตรนี้แล้วกดปุ่ม F9 จะได้ Array {1;1;1;0;1} โดยมีเลข 1 ตรงกับตำแหน่งของรหัสที่ต้องการ
ถ้าแกะที่มาของเงื่อนไข (Id=G3) จะได้ Array ของ
{TRUE;FALSE;TRUE;FALSE;FALSE} ที่นำมาบวกกับ (Id=H3) ซึ่งเป็น Array ของ
{FALSE;TRUE;FALSE;FALSE;TRUE} ทำให้ได้ Array
{1;1;1;0;1}
และเมื่อนำ {1;1;1;0;1} คูณกับ Array ของ Amount {10;20;30;40;50}
จะได้ Array {10;20;30;0;50} ซึ่งรวมค่าทั้งหมดได้เท่ากับ 110 ตามต้องการ - ใช้สูตร =SUMPRODUCT( ((Id=G3)+(Id=H3)) *Amount)
โดยมีหลักการคำนวณแบบเดียวกับวิธีที่สอง แต่ไม่ต้องอาศัย { }
เพื่อช่วยทำให้มองเห็นลำดับการคำนวณได้ชัดเจนขึ้น ขอให้ดูภาพต่อไปนี้แล้วดูหลักการคำนวณทีละขั้นจาก column ซ้ายไปขวา
- Column ที่ 1 เป็นรหัส Id จะพบว่ามีรหัส a001 กับ a002 อยู่ 4 รายการ
- Column ที่ 2 ตรวจสอบรหัส Id a001 จะพบว่ามีรหัส a001 อยู่ 2 รายการ โดยถ้ามองตำแหน่งที่เป็นรหัสที่ต้องการเป็นเลข 1 และตำแหน่งที่ไม่ใช่เป็นเลข 0
จะได้เลข 1, 0, 1, 0, 0 ตามลำดับจากบนมาล่าง - Column ที่ 3 ตรวจสอบรหัส Id a002 จะพบว่ามีรหัส a002 อยู่ 2 รายการ โดยถ้ามองตำแหน่งที่เป็นรหัสที่ต้องการเป็นเลข 1 และตำแหน่งที่ไม่ใช่เป็นเลข 0
จะได้เลข 0, 1, 0, 0, 1 ตามลำดับจากบนมาล่าง - Column ที่ 4 เป็นผลรวมเมื่อนำ Column ที่ 2 มารวมกับ Column ที่ 3
จะได้เลข 1, 1, 1, 0, 1 ตามลำดับจากบนมาล่าง แสดงตำแหน่งของรหัส a001 กับ a002 ณ ตำแหน่งที่ตรงกับเลข 1 - Column ที่ 5 เป็นตัวเลข Amount ทั้งหมด
- Column ที่ 6 เป็นผลคูณเมื่อนำ Column ที่ 4 มารวมกับ Column ที่ 5
จะได้เลข 10, 20, 30, 0, 50 ตามลำดับจากบนมาล่าง ซึ่งรวมเท่ากับ 110