Thep Excel

VALUES – ดึงรายการที่ไม่ซ้ำ (รวม Blank จากความสัมพันธ์)

ดึงค่าที่ไม่ซ้ำกันออกมาเป็นตาราง (รวม Blank พิเศษ)

VALUES คืนค่าตารางที่มีคอลัมน์เดียว (หรือทั้งตาราง) ซึ่งประกอบด้วยค่าที่ไม่ซ้ำกัน รวมถึง Blank Row พิเศษที่เกิดจาก Invalid Relationship ด้วย หากผลลัพธ์มีค่าเดียว สามารถถูกแปลงเป็น Scalar Value ได้อัตโนมัติ

=VALUES( TableNameOrColumnName )

By ThepExcel AI Agent
1 December 2025

Syntax & Arguments

=VALUES( TableNameOrColumnName )

Argument Type Required Default Description
TableNameOrColumnName table/column Yes ชื่อตารางหรือคอลัมน์ที่ต้องการดึงค่า

How it works

ใช้เป็นตัวตั้งต้นในการวนลูป (Iterator)

ใช้ VALUES(Product[Color]) ใน SUMX เพื่อวนคำนวณยอดขายทีละสี

คืนค่าชื่อที่ถูกเลือกใน Slicer

ใช้แสดงข้อความว่าผู้ใช้กำลังเลือกดูข้อมูลของใครอยู่ (เช่น "Sales Report for: John")

Examples

ตัวอย่างที่ 1: นับจำนวนวันที่ขายได้ (ไม่ซ้ำ)

VALUES ดึงวันที่ที่มีในตาราง Sales ออกมาแบบไม่ซ้ำ แล้ว COUNTROWS นับจำนวนแถว (ได้ผลลัพธ์เหมือน DISTINCTCOUNT)
DAX Formula:

Selling Days = COUNTROWS( VALUES( Sales[OrderDate] ) )

Result:

จำนวนวันที่ที่มีการขายเกิดขึ้นจริง

ตัวอย่างที่ 2: แสดงชื่อสินค้าที่เลือก (Dynamic Title)

ถ้าผู้ใช้เลือกสินค้าชิ้นเดียว VALUES จะคืนค่าเป็น Text ได้เลย แต่ถ้าเลือกหลายชิ้น สูตรนี้จะ Error (ต้องใช้ SELECTEDVALUE แทนในกรณีนั้น)
DAX Formula:

Selected Product = "Product: " & VALUES( 'Product'[ProductName] )

Result:

Product: Apple (ถ้าเลือก Apple อันเดียว)

ตัวอย่างที่ 3: วนลูปคำนวณด้วย SUMX

ใช้ VALUES สร้างตารางหมวดหมู่ที่ไม่ซ้ำ แล้วให้ SUMX วนลูปคำนวณยอดขายของแต่ละหมวดหมู่ ก่อนจะหาค่าเฉลี่ยด้วย AVERAGEX
DAX Formula:

Avg Sales per Category = 
AVERAGEX(
    VALUES('Product'[Category]),
    [Total Sales]
)

Result:

ค่าเฉลี่ยของยอดขายรายหมวดหมู่

FAQs

VALUES ต่างจาก DISTINCT อย่างไร?

VALUES จะคืนค่า Blank Row ที่เกิดจากความสัมพันธ์ที่ไม่สมบูรณ์ (Referential Integrity Violation) มาด้วย ส่วน DISTINCT จะตัดทิ้ง

ทำไมใช้ VALUES แล้ว Error ว่า "A table of multiple values was supplied"?

เพราะ VALUES คืนค่าเป็น ‘ตาราง’ แต่คุณกำลังพยายามนำไปใช้ในที่ที่ต้องการ ‘ค่าเดียว’ (Scalar) ปัญหานี้แก้ได้โดยใช้ IF(HASONEVALUE(…), VALUES(…)) หรือใช้ SELECTEDVALUE แทน

Resources & Related

Additional Notes

VALUES เป็นฟังก์ชันยอดนิยมในการดึงค่าที่ไม่ซ้ำ (Unique Values) จากคอลัมน์ เพื่อนำไปใช้ในการคำนวณต่อ (เช่น การวนลูป) หรือใช้ในการคืนค่ากลับมาเป็น Scalar Value ในกรณีที่มีค่าเดียว

ความพิเศษของ VALUES คือมันจะรักษา Blank Row ที่ระบบสร้างขึ้นอัตโนมัติเมื่อเจอข้อมูลที่ไม่ตรงกันในความสัมพันธ์ (Invalid Relationship) ซึ่งช่วยให้ผลรวมยอดขายยังคงถูกต้องแม้ข้อมูล Master จะไม่ครบถ้วน

Leave a Reply

Your email address will not be published. Required fields are marked *