
ตอบข้อ 1, 2 เป็นการ Match แบบ 2 เงื่อนไขครับ
จากสูตร
MATCH(1,IF(prod_cal!$A$2:$A$1000=$A2,IF(prod_cal!$B$2:$B$1000=$B2,1)),0)
หมายถึงให้หาค่า 1 ว่าอยู่ในลำดับที่เท่าไรของ IF(prod_cal!$A$2:$A$1000=$A2,IF(prod_cal!$B$2:$B$1000=$B2,1))
จากสูตร
IF(prod_cal!$A$2:$A$1000=$A2,IF(prod_cal!$B$2:$B$1000=$B2,1))
หมายถึง หาก prod_cal!$A$2:$A$1000=$A2 เป็นจรีงให้แสดงผลลัพธ์ของ IF(prod_cal!$B$2:$B$1000=$B2,1)
จากสูตร
IF(prod_cal!$B$2:$B$1000=$B2,1)
หมายถึง หาก prod_cal!$B$2:$B$1000=$B2 เป็นจรีงให้แสดงเลข 1 ถ้าไม่เป็นจริงให้แสดงค่า False
สูตรพวกนี้เป็นสูตร Array ที่ผมอธิบายจะต้องแทนค่าสูตรจากด้านหลังไปด้านหน้า หรือจากคำอธิบายนี้ให้แทนค่าจากล่างขึ้นบน
การแกะสูตรให้คลุมส่วนทีสนใจแล้วกดแป้น F9 เพื่อดูผลลัพธ์ หรือ คลิกที่เซลล์ที่มีสูตร > เข้าเมนู Evaluate Formula > แล้วคลิก Evaluate ไปเรื่อย ๆ ตามต้องการจะเห็นการแสดลผลลัพธ์ของส่วนประกอบสูตร
ตอบข้อ 3 Index มีส่วนประกอบสำหรับการอ้างอิงถึงบรรทัดและคอลัมน์อย่างละ 1 ค่าเท่านั้น การใส่เข้าไป 3 ค่าจึงให้ค่าทีผิดพลาด
ฟังก์ชั่น Index มีไวยากรณ์คือ
=Index(Range,x,y)
หมายถึงใน Range ให้นำบรรทัดที่ x คอลัมน์ที่ y มาแสดง
เราไม่สามารถเขียนให้แสดงผลลัพธ์ของบรรทัดและคอลัมน์ด้วยการใช้
=Index(Range,x,y,z)
เพราะ z เป็นส่วนเกินของการทำงานลักษณะที่ถามมานี้