สร้างตารางใหม่โดยเลือกเฉพาะคอลัมน์ที่ต้องการจากตารางต้นฉบับและเพิ่มคอลัมน์ที่คำนวณได้ ต่างจาก ADDCOLUMNS ตรงที่ SELECTCOLUMNS เริ่มจากตารางว่างแล้วเพิ่มเฉพาะคอลัมน์ที่ระบุ ทำให้สามารถปรับโครงสร้างตารางและเลือกข้อมูลที่จำเป็นได้อย่างยืดหยุ่น
=SELECTCOLUMNS(<Table>, [<Name>], <Expression>, [<Name>], <Expression>, ...)
=SELECTCOLUMNS(<Table>, [<Name>], <Expression>, [<Name>], <Expression>, ...)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| table | table | Yes | ตารางต้นฉบับที่ต้องการเลือกข้อมูล สามารถเป็นนิพจน์ DAX ใดก็ได้ที่คืนค่าเป็นตาราง | |
| name | text | Yes | ชื่อของคอลัมน์ใหม่ ต้องอยู่ในเครื่องหมายคำพูดคู่ | |
| expression | expression | Yes | นิพจน์ DAX ที่คืนค่าเป็น scalar value เช่น การอ้างอิงคอลัมน์ ตัวเลข หรือข้อความ นิพจน์จะถูกประเมินในบริบทของแต่ละแถวจากตารางต้นฉบับ |
สร้างตารางใหม่จากตารางใหญ่โดยเลือกเฉพาะคอลัมน์หลัก เพื่อลดความซับซ้อนของโมเดลและเร่งประสิทธิภาพ
ต่อข้อความจากหลายคอลัมน์ (เช่นชื่อ-สกุล หรือที่อยู่) เป็นคอลัมน์เดียวด้วยนิพจน์ใน SELECTCOLUMNS
เลือกและคำนวณคอลัมน์ใหม่เพื่อสร้างตารางวิเคราะห์เฉพาะ เช่น ตารางสรุปหรือ lookup พิเศษ
CustomerNames = SELECTCOLUMNS( Customer, "Name", [CustomerName] )CustomerNames = SELECTCOLUMNS(
Customer,
"Name", [CustomerName]
)
ตารางที่มีคอลัมน์ Name เท่านั้น
LocationTable = SELECTCOLUMNS( Customer, "Location", [Country] & ", " & [State] )LocationTable = SELECTCOLUMNS(
Customer,
"Location", [Country] & ", " & [State]
)
ตารางที่มีคอลัมน์ Location แสดงประเทศและรัฐรวมกัน
SalesAnalysis = SELECTCOLUMNS( Sales, "Product", [ProductName], "Revenue", [Quantity] * [UnitPrice], "Year", YEAR([OrderDate]) )SalesAnalysis = SELECTCOLUMNS(
Sales,
"Product", [ProductName],
"Revenue", [Quantity] * [UnitPrice],
"Year", YEAR([OrderDate])
)
ตารางที่มี Product, Revenue และ Year สำหรับวิเคราะห์ยอดขาย
TopCustomers = SELECTCOLUMNS( FILTER(Customer, [TotalPurchase] > 10000), "Customer Name", [CustomerName], "Total", [TotalPurchase], "Tier", "Premium" )TopCustomers = SELECTCOLUMNS(
FILTER(Customer, [TotalPurchase] > 10000),
"Customer Name", [CustomerName],
"Total", [TotalPurchase],
"Tier", "Premium"
)
ตารางลูกค้า Premium ที่มียอดซื้อเกิน 10,000
RegionSummary = SELECTCOLUMNS( SUMMARIZE(Sales, Sales[Region], Sales[Category]), "Region", [Region], "Category", [Category], "Total Sales", CALCULATE(SUM(Sales[…RegionSummary = SELECTCOLUMNS(
SUMMARIZE(Sales, Sales[Region], Sales[Category]),
"Region", [Region],
"Category", [Category],
"Total Sales", CALCULATE(SUM(Sales[Amount]))
)
ตารางสรุปยอดขายแยกตามภูมิภาคและหมวดหมู่
SELECTCOLUMNS เริ่มจากตารางว่างแล้วเพิ่มเฉพาะคอลัมน์ที่ระบุ ในขณะที่ ADDCOLUMNS จะเริ่มจากตารางต้นฉบับที่มีคอลัมน์ทั้งหมดแล้วเพิ่มคอลัมน์ใหม่เข้าไป ใช้ SELECTCOLUMNS เมื่อต้องการควบคุมโครงสร้างตารางผลลัพธ์ และใช้ ADDCOLUMNS เมื่อต้องการเก็บคอลัมน์เดิมทั้งหมด
ไม่ได้ SELECTCOLUMNS ไม่รองรับการใช้งานใน DirectQuery mode เมื่อใช้ใน calculated columns หรือ row-level security (RLS) rules ควรใช้วิธีอื่นในกรณีที่จำเป็นต้องใช้ DirectQuery
ใช้ SUMMARIZE สำหรับการจัดกลุ่มข้อมูล (grouping) โดยเฉพาะ และใช้ SELECTCOLUMNS เมื่อต้องการเลือกหรือแปลงคอลัมน์โดยไม่จัดกลุ่ม อย่างไรก็ตาม สามารถใช้ทั้งสองฟังก์ชันร่วมกันได้ เช่น ใช้ SUMMARIZE จัดกลุ่มก่อน แล้วใช้ SELECTCOLUMNS เลือกคอลัมน์จากผลลัพธ์
ฟังก์ชัน SELECTCOLUMNS ใช้สำหรับสร้างตารางใหม่โดยเลือกเฉพาะคอลัมน์ที่ต้องการจากตารางต้นฉบับ และสามารถเพิ่มคอลัมน์ใหม่ที่คำนวณจากนิพจน์ DAX ได้ ต่างจาก ADDCOLUMNS ที่เริ่มต้นจากตารางเดิมและเพิ่มคอลัมน์เข้าไป SELECTCOLUMNS จะเริ่มจากตารางว่างแล้วค่อยเพิ่มเฉพาะคอลัมน์ที่กำหนด ทำให้เหมาะสำหรับการปรับโครงสร้างข้อมูลและเลือกเฉพาะข้อมูลที่จำเป็น
ฟังก์ชันนี้มักใช้ร่วมกับ ADDCOLUMNS, SUMMARIZE, CALCULATETABLE และ FILTER เพื่อจัดการและปรับแต่งตารางข้อมูล รวมถึงสร้าง calculated tables ที่มีโครงสร้างตามที่ต้องการ