---
title: LOOKUP – ค้นหาค่าในเมทริกซ์ภาพ
url: https://www.thepexcel.com/functions/dax/filter/lookup-dax/
type: function-explainer
program: DAX
syntax: "LOOKUP(<expression>, <colref>, <expression>[, <colref>, <expression>]...)"
date: 2025-12-14
updated: 2025-12-25
scores:
  popularity: 5
  difficulty: 4
  usefulness: 5
---

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

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

## คำอธิบาย

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

## Syntax

```excel
LOOKUP(&lt;expression&gt;, &lt;colref&gt;, &lt;expression&gt;[, &lt;colref&gt;, &lt;expression&gt;]...)
```

## Arguments

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

## เคสการใช้งาน

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

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

_เหมาะกับ:_ ordered-pick

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

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

_เหมาะกับ:_ ad-hoc-lookup

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

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

_เหมาะกับ:_ deduplicate-pick

## ตัวอย่าง

### 1. ค้นหายอดขายเดียวในหมวดหมู่ที่ระบุ

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

**ผลลัพธ์:** `500000`

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

### 2. ค้นหาจากหลายเงื่อนไขพร้อมการสืบทอด context

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

**ผลลัพธ์:** `250000`

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

### 3. ค้นหาจากสองเงื่อนไขพร้อมระบุอย่างชัดเจน

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

**ผลลัพธ์:** `75000`

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

### 4. ค้นหาด้วยการประเมินนิพจน์

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

**ผลลัพธ์:** `450.50`

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

## หมายเหตุเพิ่มเติม

- ผมแนะนำให้ตรวจสอบว่ากำลังใช้ LOOKUP ในการคำนวณภาพจริงๆ ไม่ใช่ใน calculated column หรือ measure เพราะมันจะให้ข้อผิดพลาด

- เมื่อระบุเงื่อนไขหลายอัน ให้ตรวจสอบว่าค่าทั้งหมดมีอยู่ในเมทริกซ์ เช่น [Fiscal Year] = "FY2024" และ [Fiscal Quarter] = "Q99" จะ error เพราะไม่มี Q99 ในข้อมูล

- ส่วนตัวผม ถ้าต้องการค้นหาค่าจากตารางธรรมชาติ ผมมักใช้ LOOKUPVALUE มากกว่า เพราะมีความยืดหยุ่นมากกว่าและใช้ได้ทั่วไปในอีก context ต่างๆ LOOKUP ใช้สำหรับกรณีเฉพาะเมื่อทำงานกับเมทริกซ์ภาพเท่านั้น

- ระวังเรื่องการสืบทอด filter context ถ้าคุณไม่ระบุ colref บางอัน มันจะใช้ค่าจาก row context ทำให้ได้ผลลัพธ์ไม่ตรงตามความตั้งใจ ให้ระบุเงื่อนไขให้ชัดเจนจากจริง

## คำถามที่พบบ่อย

**Q: LOOKUP ใช้ได้ที่ไหนบ้าง?**

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

**Q: ต่างจาก LOOKUPVALUE อย่างไร?**

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

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

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

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

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

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

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

## ฟังก์ชันที่เกี่ยวข้อง

- [LOOKUPVALUE – ค้นหาและดึงค่าจากตารางตามเงื่อนไขหลายตัว](https://www.thepexcel.com/functions/dax/filter/lookupvalue-dax/)
- [LOOKUPWITHTOTALS – ค้นหาในตารางสรุปโดยให้คอลัมน์ที่ไม่ระบุอยู่ในสถานะรวม](https://www.thepexcel.com/functions/dax/filter/lookupwithtotals-dax/)
- offset-dax
- [MATCHBY – กำหนดคอลัมน์สำหรับระบุแถวปัจจุบัน (Window Functions)](https://www.thepexcel.com/functions/dax/filter/matchby-dax/)
- [ORDERBY – กำหนดลำดับการเรียงในฟังก์ชัน Window](https://www.thepexcel.com/functions/dax/filter/orderby-dax/)
- [FILTER – กรองตารางด้วยเงื่อนไขที่ซับซ้อน (Iterator Function)](https://www.thepexcel.com/functions/dax/filter/filter-dax/)
- [TREATAS – ส่งค่าข้ามตารางแบบเสมือน ไม่ต้องมี Relationship](https://www.thepexcel.com/functions/dax/table-manipulation/treatas-dax/)
- [EARLIEST – ฟังก์ชัน DAX](https://www.thepexcel.com/functions/dax/other/earliest-dax/)

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Learn - LOOKUP Function](https://learn.microsoft.com/en-us/dax/lookup-function-dax) _(official)_
- [DAX Guide - LOOKUP](http://dax.guide/lookup/) _(guide)_

---

_Source: [https://www.thepexcel.com/functions/dax/filter/lookup-dax/](https://www.thepexcel.com/functions/dax/filter/lookup-dax/)_
