---
title: SELECTCOLUMNS – ฟังก์ชัน DAX
url: https://www.thepexcel.com/functions/dax/table-manipulation/selectcolumns-dax/
type: function-explainer
program: DAX
syntax: "SELECTCOLUMNS(<Table>, [<Name>], <Expression>, [<Name>], <Expression>, ...)"
date: 2025-12-13
updated: 2025-12-17
scores:
  popularity: 6
  difficulty: 5
  usefulness: 6
---

# SELECTCOLUMNS – ฟังก์ชัน DAX

> เลือกคอลัมน์จากตารางและสร้างคอลัมน์ใหม่ตามนิพจน์ที่กำหนด

## คำอธิบาย

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

## Syntax

```excel
SELECTCOLUMNS(&lt;Table&gt;, [&lt;Name&gt;], &lt;Expression&gt;, [&lt;Name&gt;], &lt;Expression&gt;, ...)
```

**Variant**

```excel
SELECTCOLUMNS(&lt;Table&gt;, &lt;Name&gt;, &lt;Expression&gt;)
```

สร้างตารางใหม่ที่มีคอลัมน์เดียวจากนิพจน์ที่กำหนด

**Variant**

```excel
SELECTCOLUMNS(&lt;Table&gt;, &lt;Name1&gt;, &lt;Expression1&gt;, &lt;Name2&gt;, &lt;Expression2&gt;, ...)
```

สร้างตารางใหม่ที่มีหลายคอลัมน์จากนิพจน์หลายตัว

## Arguments

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

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

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

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

_เหมาะกับ:_ data-shaping

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

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

_เหมาะกับ:_ data-concatenation

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

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

_เหมาะกับ:_ calculated-table

## ตัวอย่าง

### 1. เลือกคอลัมน์เดียวจากตาราง

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

**ผลลัพธ์:** `ตารางที่มีคอลัมน์ Name เท่านั้น`

สร้างตาราง CustomerNames ที่มีเฉพาะคอลัมน์ชื่อลูกค้าจากตาราง Customer ผลลัพธ์จะเป็นตารางที่มีคอลัมน์เดียวชื่อ Name ซึ่งแตกต่างจาก ADDCOLUMNS ที่จะรักษาคอลัมน์เดิมทั้งหมดไว้

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

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

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

สร้างตาราง LocationTable โดยรวมคอลัมน์ Country และ State เป็นคอลัมน์เดียวชื่อ Location ด้วยการต่อข้อความ ผลลัพธ์จะเป็น 'USA, CA' หรือ 'IND, MH' เป็นต้น

### 3. เลือกหลายคอลัมน์พร้อมคำนวณข้อมูลใหม่

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

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

สร้างตาราง SalesAnalysis ที่มี 3 คอลัมน์ โดยเลือกชื่อสินค้า คำนวณรายได้จากจำนวนคูณราคา และดึงปีจากวันที่สั่งซื้อ ตัวอย่างนี้แสดงให้เห็นการใช้ SELECTCOLUMNS ร่วมกับการคำนวณและฟังก์ชันอื่นๆ เช่น YEAR

### 4. ใช้ร่วมกับ FILTER เพื่อเลือกข้อมูลเฉพาะกลุ่ม

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

**ผลลัพธ์:** `ตารางลูกค้า Premium ที่มียอดซื้อเกิน 10,000`

สร้างตาราง TopCustomers โดยใช้ FILTER เพื่อกรองเฉพาะลูกค้าที่มียอดซื้อเกิน 10,000 จากนั้นใช้ SELECTCOLUMNS เพื่อเลือกคอลัมน์ชื่อและยอดซื้อ พร้อมเพิ่มคอลัมน์ Tier ที่มีค่าคงที่ 'Premium' ตัวอย่างนี้แสดงการใช้ SELECTCOLUMNS ร่วมกับ FILTER และ CALCULATETABLE เพื่อสร้างตารางที่มีข้อมูลเฉพาะกลุ่มที่ต้องการ

### 5. สร้างตารางสรุปด้วยการจัดกลุ่มข้อมูล

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

**ผลลัพธ์:** `ตารางสรุปยอดขายแยกตามภูมิภาคและหมวดหมู่`

สร้างตาราง RegionSummary โดยใช้ SUMMARIZE จัดกลุ่มข้อมูลตามภูมิภาคและหมวดหมู่ จากนั้นใช้ SELECTCOLUMNS เพื่อเลือกคอลัมน์และคำนวณยอดขายรวมในแต่ละกลุ่ม ตัวอย่างนี้แสดงการใช้งานร่วมกับ SUMMARIZE และ CALCULATE อย่างมีประสิทธิภาพในการวิเคราะห์ข้อมูล

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

หมายเหตุ: SELECTCOLUMNS จะคงไว้ซึ่ง data lineage ของคอลัมน์ที่อ้างอิงถึงคอลัมน์เดิมโดยตรง ซึ่งช่วยให้ความสัมพันธ์และ filter context ทำงานได้อย่างถูกต้อง นอกจากนี้ ควรระวังการใช้ SELECTCOLUMNS กับตารางขนาดใหญ่ เนื่องจากจะสร้างตารางใหม่ทั้งหมดในหน่วยความจำ

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

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

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

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

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

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

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

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

- [ADDCOLUMNS – เพิ่มคอลัมน์คำนวณให้ตาราง](https://www.thepexcel.com/functions/dax/table-manipulation/addcolumns-dax/)
- [SUMMARIZE – จัดกลุ่มข้อมูลและสร้างตารางสรุป (Table Grouping)](https://www.thepexcel.com/functions/dax/table-manipulation/summarize-dax/)
- [SUMMARIZECOLUMNS – สร้างตารางสรุปแบบ Dynamic Query](https://www.thepexcel.com/functions/dax/table-manipulation/summarizecolumns-dax/)
- [CALCULATETABLE – Evaluate Table Expression ใน Modified Filter Context](https://www.thepexcel.com/functions/dax/filter/calculatetable-dax/)
- [FILTER – กรองตารางด้วยเงื่อนไขที่ซับซ้อน (Iterator Function)](https://www.thepexcel.com/functions/dax/filter/filter-dax/)
- [DISTINCT – ดึงรายการที่ไม่ซ้ำ (Unique Values) พร้อมหลีกหนีค่า Blank Row](https://www.thepexcel.com/functions/dax/table-manipulation/distinct-dax/)
- [ALL – ลบ Filter หรือคืนค่าทุกแถว](https://www.thepexcel.com/functions/dax/filter/all-dax/)
- [CALCULATE – ฟังก์ชันหลักของ DAX ที่ควบคุม Filter Context](https://www.thepexcel.com/functions/dax/filter/calculate-dax/)

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

- [SELECTCOLUMNS function (DAX) - Microsoft Learn](https://learn.microsoft.com/en-us/dax/selectcolumns-function-dax) _(documentation)_
- [SELECTCOLUMNS - DAX Guide](https://dax.guide/selectcolumns/) _(documentation)_

---

_Source: [https://www.thepexcel.com/functions/dax/table-manipulation/selectcolumns-dax/](https://www.thepexcel.com/functions/dax/table-manipulation/selectcolumns-dax/)_
