คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › Power Query › หัวตารางและชนิดข้อมูล › Table.TransformColumnTypes

Table.TransformColumnTypes

Power Query · Mหัวตารางและชนิดข้อมูลระดับพื้นฐาน

อัปเดต 3 ต.ค. 2569 · ตารางทุกขั้นในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก · ยังไม่ได้ตรวจใน Power Query ของ Excel หรือ Power BI Desktop

เอกสารอ้างอิง: Table.TransformColumnTypes (Microsoft Learn) · ตัวจำลองบนหน้านี้รองรับเฉพาะฟังก์ชันและรูปแบบที่ใช้ในตัวอย่าง วันที่แสดงแบบ วัน/เดือน/ปี ค.ศ.

Table.TransformColumnTypes คืออะไร

กำหนดชนิดข้อมูลของแต่ละคอลัมน์ เช่น ข้อความ ตัวเลข วันที่ ค่าที่แปลงไม่ได้กลายเป็น Error ในช่องนั้น

ปุ่มใน Power Query Editor ที่สร้างขั้นนี้Home › Transform › Data Type (หรือคลิกไอคอนชนิดข้อมูลที่หัวคอลัมน์)

ใช้เมื่อไหร่

  • กำหนดชนิดข้อมูลทุกคอลัมน์ก่อนโหลดเข้า Power BI หรือชีต
  • หาช่องที่ข้อมูลผิดรูปแบบ เพราะค่าที่แปลงไม่ได้จะขึ้นเป็น Error

รูปแบบสูตร

Table.TransformColumnTypes(table as table, typeTransformations as list, optional culture as any) as table

optional คือไม่ใส่ก็ได้ · ชื่อฟังก์ชันต้องสะกดตัวพิมพ์ใหญ่เล็กให้ตรง

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
tableจำเป็นตารางต้นทาง
typeTransformationsจำเป็นlist ของคู่ {ชื่อคอลัมน์, ชนิด} เช่น {{"จำนวน", Int64.Type}, {"วันที่", type date}}
cultureไม่บังคับรูปแบบภาษาและภูมิภาค เช่น "en-US" (ไม่ใส่ = ตามการตั้งค่าของไฟล์) มีผลกับการแปลงข้อความเป็นวันที่และตัวเลข ใส่เป็น record ได้ เช่น [Culture="en-US", MissingField=MissingField.Ignore]

ลองเลย: ตั้งชนิดข้อมูลให้ไฟล์ส่งออก แล้วดูว่าช่องไหนแปลงไม่ได้

คลิกขั้นใน Applied Steps เพื่อดูตารางหลังขั้นนั้น สลับดูก่อนและหลังขั้น เปลี่ยนค่าที่ปุ่มด้านบน หรือแก้สูตรในแถบสูตรแล้วกดคำนวณ

กดใน Power Query EditorHome › Transform › Data Type (หรือคลิกไอคอนชนิดข้อมูลที่หัวคอลัมน์)
Ctrl + Enter คำนวณ · แก้ได้ทุกขั้น เลือกขั้นจาก Applied Steps
9 คอลัมน์ · 67 แถวค่าที่เปลี่ยนในขั้นนี้
Changed Type · ตารางหลังขั้นนี้ 67 แถว 9 คอลัมน์
แถวABCเลขที่คำสั่งซื้อ100%วันที่100%ABCรหัสสินค้า100%ABCพนักงานขาย100%ABCภูมิภาค100%ABCช่องทาง100%123จำนวน100%1.2ราคาต่อหน่วย100%1.2ส่วนลดError 61%
1SF-2025-02372/1/2025P009วรวุฒิ แสงทองเหนือOnline547200.05
2SF-2025-02384/1/2025P024นันทิดา กิจเจริญกลางOnline355200.05
3SF-2025-02395/1/2025P036อรทัย พิทักษ์วงศ์กลางOnline38540Error
4SF-2025-02407/1/2025p039ปิยะนุช ศรีสวัสดิ์กลางFood Service20420Error
5SF-2025-02417/1/2025P009นันทิดา กิจเจริญกลางModern Trade187200.05
6SF-2025-02428/1/2025·P009·ชยพล บุญมาตะวันออกเฉียงเหนือModern Trade21720Error
7SF-2025-02439/1/2025P036สุภาพร หงษ์ทองตะวันออกModern Trade305400.1
8SF-2025-024411/1/2025P006วรวุฒิ แสงทองเหนือOnline20560Error
9SF-2025-024512/1/2025P009·ธีรพงษ์ ฉัตรแก้วตะวันออกเฉียงเหนือFood Service157200.1
10SF-2025-024613/1/2025P006วรวุฒิ แสงทองเหนือOnline37560Error
11SF-2025-024714/1/2025p009อรทัย พิทักษ์วงศ์กลางTraditional Trade39720Error
12SF-2025-024815/1/2025P009ธีรพงษ์ ฉัตรแก้วตะวันออกเฉียงเหนือOnline24720Error
13SF-2025-024916/1/2025P006สุภาพร หงษ์ทองตะวันออกTraditional Trade505600.05
14SF-2025-025016/1/2025P001กมลชนก พงษ์พานิชใต้Traditional Trade35420Error
15SF-2025-025117/1/2025P006ชยพล บุญมาตะวันออกเฉียงเหนือModern Trade6560Error
16SF-2025-025218/1/2025P001ปิยะนุช ศรีสวัสดิ์กลางTraditional Trade444200.1
17SF-2025-025320/1/2025·P024·กมลชนก พงษ์พานิชใต้Online485200.1
18SF-2025-025421/1/2025p036กมลชนก พงษ์พานิชใต้Traditional Trade51540Error
19SF-2025-025522/1/2025P011ปิยะนุช ศรีสวัสดิ์กลางFood Service216500.1
20SF-2025-025625/1/2025P001กมลชนก พงษ์พานิชใต้Modern Trade204200.05
21SF-2025-025726/1/2025P036กมลชนก พงษ์พานิชใต้Traditional Trade38540Error
22SF-2025-025726/1/2025P036กมลชนก พงษ์พานิชใต้Traditional Trade38540Error
23SF-2025-025829/1/2025P036·วรวุฒิ แสงทองเหนือModern Trade385400.05
24SF-2025-025930/1/2025P011กมลชนก พงษ์พานิชใต้Modern Trade166500.05
25SF-2025-02601/2/2025P017วรวุฒิ แสงทองเหนือTraditional Trade222500.1
26SF-2025-02613/2/2025p036วรวุฒิ แสงทองเหนือModern Trade18540Error
27SF-2025-02626/2/2025P001ชยพล บุญมาตะวันออกเฉียงเหนือOnline7420Error
28SF-2025-02638/2/2025P003อรทัย พิทักษ์วงศ์กลางOnline2060Error
29SF-2025-02649/2/2025·P001·นันทิดา กิจเจริญกลางFood Service74200.05
30SF-2025-026510/2/2025P006นันทิดา กิจเจริญกลางModern Trade33560Error
31SF-2025-026610/2/2025P006กมลชนก พงษ์พานิชใต้Modern Trade33560Error
32SF-2025-026713/2/2025P036ชยพล บุญมาตะวันออกเฉียงเหนือTraditional Trade21540Error
33SF-2025-026815/2/2025p036วรวุฒิ แสงทองเหนือFood Service43540Error
34SF-2025-026916/2/2025P017ปิยะนุช ศรีสวัสดิ์กลางOnline282500.1
35SF-2025-027019/2/2025P009ปิยะนุช ศรีสวัสดิ์กลางOnline10720Error
36SF-2025-027119/2/2025P024·อรทัย พิทักษ์วงศ์กลางOnline19520Error
37SF-2025-027220/2/2025P003ชยพล บุญมาตะวันออกเฉียงเหนือFood Service2060Error
38SF-2025-027320/2/2025P006วรวุฒิ แสงทองเหนือModern Trade32560Error
39SF-2025-027421/2/2025P030ชยพล บุญมาตะวันออกเฉียงเหนือModern Trade414200.05
40SF-2025-027522/2/2025p011วรวุฒิ แสงทองเหนือModern Trade32650Error

Changed Type · ขั้นนี้ทำอะไร

Table.TransformColumnTypes รับตาราง 67 แถว × 9 คอลัมน์ ได้ 67 แถว × 9 คอลัมน์

เลขที่คำสั่งซื้อ ABCวันที่ รหัสสินค้า ABCพนักงานขาย ABCภูมิภาค ABCช่องทาง ABCจำนวน 123ราคาต่อหน่วย 1.2ส่วนลด 1.2

แปลงค่า 67 ช่องเป็นชนิดใหม่ · แปลงไม่ได้ 41 ช่อง ขึ้นเป็น Error

DataFormat.Error: We couldn't convert to Number. Details: - (คอลัมน์ ส่วนลด แถวที่ 3)

Advanced Editor · โค้ดทั้ง query
let
    Source = Excel.CurrentWorkbook(){[Name="Export"]}[Content],
    #"Removed Top Rows" = Table.Skip(Source,3),
    #"Promoted Headers" = Table.PromoteHeaders(#"Removed Top Rows", [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"เลขที่คำสั่งซื้อ", type text}, {"วันที่", type date}, {"รหัสสินค้า", type text}, {"พนักงานขาย", type text}, {"ภูมิภาค", type text}, {"ช่องทาง", type text}, {"จำนวน", Int64.Type}, {"ราคาต่อหน่วย", type number}, {"ส่วนลด", type number}})
in
    #"Changed Type"
วางใน Home › Advanced Editor ของ Power Query ในไฟล์ฝึกได้ทันที

ถ้าคุณใช้ Excel หรือ DAX อยู่แล้ว

EXCEL=VALUE(I5)

Excel เก็บชนิดข้อมูลเป็นรายช่องและแปลงให้เองตอนคำนวณ Power Query กำหนดชนิดทั้งคอลัมน์ ค่าที่แปลงไม่ได้ไม่หายไปเงียบ ๆ แต่ขึ้นเป็น Error ให้เห็น

POWER QUERY · M#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"เลขที่คำสั่งซื้อ", type text}, {"วันที่", type date}, {"รหัสสินค้า", type text}, {"พนักงานขาย", type text}, {"ภูมิภาค", type text}, {"ช่องทาง", type text}, {"จำนวน", Int64.Type}, {"ราคาต่อหน่วย", type number}, {"ส่วนลด", type number}})

กำหนดชนิดข้อมูลของแต่ละคอลัมน์ เช่น ข้อความ ตัวเลข วันที่ ค่าที่แปลงไม่ได้กลายเป็น Error ในช่องนั้น

ข้อผิดพลาดและเคล็ดลับ

ขีด - ในคอลัมน์ตัวเลขแปลงเป็นตัวเลขไม่ได้ จึงเป็น Error ให้แทนค่าด้วย Table.ReplaceValue ก่อนเปลี่ยนชนิด
Int64.Type คือจำนวนเต็ม (ไอคอน 123) ส่วน type number คือทศนิยม (ไอคอน 1.2)
ดูแถบ Column quality ใต้หัวคอลัมน์ (View › Column quality) จะเห็นสัดส่วน Valid, Error, Empty ทันที

แบบทดสอบ 3 ข้อ

1. ค่า "-" ในคอลัมน์ที่เปลี่ยนเป็น type number จะกลายเป็นอะไร

2. Int64.Type หมายถึงชนิดใด

3. ข้อความ 05/01/2025 จะเป็นวันที่ 5 ม.ค. หรือ 1 พ.ค. ขึ้นกับอะไร

ไฟล์ฝึก Table.TransformColumnTypes

9Expert-M-Table-TransformColumnTypes-Practice-v1.0.xlsx

รุ่น 1.0 · 3/10/2026 · 21 KB · ไม่มี Macro · เปิดใน Excel › Data › Get Data › Blank Query แล้ววางโค้ดตั้งต้น ทำโจทย์ พิมพ์คำตอบกลับในไฟล์ ตรวจเอง
เริ่มต้นข้อมูลส่งออกยอดขายเป้าหมายโค้ดตั้งต้นแบบฝึกหัดเฉลย

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1หลัง Changed Type ผลรวมคอลัมน์ จำนวน เท่ากับเท่าไร · ดูที่ขั้น Changed Type
  2. ข้อ 2ผลรวมคอลัมน์ ส่วนลด (ไม่นับช่อง Error) เท่ากับเท่าไร ตอบทศนิยม 2 ตำแหน่ง · ดูที่ขั้น Changed Type
  3. ข้อ 3เปลี่ยนชนิดของ ส่วนลด เป็น type text แล้วคอลัมน์นี้มี Error กี่ช่อง · ดูที่ขั้น Changed Type
  4. ข้อ 4หลัง Changed Type มีกี่แถว · ดูที่ขั้น Changed Type
  5. ข้อ 5หลัง Changed Type ผลรวมคอลัมน์ ราคาต่อหน่วย เท่ากับเท่าไร · ดูที่ขั้น Changed Type

ไปต่อ

อยากใช้ Power Query เตรียมข้อมูลจริงทั้งระบบ

ต่อยอดในหลักสูตร Power BI และ Power Query ของ 9Expert Training: รวมไฟล์ ล้างข้อมูล และสร้างโมเดลสำหรับรายงาน

ดูหลักสูตร