Thep Excel

LOOKUPค้นหาค่าในเมทริกซ์ภาพ

LOOKUP ค้นหาและดึงค่าจากเมทริกซ์ภาพ (visual matrix) ในการคำนวณภาพโดยการระบุเงื่อนไขการกรอง ใช้เฉพาะในการคำนวณภาพเท่านั้น

fx
=LOOKUP(<expression>, <colref>, <expression>[, <colref>, <expression>]…)

ความนิยม5/10
ความยาก4/10
ประโยชน์5/10

อัปเดต 14 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
expression any นิพจน์ที่จะประเมินหรือคำนวณจากเซลล์ที่ตรงกับเงื่อนไขการกรอง เช่น SUM([Sales Amount]) หรือ [Price]
[colref]ไม่บังคับ column reference คอลัมน์ที่ต้องการตรวจสอบเงื่อนไข (สามารถระบุได้หลายคอลัมน์)
[expression]ไม่บังคับ any ค่าที่ต้องการให้ colref ตรงกัน (ตามหลัง colref แต่ละครั้ง)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

LOOKUP เป็นฟังก์ชันที่ออกแบบมาเฉพาะสำหรับการคำนวณภาพ (visual calculations) ในเมทริกซ์ที่แสดงในรายงาน Power BI มันค้นหาเซลล์ที่ตรงกับเงื่อนไขการกรองที่ระบุ แล้วคืนค่า หรือประเมินนิพจน์จากเซลล์นั้น

ที่เจ๋งคือ LOOKUP ใช้ประโยชน์จากการสืบทอด filter context จากเมทริกซ์ภาพ ถ้าคุณไม่ระบุเงื่อนไขบางอย่าง มันจะดึงมาจาก row context หรือ column context ของตำแหน่งปัจจุบัน ช่วยให้คุณสามารถทำการค้นหาแบบไขว้ (cross-filter) ได้อย่างมีประสิทธิภาพในตารางและเมทริกซ์ข้อมูล

ส่วนตัวผมถือว่า LOOKUP เป็นฟังก์ชันพิเศษที่ต้องใช้มาตรการระมัดระวัง เพราะใช้ได้ในการคำนวณภาพเท่านั้น ไม่ใช้ได้ใน calculated columns, calculated tables หรือ measures ถ้าต้องการค้นหาค่าจากตารางปกติ ผมแนะนำให้ใช้ LOOKUPVALUE หรือ RELATED แทน

How it works

ดึงค่าแรก/สุดท้ายจากรายการที่เรียงไว้

ใช้ LOOKUP กับรายการที่จัดเรียงเพื่อตอบค่าตามลำดับ เช่น มูลค่าล่าสุดหรือเก่าสุด

ดึงค่าจาก mapping table โดยไม่สร้าง relationship

ใช้เซตจาก FILTER/VALUES เพื่อค้นหาและดึงค่าที่ตรงเงื่อนไขโดยไม่ต้องสร้างความสัมพันธ์

เลือกค่าเดียวจากชุดหลายแถวที่ตรงเงื่อนไข

เมื่อผลลัพธ์หลายแถว แต่ต้องคืนค่าเดียวตามกฎลำดับ (เช่น ตัวแรกหรือสุดท้าย)

Examples

ค้นหายอดขายเดียวในหมวดหมู่ที่ระบุSales for Bikes = LOOKUP( SUM([Sales Amount]), [Product Category], "Bikes" )

LOOKUP ค้นหาเซลล์ที่ [Product Category] เท่ากับ "Bikes" แล้วคำนวณ SUM([Sales Amount]) สำหรับเซลล์นั้น ตัวแปร colref คือ [Product Category] และค่าที่ค้นหาคือ "Bikes"

fx
Sales for Bikes = LOOKUP(
SUM([Sales Amount]),
[Product Category],
"Bikes"
)

ผลลัพธ์500000
ค้นหาจากหลายเงื่อนไขพร้อมการสืบทอด contextSales for FY2024 = LOOKUP( [Sales Amount], [Fiscal Year], "FY2024" )

LOOKUP ค้นหา [Sales Amount] โดยระบุ [Fiscal Year] = "FY2024" เท่านั้น เงื่อนไขอื่นๆ เช่น [Quarter] จะสืบทอดมาจาก row context ของเมทริกซ์ปัจจุบัน

fx
Sales for FY2024 = LOOKUP(
[Sales Amount],
[Fiscal Year],
"FY2024"
)

ผลลัพธ์250000
ค้นหาจากสองเงื่อนไขพร้อมระบุอย่างชัดเจนSpecific Sales = LOOKUP( [Sales Amount], [Fiscal Year], "FY2024", [Fiscal Quarter], "Q1" )

LOOKUP ระบุ colref สองอัน: [Fiscal Year] = "FY2024" และ [Fiscal Quarter] = "Q1" มันไม่สืบทอด quarter จาก row context แต่ใช้ค่าที่ระบุแล้วเท่านั้น

fx
Specific Sales = LOOKUP(
[Sales Amount],
[Fiscal Year], "FY2024",
[Fiscal Quarter], "Q1"
)

ผลลัพธ์75000
ค้นหาด้วยการประเมินนิพจน์Average Price for Electronics = LOOKUP( AVERAGE([Price]), [Category], "Electronics" )

LOOKUP ค้นหาเซลล์ที่ [Category] = "Electronics" แล้วประเมินนิพจน์ AVERAGE([Price]) บน data ที่ถูกกรองแล้ว

fx
Average Price for Electronics = LOOKUP(
AVERAGE([Price]),
[Category],
"Electronics"
)

ผลลัพธ์450.50

FAQs

LOOKUP ใช้ได้ที่ไหนบ้าง?+

LOOKUP ใช้ได้เฉพาะในการคำนวณภาพ (visual calculations) ใน Power BI เท่านั้น ไม่ใช้ได้ใน calculated columns, calculated tables หรือ measures ถ้าต้องการค้นหาค่าในสถานการณ์อื่น ให้ใช้ LOOKUPVALUE แทน

ต่างจาก LOOKUPVALUE อย่างไร?+

LOOKUP ใช้เฉพาะในการคำนวณภาพและสืบทอด filter context จากเมทริกซ์ ส่วน LOOKUPVALUE ใช้ได้ทั่วไปในการคำนวณ (measures, columns ฯลฯ) และไม่ต้องสอดคล้องกับเมทริกซ์ LOOKUPVALUE ค้นหาค่าจากตารางโดยระบุเงื่อนไข ส่วน LOOKUP ค้นหาจากตำแหน่งในเมทริกซ์

ถ้าไม่ระบุ colref บางอัน จะเกิดอะไร?+

ถ้าไม่ระบุ colref บางอัน LOOKUP จะสืบทอด filter context จากเมทริกซ์ปัจจุบัน เช่น ถ้าคุณอยู่แถว Q1 แต่ LOOKUP ค้นหาเฉพาะ [Year] เท่านั้น มันจะใช้ Q1 จาก row context ด้วย

ถ้ามีหลายเซลล์ตรงกับเงื่อนไข จะเกิดอะไร?+

LOOKUP จะส่งคืนข้อผิดพลาด (error) ถ้ามีหลายแถวตรงกับเงื่อนไขการกรอง คุณต้องระบุเงื่อนไขให้ครบถ้วนจนกระทั่งมีเพียงเซลล์เดียว

ถ้าไม่มีเซลล์ไหนตรงกับเงื่อนไข จะเกิดอะไร?+

LOOKUP จะส่งคืนข้อผิดพลาด (error) ค่าการกรองต้องจับคู่กับข้อมูลที่มีในเมทริกซ์

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ LOOKUP จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้LOOKUPFilter
Filter (6)
CALCULATE

CALCULATE เป็นฟังก์ชันหลักที่สำคัญที่สุดใน DAX ใช้สำหรับ evaluate expression ภายใต้ filter context ที่ถูกปรับเปลี่ยน สามารถเพิ่มตัวกรองใหม่ ลบตัวกรองเดิม หรือแทนที่ filter ที่มีอยู่ได้ รองรับทั้ง Boolean expression และ table expression เป็น filter arguments พร้อม filter modifier functions เช่น REMOVEFILTERS, ALL, ALLEXCEPT, KEEPFILTERS เพื่อควบคุมการกรองอย่างละเอียด มีพฤติกรรมพิเศษคือ context transition ที่เปลี่ยน row context เป็น filter context โดยอัตโนมัติ ทำให้เป็นเครื่องมือหลักในการสร้าง measure ที่ซับซ้อนและ calculated column ที่ต้องใช้ aggregation

FILTER

FILTER ใช้กรองแถวในตารางตามเงื่อนไขที่ซับซ้อน โดยวนลูปทุกแถวและประเมินเงื่อนไข เหมาะกับการกรองด้วย Measure หรือ Expression ซึ่ง Boolean Expression ทำไม่ได้ แต่ต้องระวังเรื่อง Performance เพราะเป็น Iterator Function ที่ช้ากว่า Boolean Expression ดังนั้นควรใช้เฉพาะเมื่อจำเป็น และอย่าใช้ FILTER กับ RELATED เพื่อกรองข้ามตาราง ให้กรองที่ Dimension Table โดยตรงแทน

LOOKUPVALUE

LOOKUPVALUE เป็นฟังก์ชันค้นหาที่ยืดหยุ่น โดยจะดึงค่าจากคอลัมน์หนึ่งโดยการค้นหาตามเงื่อนไขหลายตัวในเวลาเดียวกัน

LOOKUPWITHTOTALS

LOOKUPWITHTOTALS ค้นหาตำแหน่งที่ตรงเงื่อนไขในตารางสรุป/กริด แล้วคืนค่าเดี่ยวจากคอลัมน์ผลลัพธ์หรือคำนวณนิพจน์จากชุดที่ตรงเงื่อนไข โดยถือว่าคอลัมน์ที่ไม่ระบุในเงื่อนไขอยู่ในสถานะรวม (total) ซึ่งต่างจาก LOOKUP

MATCHBY

MATCHBY ระบุคอลัมน์ที่ใช้จับคู่และระบุแถวปัจจุบันใน window functions เพื่อให้การเลื่อน/เลือกตำแหน่งแถวทำงานถูกต้องเมื่อมีค่า ORDERBY ซ้ำ หรือเมื่อจำเป็นต้องกำหนดเอกลักษณ์ของแถว

ORDERBY

ORDERBY ระบุลำดับการเรียงลำดับ (ASC/DESC) และการจัดการค่าว่าง สำหรับ window functions เช่น INDEX, OFFSET, WINDOW เพื่อกำหนดลำดับของแถวภายในกลุ่ม

Relationship (1)
RELATED

RELATED คืนค่า scalar value (ค่าเดี่ยว) จากคอลัมน์ในตารางที่มีความสัมพันธ์แบบ many-to-one โดยอาศัย relationship ที่กำหนดไว้ในโมเดล ฟังก์ชันนี้ต้องการ row context และสามารถ traverse relationship chain ข้ามหลายขั้นได้ตราบใดที่ทุก relationship อยู่ในทิศทางเดียวกัน

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่