อ่านในภาษาอังกฤษ

แชร์ผ่าน


LOOKUPVALUE

นําไปใช้กับ: คอลัมน์จากการคํานวณตารางจากการคํานวณหน่วยวัดการคํานวณวิชวล

ส่งกลับค่าสําหรับแถวที่ตรงตามเกณฑ์ทั้งหมดที่ระบุโดยเงื่อนไขการค้นหาอย่างน้อยหนึ่งเงื่อนไข

วากยสัมพันธ์

DAX
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 ถูกใช้เพื่อค้นหาอัตราเฉลี่ยสําหรับสกุลเงินที่ใช้ในการชําระเงินสําหรับคําสั่งซื้อในวันที่มีการสั่งซื้อ:

DAX
Exchange Rate = 
LOOKUPVALUE (
    'Currency Rate'[Average Rate],
    'Currency Rate'[CurrencyKey], [CurrencyKey],
    'Currency Rate'[DateKey], [OrderDateKey]
)

ทั้งวันที่สั่งซื้อและสกุลเงินจําเป็นต้องใช้เพื่อค้นหาอัตราเฉลี่ยสําหรับวันที่และสกุลเงินที่ถูกต้อง OrderDateKey และ CurrencyKey เป็นคีย์ที่ใช้ในการค้นหาอัตราเฉลี่ยในตารางอัตราสกุลเงิน

คุณสามารถใช้อัตราแลกเปลี่ยนเพื่อคํานวณยอดขายในสกุลเงินท้องถิ่นด้วย:

DAX
Sales Amount Local Currency = [Sales Amount] * [Exchange Rate]

ตัวอย่างที่ 2

ในตัวอย่างนี้ คอลัมน์จากการคํานวณต่อไปนี้ที่กําหนดไว้ในตาราง Sales ใช้ฟังก์ชัน LOOKUPVALUE เพื่อส่งกลับค่าแชนเนลจากตาราง Sales Order

DAX
CHANNEL = 
LOOKUPVALUE (
    'Sales Order'[Channel],
    'Sales Order'[SalesOrderLineKey],
    [SalesOrderLineKey]
)

อย่างไรก็ตาม ในกรณีนี้เนื่องจากมีความสัมพันธ์ระหว่างตาราง Sales Order และ Sales ดังนั้นจึงมีประสิทธิภาพมากกว่าที่จะใช้ฟังก์ชัน RELATED

DAX
CHANNEL = RELATED('Sales Order'[Channel])

ฟังก์ชัน RELATED (DAX)
ฟังก์ชันข้อมูลของ