LOOKUPVALUE
นําไปใช้กับ: การคํานวณคอลัมน์
จากการคํานวณ ตาราง
จากการคํานวณ หน่วยวัด
ภาพการคํานวณ
ส่งกลับค่าสําหรับแถวที่ตรงตามเกณฑ์ทั้งหมดที่ระบุโดยเงื่อนไขการค้นหาอย่างน้อยหนึ่งเงื่อนไข
ไวยากรณ์
LOOKUPVALUE (
<result_columnName>,
<search_columnName>,
<search_value>
[, <search2_columnName>, <search2_value>]…
[, <alternateResult>]
)
พารามิเตอร์
เงื่อนไข | คำนิยาม |
---|---|
result_columnName | ชื่อของคอลัมน์ที่มีอยู่ซึ่งประกอบด้วยค่าที่คุณต้องการส่งกลับ ไม่สามารถเป็นนิพจน์ได้ |
search_columnName | ชื่อของคอลัมน์ที่มีอยู่ ซึ่งสามารถอยู่ในตารางเดียวกันกับ result_columnName หรือในตารางที่เกี่ยวข้อง ไม่สามารถเป็นนิพจน์ได้ สามารถระบุ search_columnName และ search_value หลายคู่ |
search_value | ค่าที่จะค้นหาใน search_columnName สามารถระบุ search_columnName และ search_value หลายคู่ |
alternateResult | (ไม่บังคับ) ค่าที่แสดงเมื่อมีการกรองบริบทสําหรับ result_columnName เป็นศูนย์หรือมากกว่าหนึ่งค่าที่แตกต่างกัน ถ้าไม่ได้ระบุไว้ ฟังก์ชันจะแสดงค่า BLANK เมื่อ result_columnName ถูกกรองลงเป็นค่าศูนย์หรือมีข้อผิดพลาดเมื่อมีค่าที่แตกต่างกันมากกว่าหนึ่งค่าในบริบทสําหรับ result_columnName |
ค่าที่ส่งกลับ
ค่าของ result_columnName ในแถวที่คู่ของ search_columnName และ search_value ตรงกันทั้งหมด
ถ้าไม่มีคู่ที่ตรงกันสําหรับค่าการค้นหาทั้งหมด ระบบจะแสดงเป็นค่า BLANK หรือ alternateResult (ถ้าระบุ) กล่าวอีกนัยหนึ่ง ฟังก์ชันนี้จะไม่ส่งกลับค่าการค้นหาหากตรงกับหลักเกณฑ์เพียงบางข้อเท่านั้น
หากมีหลายแถวที่ตรงกับค่าการค้นหาและค่าใน result_columnName สําหรับแถวเหล่านี้จะเหมือนกัน ค่าดังกล่าวจะถูกส่งกลับ อย่างไรก็ตาม ถ้า result_columnName แสดงค่าที่แตกต่างกัน ระบบจะส่งกลับข้อผิดพลาดหรือ alternateResult (ถ้ามีการระบุ)
หมายเหตุ
ถ้ามีความสัมพันธ์ระหว่างตารางที่มีคอลัมน์ผลลัพธ์และตารางที่มีคอลัมน์การค้นหา ในกรณีส่วนใหญ่ การใช้ ฟังก์ชัน RELATED แทน LOOKUPVALUE จะมีประสิทธิภาพมากกว่าและให้ประสิทธิภาพที่ดีขึ้น
สามารถระบุ search_columnName และ search_value ได้หลายคู่
พารามิเตอร์ search_value และ alternateResult จะถูกประเมินก่อนที่ฟังก์ชันจะทําซ้ําตามแถวของตารางการค้นหา
หลีกเลี่ยงการใช้ฟังก์ชัน ISERROR หรือ IFERROR เพื่อจับข้อผิดพลาดที่ส่งกลับโดย LOOKUPVALUE ถ้าอินพุตบางอย่างไปยังฟังก์ชันส่งผลให้เกิดข้อผิดพลาดเมื่อไม่สามารถกําหนดค่าผลลัพธ์เดียวได้ การ ให้พารามิเตอร์ alternateResult เป็นวิธีที่น่าเชื่อถือและมีประสิทธิภาพสูงสุดในการจัดการข้อผิดพลาด
พารามิเตอร์ alternateResult จะแสดงข้อผิดพลาดถ้ามีการระบุไว้ในคอลัมน์จากการคํานวณ Power Pivot
ฟังก์ชันนี้ไม่ได้รับการสนับสนุนสําหรับการใช้งานในโหมด DirectQuery เมื่อใช้ในคอลัมน์จากการคํานวณหรือกฎการรักษาความปลอดภัยระดับแถว (RLS)
ตัวอย่าง 1
ในตัวอย่างนี้ LOOKUPVALUE ถูกใช้เพื่อค้นหาอัตราเฉลี่ยสําหรับสกุลเงินที่ใช้ในการชําระเงินสําหรับคําสั่งซื้อในวันที่มีการสั่งซื้อ:
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
ทั้งวันที่สั่งซื้อและสกุลเงินจําเป็นต้องใช้เพื่อค้นหาอัตราเฉลี่ยสําหรับวันที่และสกุลเงินที่ถูกต้อง OrderDateKey และ CurrencyKey เป็นคีย์ที่ใช้ในการค้นหาอัตราเฉลี่ยในตารางอัตราสกุลเงิน
คุณสามารถใช้อัตราแลกเปลี่ยนเพื่อคํานวณยอดขายในสกุลเงินท้องถิ่นด้วย:
Sales Amount Local Currency = [Sales Amount] * [Exchange Rate]
ตัวอย่าง 2
ในตัวอย่างนี้ คอลัมน์จากการคํานวณต่อไปนี้ที่กําหนดไว้ในตาราง Sales ใช้ฟังก์ชัน LOOKUPVALUE เพื่อส่งคืนค่าช่องทางการขายจากตาราง Sales Order
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey],
[SalesOrderLineKey]
)
อย่างไรก็ตาม ในกรณีนี้เนื่องจากมีความสัมพันธ์ระหว่างตาราง Sales Order และ Sales ดังนั้นจึงมีประสิทธิภาพมากกว่าที่จะใช้ฟังก์ชัน RELATED
CHANNEL = RELATED('Sales Order'[Channel])