Thep Excel

SELECTCOLUMNS – ฟังก์ชัน DAX

สร้างตารางใหม่โดยเลือกเฉพาะคอลัมน์ที่ต้องการจากตารางต้นฉบับและเพิ่มคอลัมน์ที่คำนวณได้ ต่างจาก ADDCOLUMNS ตรงที่ SELECTCOLUMNS เริ่มจากตารางว่างแล้วเพิ่มเฉพาะคอลัมน์ที่ระบุ ทำให้สามารถปรับโครงสร้างตารางและเลือกข้อมูลที่จำเป็นได้อย่างยืดหยุ่น

=SELECTCOLUMNS(<Table>, [<Name>], <Expression>, [<Name>], <Expression>, ...)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
6/10

Difficulty
5/10

Usefulness
6/10

Syntax & Arguments

=SELECTCOLUMNS(<Table>, [<Name>], <Expression>, [<Name>], <Expression>, ...)

Argument Type Required Default Description
table table Yes ตารางต้นฉบับที่ต้องการเลือกข้อมูล สามารถเป็นนิพจน์ DAX ใดก็ได้ที่คืนค่าเป็นตาราง
name text Yes ชื่อของคอลัมน์ใหม่ ต้องอยู่ในเครื่องหมายคำพูดคู่
expression expression Yes นิพจน์ DAX ที่คืนค่าเป็น scalar value เช่น การอ้างอิงคอลัมน์ ตัวเลข หรือข้อความ นิพจน์จะถูกประเมินในบริบทของแต่ละแถวจากตารางต้นฉบับ

How it works

ปรับโครงสร้างตารางให้เหลือคอลัมน์ที่จำเป็น

สร้างตารางใหม่จากตารางใหญ่โดยเลือกเฉพาะคอลัมน์หลัก เพื่อลดความซับซ้อนของโมเดลและเร่งประสิทธิภาพ

รวมหลายคอลัมน์เป็นคอลัมน์เดียว

ต่อข้อความจากหลายคอลัมน์ (เช่นชื่อ-สกุล หรือที่อยู่) เป็นคอลัมน์เดียวด้วยนิพจน์ใน SELECTCOLUMNS

สร้าง calculated table สำหรับการวิเคราะห์

เลือกและคำนวณคอลัมน์ใหม่เพื่อสร้างตารางวิเคราะห์เฉพาะ เช่น ตารางสรุปหรือ lookup พิเศษ

Examples

เลือกคอลัมน์เดียวจากตาราง
CustomerNames = SELECTCOLUMNS( Customer, "Name", [CustomerName] )
สร้างตาราง CustomerNames ที่มีเฉพาะคอลัมน์ชื่อลูกค้าจากตาราง Customer ผลลัพธ์จะเป็นตารางที่มีคอลัมน์เดียวชื่อ Name ซึ่งแตกต่างจาก ADDCOLUMNS ที่จะรักษาคอลัมน์เดิมทั้งหมดไว้
DAX Formula:

CustomerNames = SELECTCOLUMNS(
    Customer,
    "Name", [CustomerName]
)

Result:

ตารางที่มีคอลัมน์ Name เท่านั้น

รวมหลายคอลัมน์เป็นคอลัมน์เดียว
LocationTable = SELECTCOLUMNS( Customer, "Location", [Country] & ", " & [State] )
สร้างตาราง LocationTable โดยรวมคอลัมน์ Country และ State เป็นคอลัมน์เดียวชื่อ Location ด้วยการต่อข้อความ ผลลัพธ์จะเป็น 'USA, CA' หรือ 'IND, MH' เป็นต้น
DAX Formula:

LocationTable = SELECTCOLUMNS(
    Customer,
    "Location", [Country] & ", " & [State]
)

Result:

ตารางที่มีคอลัมน์ Location แสดงประเทศและรัฐรวมกัน

เลือกหลายคอลัมน์พร้อมคำนวณข้อมูลใหม่
SalesAnalysis = SELECTCOLUMNS( Sales, "Product", [ProductName], "Revenue", [Quantity] * [UnitPrice], "Year", YEAR([OrderDate]) )
สร้างตาราง SalesAnalysis ที่มี 3 คอลัมน์ โดยเลือกชื่อสินค้า คำนวณรายได้จากจำนวนคูณราคา และดึงปีจากวันที่สั่งซื้อ ตัวอย่างนี้แสดงให้เห็นการใช้ SELECTCOLUMNS ร่วมกับการคำนวณและฟังก์ชันอื่นๆ เช่น YEAR
DAX Formula:

SalesAnalysis = SELECTCOLUMNS(
    Sales,
    "Product", [ProductName],
    "Revenue", [Quantity] * [UnitPrice],
    "Year", YEAR([OrderDate])
)

Result:

ตารางที่มี Product, Revenue และ Year สำหรับวิเคราะห์ยอดขาย

ใช้ร่วมกับ FILTER เพื่อเลือกข้อมูลเฉพาะกลุ่ม
TopCustomers = SELECTCOLUMNS( FILTER(Customer, [TotalPurchase] > 10000), "Customer Name", [CustomerName], "Total", [TotalPurchase], "Tier", "Premium" )
สร้างตาราง TopCustomers โดยใช้ FILTER เพื่อกรองเฉพาะลูกค้าที่มียอดซื้อเกิน 10,000 จากนั้นใช้ SELECTCOLUMNS เพื่อเลือกคอลัมน์ชื่อและยอดซื้อ พร้อมเพิ่มคอลัมน์ Tier ที่มีค่าคงที่ 'Premium' ตัวอย่างนี้แสดงการใช้ SELECTCOLUMNS ร่วมกับ FILTER และ CALCULATETABLE เพื่อสร้างตารางที่มีข้อมูลเฉพาะกลุ่มที่ต้องการ
DAX Formula:

TopCustomers = SELECTCOLUMNS(
    FILTER(Customer, [TotalPurchase] > 10000),
    "Customer Name", [CustomerName],
    "Total", [TotalPurchase],
    "Tier", "Premium"
)

Result:

ตารางลูกค้า Premium ที่มียอดซื้อเกิน 10,000

สร้างตารางสรุปด้วยการจัดกลุ่มข้อมูล
RegionSummary = SELECTCOLUMNS( SUMMARIZE(Sales, Sales[Region], Sales[Category]), "Region", [Region], "Category", [Category], "Total Sales", CALCULATE(SUM(Sales[…
สร้างตาราง RegionSummary โดยใช้ SUMMARIZE จัดกลุ่มข้อมูลตามภูมิภาคและหมวดหมู่ จากนั้นใช้ SELECTCOLUMNS เพื่อเลือกคอลัมน์และคำนวณยอดขายรวมในแต่ละกลุ่ม ตัวอย่างนี้แสดงการใช้งานร่วมกับ SUMMARIZE และ CALCULATE อย่างมีประสิทธิภาพในการวิเคราะห์ข้อมูล
DAX Formula:

RegionSummary = SELECTCOLUMNS(
    SUMMARIZE(Sales, Sales[Region], Sales[Category]),
    "Region", [Region],
    "Category", [Category],
    "Total Sales", CALCULATE(SUM(Sales[Amount]))
)

Result:

ตารางสรุปยอดขายแยกตามภูมิภาคและหมวดหมู่

FAQs

SELECTCOLUMNS ต่างจาก ADDCOLUMNS อย่างไร?

SELECTCOLUMNS เริ่มจากตารางว่างแล้วเพิ่มเฉพาะคอลัมน์ที่ระบุ ในขณะที่ ADDCOLUMNS จะเริ่มจากตารางต้นฉบับที่มีคอลัมน์ทั้งหมดแล้วเพิ่มคอลัมน์ใหม่เข้าไป ใช้ SELECTCOLUMNS เมื่อต้องการควบคุมโครงสร้างตารางผลลัพธ์ และใช้ ADDCOLUMNS เมื่อต้องการเก็บคอลัมน์เดิมทั้งหมด

สามารถใช้ SELECTCOLUMNS ใน DirectQuery mode ได้หรือไม่?

ไม่ได้ SELECTCOLUMNS ไม่รองรับการใช้งานใน DirectQuery mode เมื่อใช้ใน calculated columns หรือ row-level security (RLS) rules ควรใช้วิธีอื่นในกรณีที่จำเป็นต้องใช้ DirectQuery

ควรใช้ SELECTCOLUMNS หรือ SUMMARIZE ในการจัดกลุ่มข้อมูล?

ใช้ SUMMARIZE สำหรับการจัดกลุ่มข้อมูล (grouping) โดยเฉพาะ และใช้ SELECTCOLUMNS เมื่อต้องการเลือกหรือแปลงคอลัมน์โดยไม่จัดกลุ่ม อย่างไรก็ตาม สามารถใช้ทั้งสองฟังก์ชันร่วมกันได้ เช่น ใช้ SUMMARIZE จัดกลุ่มก่อน แล้วใช้ SELECTCOLUMNS เลือกคอลัมน์จากผลลัพธ์

Resources & Related

Related functions

Additional Notes

ฟังก์ชัน SELECTCOLUMNS ใช้สำหรับสร้างตารางใหม่โดยเลือกเฉพาะคอลัมน์ที่ต้องการจากตารางต้นฉบับ และสามารถเพิ่มคอลัมน์ใหม่ที่คำนวณจากนิพจน์ DAX ได้ ต่างจาก ADDCOLUMNS ที่เริ่มต้นจากตารางเดิมและเพิ่มคอลัมน์เข้าไป SELECTCOLUMNS จะเริ่มจากตารางว่างแล้วค่อยเพิ่มเฉพาะคอลัมน์ที่กำหนด ทำให้เหมาะสำหรับการปรับโครงสร้างข้อมูลและเลือกเฉพาะข้อมูลที่จำเป็น

ฟังก์ชันนี้มักใช้ร่วมกับ ADDCOLUMNS, SUMMARIZE, CALCULATETABLE และ FILTER เพื่อจัดการและปรับแต่งตารางข้อมูล รวมถึงสร้าง calculated tables ที่มีโครงสร้างตามที่ต้องการ

Leave a Reply

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