Table.AddColumn
อัปเดต 3 ต.ค. 2569 · ตารางทุกขั้นในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก · ยังไม่ได้ตรวจใน Power Query ของ Excel หรือ Power BI Desktop
เอกสารอ้างอิง: Table.AddColumn (Microsoft Learn) · ตัวจำลองบนหน้านี้รองรับเฉพาะฟังก์ชันและรูปแบบที่ใช้ในตัวอย่าง วันที่แสดงแบบ วัน/เดือน/ปี ค.ศ.
Table.AddColumn คืออะไร
เพิ่มคอลัมน์ใหม่ที่คำนวณจากคอลัมน์อื่นในแถวเดียวกัน (Custom Column)
ใช้เมื่อไหร่
- คำนวณยอดเงินจากจำนวน ราคา และส่วนลดในแต่ละแถว
- สร้างคอลัมน์จัดกลุ่ม เช่น ขนาดคำสั่งซื้อ ใหญ่ หรือ เล็ก
รูปแบบสูตร
optional คือไม่ใส่ก็ได้ · ชื่อฟังก์ชันต้องสะกดตัวพิมพ์ใหญ่เล็กให้ตรง
Argument แต่ละตัว
ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น
| Argument | จำเป็นไหม | ความหมาย |
|---|---|---|
| table | จำเป็น | ตารางต้นทาง |
| newColumnName | จำเป็น | ชื่อคอลัมน์ใหม่ |
| columnGenerator | จำเป็น | ฟังก์ชันที่คำนวณค่าทีละแถว เช่น each [จำนวน] * [ราคาต่อหน่วย] |
| columnType | ไม่บังคับ | ชนิดข้อมูลของคอลัมน์ใหม่ เช่น type number (ไม่ใส่ = any) |
ลองเลย: คำนวณยอดสุทธิของแต่ละคำสั่งซื้อ
คลิกขั้นใน Applied Steps เพื่อดูตารางหลังขั้นนั้น สลับดูก่อนและหลังขั้น เปลี่ยนค่าที่ปุ่มด้านบน หรือแก้สูตรในแถบสูตรแล้วกดคำนวณ
| แถว | ABCเลขที่คำสั่งซื้อ100% | วันที่100% | ABCรหัสสินค้า100% | ABCพนักงานขาย100% | ABCภูมิภาค100% | ABCช่องทาง100% | 123จำนวน100% | 1.2ราคาต่อหน่วย100% | 1.2ส่วนลด100% | 1.2ยอดสุทธิ100% |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | SF-2025-0237 | 2/1/2025 | P009 | วรวุฒิ แสงทอง | เหนือ | Online | 54 | 720 | 0.05 | 36936 |
| 2 | SF-2025-0238 | 4/1/2025 | P024 | นันทิดา กิจเจริญ | กลาง | Online | 35 | 520 | 0.05 | 17290 |
| 3 | SF-2025-0239 | 5/1/2025 | P036 | อรทัย พิทักษ์วงศ์ | กลาง | Online | 38 | 540 | 0 | 20520 |
| 4 | SF-2025-0240 | 7/1/2025 | P039 | ปิยะนุช ศรีสวัสดิ์ | กลาง | Food Service | 20 | 420 | 0 | 8400 |
| 5 | SF-2025-0241 | 7/1/2025 | P009 | นันทิดา กิจเจริญ | กลาง | Modern Trade | 18 | 720 | 0.05 | 12312 |
| 6 | SF-2025-0242 | 8/1/2025 | P009 | ชยพล บุญมา | ตะวันออกเฉียงเหนือ | Modern Trade | 21 | 720 | 0 | 15120 |
| 7 | SF-2025-0243 | 9/1/2025 | P036 | สุภาพร หงษ์ทอง | ตะวันออก | Modern Trade | 30 | 540 | 0.1 | 14580 |
| 8 | SF-2025-0244 | 11/1/2025 | P006 | วรวุฒิ แสงทอง | เหนือ | Online | 20 | 560 | 0 | 11200 |
| 9 | SF-2025-0245 | 12/1/2025 | P009 | ธีรพงษ์ ฉัตรแก้ว | ตะวันออกเฉียงเหนือ | Food Service | 15 | 720 | 0.1 | 9720 |
| 10 | SF-2025-0246 | 13/1/2025 | P006 | วรวุฒิ แสงทอง | เหนือ | Online | 37 | 560 | 0 | 20720 |
| 11 | SF-2025-0247 | 14/1/2025 | P009 | อรทัย พิทักษ์วงศ์ | กลาง | Traditional Trade | 39 | 720 | 0 | 28080 |
| 12 | SF-2025-0248 | 15/1/2025 | P009 | ธีรพงษ์ ฉัตรแก้ว | ตะวันออกเฉียงเหนือ | Online | 24 | 720 | 0 | 17280 |
| 13 | SF-2025-0249 | 16/1/2025 | P006 | สุภาพร หงษ์ทอง | ตะวันออก | Traditional Trade | 50 | 560 | 0.05 | 26600 |
| 14 | SF-2025-0250 | 16/1/2025 | P001 | กมลชนก พงษ์พานิช | ใต้ | Traditional Trade | 35 | 420 | 0 | 14700 |
| 15 | SF-2025-0251 | 17/1/2025 | P006 | ชยพล บุญมา | ตะวันออกเฉียงเหนือ | Modern Trade | 6 | 560 | 0 | 3360 |
| 16 | SF-2025-0252 | 18/1/2025 | P001 | ปิยะนุช ศรีสวัสดิ์ | กลาง | Traditional Trade | 44 | 420 | 0.1 | 16632 |
| 17 | SF-2025-0253 | 20/1/2025 | P024 | กมลชนก พงษ์พานิช | ใต้ | Online | 48 | 520 | 0.1 | 22464 |
| 18 | SF-2025-0254 | 21/1/2025 | P036 | กมลชนก พงษ์พานิช | ใต้ | Traditional Trade | 51 | 540 | 0 | 27540 |
| 19 | SF-2025-0255 | 22/1/2025 | P011 | ปิยะนุช ศรีสวัสดิ์ | กลาง | Food Service | 21 | 650 | 0.1 | 12285 |
| 20 | SF-2025-0256 | 25/1/2025 | P001 | กมลชนก พงษ์พานิช | ใต้ | Modern Trade | 20 | 420 | 0.05 | 7980 |
| 21 | SF-2025-0257 | 26/1/2025 | P036 | กมลชนก พงษ์พานิช | ใต้ | Traditional Trade | 38 | 540 | 0 | 20520 |
| 22 | SF-2025-0258 | 29/1/2025 | P036 | วรวุฒิ แสงทอง | เหนือ | Modern Trade | 38 | 540 | 0.05 | 19494 |
| 23 | SF-2025-0259 | 30/1/2025 | P011 | กมลชนก พงษ์พานิช | ใต้ | Modern Trade | 16 | 650 | 0.05 | 9880 |
| 24 | SF-2025-0260 | 1/2/2025 | P017 | วรวุฒิ แสงทอง | เหนือ | Traditional Trade | 22 | 250 | 0.1 | 4950 |
| 25 | SF-2025-0261 | 3/2/2025 | P036 | วรวุฒิ แสงทอง | เหนือ | Modern Trade | 18 | 540 | 0 | 9720 |
| 26 | SF-2025-0262 | 6/2/2025 | P001 | ชยพล บุญมา | ตะวันออกเฉียงเหนือ | Online | 7 | 420 | 0 | 2940 |
| 27 | SF-2025-0263 | 8/2/2025 | P003 | อรทัย พิทักษ์วงศ์ | กลาง | Online | 20 | 60 | 0 | 1200 |
| 28 | SF-2025-0264 | 9/2/2025 | P001 | นันทิดา กิจเจริญ | กลาง | Food Service | 7 | 420 | 0.05 | 2793 |
| 29 | SF-2025-0265 | 10/2/2025 | P006 | นันทิดา กิจเจริญ | กลาง | Modern Trade | 33 | 560 | 0 | 18480 |
| 30 | SF-2025-0266 | 10/2/2025 | P006 | กมลชนก พงษ์พานิช | ใต้ | Modern Trade | 33 | 560 | 0 | 18480 |
| 31 | SF-2025-0267 | 13/2/2025 | P036 | ชยพล บุญมา | ตะวันออกเฉียงเหนือ | Traditional Trade | 21 | 540 | 0 | 11340 |
| 32 | SF-2025-0268 | 15/2/2025 | P036 | วรวุฒิ แสงทอง | เหนือ | Food Service | 43 | 540 | 0 | 23220 |
| 33 | SF-2025-0269 | 16/2/2025 | P017 | ปิยะนุช ศรีสวัสดิ์ | กลาง | Online | 28 | 250 | 0.1 | 6300 |
| 34 | SF-2025-0270 | 19/2/2025 | P009 | ปิยะนุช ศรีสวัสดิ์ | กลาง | Online | 10 | 720 | 0 | 7200 |
| 35 | SF-2025-0271 | 19/2/2025 | P024 | อรทัย พิทักษ์วงศ์ | กลาง | Online | 19 | 520 | 0 | 9880 |
| 36 | SF-2025-0272 | 20/2/2025 | P003 | ชยพล บุญมา | ตะวันออกเฉียงเหนือ | Food Service | 20 | 60 | 0 | 1200 |
| 37 | SF-2025-0273 | 20/2/2025 | P006 | วรวุฒิ แสงทอง | เหนือ | Modern Trade | 32 | 560 | 0 | 17920 |
| 38 | SF-2025-0274 | 21/2/2025 | P030 | ชยพล บุญมา | ตะวันออกเฉียงเหนือ | Modern Trade | 41 | 420 | 0.05 | 16359 |
| 39 | SF-2025-0275 | 22/2/2025 | P011 | วรวุฒิ แสงทอง | เหนือ | Modern Trade | 32 | 650 | 0 | 20800 |
| 40 | SF-2025-0276 | 23/2/2025 | P017 | ปิยะนุช ศรีสวัสดิ์ | กลาง | Online | 42 | 250 | 0 | 10500 |
Added Custom · ขั้นนี้ทำอะไร
Table.AddColumn รับตาราง 65 แถว × 9 คอลัมน์ ได้ 65 แถว × 10 คอลัมน์
คำนวณคอลัมน์ ยอดสุทธิ ทีละแถว 65 แถว ค่าในแถวมาจากคอลัมน์ของแถวเดียวกัน
| แถว | [จำนวน] | [ราคาต่อหน่วย] | [ส่วนลด] | ผล |
|---|---|---|---|---|
| 1 | 54 | 720 | 0.05 | 36936 |
| 2 | 35 | 520 | 0.05 | 17290 |
| 3 | 38 | 540 | 0 | 20520 |
| 4 | 20 | 420 | 0 | 8400 |
| 5 | 18 | 720 | 0.05 | 12312 |
| 6 | 21 | 720 | 0 | 15120 |
| 7 | 30 | 540 | 0.1 | 14580 |
| 8 | 20 | 560 | 0 | 11200 |
Advanced Editor · โค้ดทั้ง query
let Source = Excel.CurrentWorkbook(){[Name="Sales"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"เลขที่คำสั่งซื้อ", type text}, {"วันที่", type date}, {"รหัสสินค้า", type text}, {"พนักงานขาย", type text}, {"ภูมิภาค", type text}, {"ช่องทาง", type text}, {"จำนวน", Int64.Type}, {"ราคาต่อหน่วย", type number}, {"ส่วนลด", type number}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "ยอดสุทธิ", each [จำนวน] * [ราคาต่อหน่วย] * (1 - [ส่วนลด]), type number) in #"Added Custom"วางใน Home › Advanced Editor ของ Power Query ในไฟล์ฝึกได้ทันที
ถ้าคุณใช้ Excel หรือ DAX อยู่แล้ว
=[@จำนวน]*[@ราคาต่อหน่วย]*(1-[@ส่วนลด])คอลัมน์คำนวณใน Excel Table ใช้ [@คอลัมน์] อ้างแถวเดียวกัน M ใช้ each กับ [คอลัมน์] แนวคิดเดียวกัน
#"Added Custom" = Table.AddColumn(#"Changed Type", "ยอดสุทธิ", each [จำนวน] * [ราคาต่อหน่วย] * (1 - [ส่วนลด]), type number)เพิ่มคอลัมน์ใหม่ที่คำนวณจากคอลัมน์อื่นในแถวเดียวกัน (Custom Column)
ยอดสุทธิ = 'ยอดขาย'[จำนวน] * 'ยอดขาย'[ราคาต่อหน่วย] * (1 - 'ยอดขาย'[ส่วนลด])Calculated column ของ DAX คำนวณหลังโหลด ส่วน Custom Column ใน Power Query คำนวณก่อนโหลด ถ้าใช้แค่ผลรวม Measure แบบ SUMX ประหยัดกว่าทั้งคู่
ข้อผิดพลาดและเคล็ดลับ
แบบทดสอบ 3 ข้อ
1. each [จำนวน] * [ราคาต่อหน่วย] คำนวณอย่างไร
each ทำงานทีละแถว [คอลัมน์] คือค่าของแถวนั้น
2. ไม่ใส่ argument columnType คอลัมน์ใหม่เป็นชนิดใด
ไอคอน ABC123 คือ any ควรใส่ชนิดในขั้นเดียวกัน
3. แถวที่ [ส่วนลด] เป็น null ผลของ [จำนวน] * [ราคาต่อหน่วย] * (1 - [ส่วนลด]) คืออะไร
เลขคณิตกับ null ได้ null ใช้ ([ส่วนลด] ?? 0) ถ้าต้องการถือเป็น 0
ไฟล์ฝึก Table.AddColumn
9Expert-M-Table-AddColumn-Practice-v1.0.xlsx
โจทย์ในชีตแบบฝึกหัด
- ข้อ 1ยอดสุทธิของคำสั่งซื้อแถวแรก · ดูที่ขั้น Added Custom
- ข้อ 2ใช้สูตรยอดก่อนลด (each [จำนวน] * [ราคาต่อหน่วย]) ผลรวมคอลัมน์ใหม่ · ดูที่ขั้น Added Custom
- ข้อ 3ใช้สูตรมูลค่าส่วนลด ผลรวมคอลัมน์ใหม่ · ดูที่ขั้น Added Custom
- ข้อ 4ยอดสุทธิของคำสั่งซื้อแถวสุดท้าย · ดูที่ขั้น Added Custom
- ข้อ 5หลัง Added Custom ตารางมีกี่คอลัมน์ · ดูที่ขั้น Added Custom
ไปต่อ
ต่อยอดในหลักสูตร Power BI และ Power Query ของ 9Expert Training: รวมไฟล์ ล้างข้อมูล และสร้างโมเดลสำหรับรายงาน