
XLOOKUP
ฟังก์ชั่น XLOOKUP จะค้นหาช่วงของค่าที่ระบุและจะส่งค่ากลับมาเป็นค่าจากแถวเดียวกันในคอลัมน์อื่น
XLOOKUP(ค่าค้นหา, ช่วงการค้นหา, ส่งกลับช่วง, หากไม่พบ, ประเภทการจับคู่, ประเภทการค้นหา)
ช่วงการค้นหา: เซลล์ที่จะค้นหา
ส่งกลับช่วง: เซลล์ที่จะส่งกลับ
หากไม่พบ: อาร์กิวเมนต์ (ไม่บังคับ) ที่ระบุข้อความที่จะแสดงหากไม่พบรายการที่ตรงกัน
ประเภทการจับคู่: อาร์กิวเมนต์ (ไม่บังคับ) ที่ระบุประเภทของรายการที่ตรงกันที่จะใช้ค้นหา
ตรงกันหรือน้อยกว่า (-1): ถ้าไม่มีค่าที่ตรงกัน จะส่งข้อผิดพลาดกลับมา
ค่าที่ตรงกันทั้งหมด (0 หรือเว้นว่าง): ถ้าไม่มีค่าที่ตรงกันทั้งหมด จะส่งข้อผิดพลาดกลับมา
ตรงกันหรือมากกว่า (1): ถ้าไม่มีค่าที่ตรงกัน จะส่งข้อผิดพลาดกลับมา
อักขระตัวแทน (2): *, ? และ ~ มีความหมายเฉพาะ REGEX สามารถใช้ได้เฉพาะใน XLOOKUP หากคุณใช้อักขระตัวแทน
ประเภทการค้นหา: อาร์กิวเมนต์ (ไม่บังคับ) ที่ระบุลำดับที่จะใช้ค้นหาช่วง
การเรียงไบนารีจากมากไปหาน้อย (-2): การค้นหาข้อมูลแบบไบนารีที่ต้องเรียงช่วงตามลำดับจากมากไปหาน้อย หากเป็นอย่างอื่นจะส่งผลกลับมาเป็นข้อผิดพลาด
รายการสุดท้ายถึงรายการแรก (-1): ค้นหาช่วงตั้งแต่รายการสุดท้ายถึงรายการแรก
รายการแรกถึงรายการสุดท้าย (1 หรือเว้นว่าง): ค้นหาช่วงตั้งแต่รายการแรกถึงรายการสุดท้าย
การเรียงไบนารีจากน้อยไปหามาก (2): การค้นหาข้อมูลแบบไบนารีที่ต้องเรียงช่วงตามลำดับจากน้อยไปหามาก หากเป็นอย่างอื่นจะส่งผลกลับมาเป็นข้อผิดพลาด
หมายเหตุ
ถ้าช่วงการค้นหาหรือส่งกลับช่วงเป็นการอ้างอิงแบบขยาย (เช่น "B") ส่วนหัวและส่วนท้ายจะไม่ถูกสนใจโดยอัตโนมัติ
ตัวอย่าง |
---|
ตารางด้านล่างที่ชื่อว่าผลิตภัณฑ์จะระบุผลิตภัณฑ์และคุณสมบัติของผลิตภัณฑ์เหล่านั้น เช่น ขนาดและราคา: |
A | B | C | D | E | |
---|---|---|---|---|---|
1 | ผลิตภัณฑ์ | ความยาว (ซม.) | ความกว้าง (ซม.) | น้ำหนัก (กก.) | ราคา |
2 | ผลิตภัณฑ์ 1 | 16 | 17 | 10 | $82.00 |
3 | ผลิตภัณฑ์ 2 | 16 | 20 | 18 | $77.00 |
4 | ผลิตภัณฑ์ 3 | 11 | 11 | 15 | $88.00 |
5 | ผลิตภัณฑ์ 4 | 15 | 16 | 20 | $63.00 |
ค้นหาด้วย XLOOKUP |
---|
ด้วย XLOOKUP คุณสามารถแทรกสูตรลงในสเปรดชีตของคุณที่จะส่งกลับค่าใดๆ ที่เกี่ยวข้องได้ โดยใส่ชื่อผลิตภัณฑ์ก่อน แล้วตามด้วยคอลัมน์ที่มีค่าที่คุณต้องการส่งกลับ ตัวอย่างเช่น ถ้าคุณต้องการส่งกลับความกว้างของผลิตภัณฑ์ 1 ในตารางด้านบน คุณสามารถใช้สูตรต่อไปนี้ได้ ซึ่งจะส่งกลับ 17 ซม.: ![]() สูตรนี้ใช้อาร์กิวเมนต์ต่อไปนี้:
|
ตั้งค่าสตริงหากไม่พบ |
---|
ถ้าคุณต้องการค้นหาความยาวของผลิตภัณฑ์ที่เจาะจงและส่งกลับความกว้างที่ตรงกัน รวมถึงสตริงที่จะส่งกลับหากไม่พบรายการที่ตรงกัน คุณสามารถใช้สูตรต่อไปนี้ที่ส่งกลับ "ไม่มีที่ตรงกัน" ได้: ![]() ในสูตรนี้ อาร์กิวเมนต์หากไม่พบถูกใช้เพื่อดำเนินการค้นหาที่เจาะจงยิ่งขึ้น:
|
ค้นหาค่าที่ใกล้เคียงที่สุดรองลงมา |
---|
XLOOKUP ยังสามารถให้การค้นหาแบบกว้างๆ โดยอิงจากค่าที่เจาะจงและค่าที่ใกล้เคียงกับค่านั้นได้อีกด้วย ถ้าคุณเปลี่ยนประเภทการจับคู่จากสูตรด้านบน คุณสามารถส่งกลับความกว้างที่ตรงกับความยาว 13 ซม. หรือค่าที่น้อยที่สุดรองลงมาได้ สูตรด้านล่างจะส่งกลับความกว้าง 11 ซม.: ![]() ในสูตรนี้ อาร์กิวเมนต์จะเหมือนกับด้านบน แต่จะมีการใช้ค่าอื่นสำหรับประเภทการจับคู่เพื่อเปลี่ยนวิธีค้นหาตาราง:
|
เปลี่ยนลำดับการค้นหา |
---|
ในบางกรณี การเปลี่ยนลำดับตารางที่จะค้นหาด้วย XLOOKUP อาจมีประโยชน์ ตัวอย่างเช่น ในตารางด้านบน ผลิตภัณฑ์ที่มีความยาว 16 ซม. มีสองรายการ ดังนั้นจึงเป็นไปได้ที่จะมีรายการที่ตรงกันสองรายการหากคุณค้นหา 16 ซม. ในคอลัมน์ความยาวโดยใช้ค่าค้นหาและช่วงการค้นหา คุณสามารถตั้งค่าลำดับการค้นหาโดยใช้สูตรดังนี้ได้ ซึ่งจะส่งกลับ 20 ซม.: ![]() ในสูตรนี้ อาร์กิวเมนต์ประเภทการค้นหาจะถูกใช้เพื่อตั้งค่าลำดับที่ XLOOKUP ค้นหาตารางสำหรับรายการที่ตรงกัน:
|
ใช้ XLOOKUP กับฟังก์ชั่นอื่นๆ |
---|
XLOOKUP ยังสามารถใช้กับฟังก์ชั่นอื่นๆ ได้อีกด้วย เช่น SUM ตัวอย่างเช่น คุณสามารถใช้สูตรดังตัวอย่างด้านล่างเพื่อส่งกลับ $247 ซึ่งเป็น SUM ของราคาผลิตภัณฑ์ 1, 2 และ 3 ได้: ![]() ในตัวอย่างนี้ XLOOKUP แรกจะค้นหาราคาของผลิตภัณฑ์ 1 และ XLOOKUP ที่สองจะค้นหาราคาของผลิตภัณฑ์ 3 เครื่องหมายทวิภาค (:) ระหว่างฟังก์ชั่น XLOOKUP ระบุว่า SUM ควรส่งกลับไม่เพียงราคารวมของผลิตภัณฑ์ 1 และผลิตภัณฑ์ 3 เท่านั้น แต่ยังควรส่งกลับค่าใดๆ ที่อยู่ระหว่างนั้นอีกด้วย |
ในสูตรด้านล่าง XLOOKUP ถูกใช้กับ REGEX เพื่อส่งกลับผลิตภัณฑ์ 2 ซึ่งเป็นผลิตภัณฑ์แรกที่มีความกว้างเริ่มต้นด้วย "2": ![]() ในตัวอย่างนี้ "อักขระตัวแทน (2)" ถูกใช้สำหรับประเภทการจับคู่เพื่อใช้ประโยชน์ของอักขระตัวแทนในฟังก์ชั่น REGEX |
ตัวอย่างเพิ่มเติม |
---|
กำหนดให้ตารางเป็นดังนี้: |
A | B | C | |
---|---|---|---|
1 | ชื่อ | อายุ | เงินเดือน |
2 | Amy | 35 | 71000 |
3 | Matthew | 27 | 81000 |
4 | Chloe | 42 | 86000 |
5 | Sophia | 51 | 66000 |
6 | Kenneth | 28 | 52000 |
7 | Tom | 49 | 62000 |
8 | Aaron | 63 | 89000 |
9 | Mary | 22 | 34000 |
10 | Alice | 29 | 52000 |
11 | Brian | 35 | 52500 |
=XLOOKUP(49,B2:B11,C2:C11) จะส่งค่ากลับมาเป็น "62000" ซึ่งเป็นเงินเดือนของลูกจ้างคนแรกที่มีอายุ 49 ปี =XLOOKUP(60000,C2:C11,B2:B11,"No match") จะส่งค่ากลับมาเป็น "No match" เนื่องจากไม่มีลูกจ้างที่มีเงินเดือน $60,000 =XLOOKUP(REGEX("^C.*"), A2:A11, B2:B11, FALSE, 2) จะส่งค่ากลับมาเป็น "42" ซึ่งเป็นอายุของ "Chloe" ลูกจ้างคนแรกในช่วงที่มีชื่อขึ้นต้นด้วย "C" |