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)

ตัวอย่างในบทความนี้สามารถใช้ได้กับตัวอย่าง Adventure Works DW 2020 Power BI Desktop แบบจําลอง หากต้องการรับแบบจําลอง โปรดดู DAX แบบจําลองตัวอย่าง

ตัวอย่างที่ 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] )
  • ฟังก์ชัน RELATED (DAX)
  • ฟังก์ชันข้อมูลของ