ปกติสูตร XLookup ใช้กับเงื่อนไขเดียวได้เท่านั้น ถ้ามีหลายเงื่อนไขล่ะ
.
ปกติสูตร XLookup ใช้กับเงื่อนไขเดียวได้เท่านั้น ถ้ามีหลายเงื่อนไขล่ะ
เคยเจอสูตร XLookup ที่ใช้หาเลข 1 แบบนี้ไหม
=XLookup( 1, จับ Range เงื่อนไขมาคูณกัน, Range คำตอบ )
.
เช่น ต้องการหาค่าจากรายการที่ column แรกมีค่าเท่ากับเลข 123 และอีก column มีค่าเท่ากับ 999
.
ให้นำเงื่อนไขมาคูณกัน ถ้าตรงไหนที่คูณกันแล้วเท่ากับ 1 นั่นแหละคือตำแหน่งของค่าที่ต้องการ
.
=XLookup( 1, (B2:B5=123) * (C2:C5=999), D2:D5)
.
ทำไม จึงต้องคูณกัน
เพราะ TRUE*TRUE = 1
.
ก่อนอื่นต้องเข้าใจว่า
TRUE ไม่ได้มีค่าเท่ากับ 1 จนกว่าจะนำไปบวกลบคูณหารต่อ
FALSE ไม่ได้มีค่าเท่ากับ 0 จนกว่าจะนำไปบวกลบคูณหารต่อ
.
จากภาพตัวอย่างนี้ เซลล์ B2 มีค่า =TRUE() จากนั้นเรามาทดสอบค่าของ B2 กัน จะพบว่าในเซลล์ C2 เมื่อนำมาเทียบค่ากันโดยตรง ซึ่งมีสูตร =B2=1 บอกเราว่า False แสดงว่า True ไม่ได้เท่ากับ 1 แต่เมื่อนำค่าจาก B2 ไปคำนวณต่อในเซลล์ C3:C8 ไม่ว่าจะนำ B2 ไป *1, /1, +0, -0, หรือใส่เครื่องหมายลบลบไว้ข้างหน้า หรือนำไปคูณกับ TRUE() จะกระตุ้นให้แสดงค่าเท่ากับเลข 1 ออกมาให้เห็น
.
ทำนองเดียวกัน เซลล์ G2 มีค่า =FALSE() จากนั้นเรามาทดสอบค่าของ G2 กัน จะพบว่าในเซลล์ H2 เมื่อนำมาเทียบค่ากันโดยตรง ซึ่งมีสูตร =G2=0 บอกเราว่า False แสดงว่า False ไม่ได้เท่ากับ 0 แต่เมื่อนำค่าจาก G2 ไปคำนวณต่อในเซลล์ H3:H8 ไม่ว่าจะนำ G2 ไป *1, /1, +0, -0, หรือใส่เครื่องหมายลบลบไว้ข้างหน้า หรือนำไปคูณกับ TRUE() จะกระตุ้นให้แสดงค่าเท่ากับเลข 0 ออกมาให้เห็น
.
ถ้ารายการที่ 3 ในตาราง B2:B5 = 123 ตรงนั้นจะถือว่าเท่ากับ TRUE
ถ้ารายการที่ 3 ในตาราง C2:C5 = 999 ตรงนั้นจะถือว่าเท่ากับ TRUE
.
TRUE * FALSE = 0
FALSE * FALSE = 0
TRUE * TRUE = 1
FALSE * TRUE = 0
.
พอเอา Range D2:D5 เข้ามาเทียบ สูตร XLookup ก็จะหาตำแหน่งรายการที่ 3 ออกมาเป็นคำตอบที่ต้องการ
.
Download ตัวอย่างได้จาก
https://drive.google.com/file/d/1iYg4I8UEutSFUWSGdIXxURPFxp-ihcru/view?usp=sharing
.
หลักการเดียวกันนี่แหละที่นำไปใช้กับสูตรที่ทำงานแบบ Dynamic Array
ถ้าอยากเก่งสูตร Array ต้องสร้างไปแกะไป โดยแยกแต่ละส่วนของสูตรออกมาสร้างลงไปในเซลล์ข้างนอก ตามภาพนี้จะเห็นวิธีคิดของ Excel
ความคิดเห็น
แสดงความคิดเห็น