---
title: วิธีจัดการเลขไทยใน Excel และ Power BI
url: https://www.thepexcel.com/thainumber-arabic-excel-powerbi/
type: post
date: 2022-06-01
updated: 2025-12-22
author: Sira Ekabut
categories: [Excel, Excel Advanced Formula, Power BI]
tags: [Text.Combine, List.Zip, List.ReplaceMatchingItems, Text.ToList, number, CHAR]
---

# วิธีจัดการเลขไทยใน Excel และ Power BI

ในช่วงนี้มีประเด็นในโลก Social เกี่ยวกับ “การใช้เลขไทยในเอกสารราชการ” ทำให้อ่านยาก ลามไปที่ถึงที่มาของเลขไทยและวัฒนธรรมไทยอันดีงาม (ไปได้ไงเนี่ย…) ซึ่งในที่นี้ผมจะไม่ขอพูดถึงเรื่องดราม่าอันนั้น แต่จะมาพูดถึงวิธีที่ Excel และ Power BI จัดการกับเลขไทยดีกว่า มาดูกันดีกว่าครับว่ามีอะไรน่าสนใจบ้าง?

 

## เลขไทยจัดการไม่ยากอย่างที่คิด(ถ้าทำงานในฐานะตัวเลข)

 

ถ้าเราพิมพ์ตัวเลขไทย หรือ Copy เลขไทยลงไปใน Excel เองเลย ปกติ Excel จะมองอันนั้นเป็นตัวเลขอยู่แล้วนะครับ เช่น ถ้าพิมพ์เลขไทย ๑๒๓๔ เนี่ย excel จะมองว่าค่าที่แท้จริงของมันคือ 1234 อยู่แล้ว ดังนั้นไม่ใช่ปัญหา (ไม่ว่า Region ใน Control Panel จะตั้งค่าเป็น Thai หรือ US/UK ก็ตาม)

 ![1](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-01.png) 

ถ้ามองว่าค่าที่แท้จริงเป็น 1234 แปลว่า ที่เราเห็นเป็นเลขไทย มันเป็นแค่ Format หรือรูปลักษณ์ภายนอก **ดังนั้นวิธีแก้ไข คือ แค่เราปรับ Format ให้มันเป็นเลขอารบิกปกติ เช่น ปรับให้กลายเป็น General หรือ Number ก็จบ**

 ![2](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-02-1024x432.png)
*ตอนยังมี Number Format เป็นเลขไทย*
 ![3](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-03-1024x399.png)
*ตอนปรับ Number Format ช่องเดิมเลย ให้กลายเป็นเลขปกติ*
 

ในทางกลับกันก็แปลว่า ถ้าเดิมเราทำงานกับเลขอารบิกอยู่ เราก็สามารถแปลง**ให้เห็นเป็นเลขไทย**ได้เช่นกัน ด้วยการใส่ Number format ที่เหมาะสม ใน Custom โดยมี Code [$-th-TH,D00] นำหน้า แล้วตามด้วย Custom Format มาตรฐาน เช่น** **

 

ถ้าอยากได้เลขจำนวนเต็มก็แบบนี้

 

```markdown
[$-th-TH,D00]0
```

 

ถ้าอยากมี ทศนิยม 2 ตำแหน่ง ก็ใช้อันนี้

 

```markdown
[$-th-TH,D00]0.00
```

 

ถ้าอยากมี Comma คั่นหลักพัน ก็ใช้อันนี้

 

```markdown
[$-th-TH,D00]#,##0
```

 ![4](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-04-1024x431.png) 

> จะเห็นว่าเราใช้การปรับ Format ได้อย่างอิสระ ดังนั้นข้าราชการทั้งหลายไม่จำเป็นต้องไปนั่งพิมพ์เลขไทยแต่แรกนะ ยากจะตาย!!

 

### ข้อควรระวัง!

 

อย่างไรก็ตาม ถ้าเราพิมพ์เลขไทยในฐานะที่เป็นข้อความ เช่น พิมพ์เป็นส่วนหนึ่งของข้อความไปเลย อันนี้มันจะเก็บข้อมูลในฐานะข้อความจริงๆ ซึ่งการจะมาแก้เป็นเลขอารบิกภายหลังจะยุ่งหน่อย คือ ต้องใช้หลักการแทนที่อักขระ ๐๑๒๓๔๕๖๗๘๙ แต่ละตัวด้วย 0123456789 ซึ่งทำได้หลายวิธี เช่น

 
- ซึ่งจะใช้ find/replace ทีละตัว 10 ครั้ง
- ใช้ฟังก์ชัน SUBSTITUTE ทีละตัว 10 ครั้ง
- จะใช้มาโคร/VBAช่วย
- ถ้าใครมี Excel 365 จะเขียนฟังก์ชันด้วย LAMBDA มาจัดการก็ได้
- แต่ในบทความนี้ผมจะใช้การเขียนฟังก์ชันใน Power Query มาช่วยจัดการซึ่งอ่านได้ในตอนท้ายของบทความครับ (เพราะวิธีนี้ใช้กับ Power BI ได้ด้วย)

 

## การ Save / เปิด ไฟล์เป็น Text, CSV ที่มีเลขไทย

 

ถ้าสมมติเรามีเลขไทยใน Excel ได้ตามต้องการแล้ว เช่น

 ![5](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-05.png) 

จากนั้นหากเราต้องการ Save เป็นไฟล์ Text, CSV ก็ทำได้ เช่น แบบนี้ (เลือกเป็น CSV UTF-8)

 ![6](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-06.png) 

ซึ่งในไฟล์ csv ถ้าลองไปเปิดใน notepad ก็จะเห็นบันทึกข้อมูลมาเป็นแบบนี้

 ![7](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-08.png) 

จากนั้นในอนาคต เวลาเราดับเบิ้ลคลิ๊กเปิดไฟล์ CSV อันนั้นขึ้นมา (มันจะใช้ Excel เปิดอยู่แล้ว) ก็จะไม่มีปัญหา เราจะเห็นเป็นเหมือนเดิมเลย แค่ไม่มี format ตัวหนา/สี แต่ก็ยังเห็นเลขไทย ที่มีค่าที่แท้จริงเป็นตัวเลขถูกต้อง

 ![8](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-07.png) 

แต่ถ้ากรณีเราดับเบิ้ลคลิ๊กเปิดไฟล์ CSV ที่ได้มาจากคนอื่นที่ Save แล้วดันเป็นภาษามนุษย์ต่างดาวแบบนี้ แสดงว่ามันใช้ Encoding ผิดตัวในการตีความอักขระในไฟล์นั้นๆ อย่าเพิ่งตกใจ… ถ้าใช้ Excel 2016 ขึ้นไปให้ใช้ Power Query เปิดก็ได้ แล้วเลือก Encoding ให้ถูกต้อง

 ![9](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-09.png) 

## การใช้ Power Query ใน Excel จัดการเลขไทยแบบง่าย

 

เลือก Get Data จาก Text,CSV ที่มีปัญหาซะ

 ![10](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-10-1024x756.png) 

เลือก Encoding ที่อ่านภาษาไทยออก ให้ลอง 65001:UTF-8 กับ 874:Thai (Windows) ดู ว่าอันไหนอ่านออกบ้างมั้ย? ในที่นี้ UTF-8 อ่านออก จากนั้นกด Transform Data เพื่อจัดการหัวตารางให้เรียบร้อย

 ![11](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-12-1024x760.png) 

ลบ Step Change Type ออก แล้วกด Use First Row as Header ใหม่อีกที จะได้ผลลัพธ์แบบนี้

 ![12](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-13-1024x225.png) 

จะเห็นว่าคอลัมน์จำนวน มันตีความเลขไทยเป็นข้อความ (ABC) ซึ่งจริงๆ ไม่ถูกต้อง แต่การแก้ใน Power Query จะค่อนข้างยุ่ง ดังนั้นเราจะโหลดผลลัพธ์ออกไปใน Excel เลย แล้วไปจัดการใน Excel ดังนั้นให้กด Close & Load to… แล้วออกมาเป็น Table ใน Excel เราจะพบว่า Excel ก็จะมองเลขไทยเป็น Text ไปด้วย

 ![13](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-16.png) 

แต่วิธีแก้ใน Excel ง่ายมาก แค่สร้างคอลัมน์ใหม่ข้างๆ แล้ว **เอาคอลัมน์เลขไทยไปคูณ 1** เพื่อบังคับให้เป็นตัวเลขก็จบเลย

 ![14](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-17.png) 

## วิธีจัดการเลขไทยใน Power Query / Power BI แบบจบในตัว

 

ในกรณีที่เราต้องไปทำรายงานใน Power BI เราต้องจัดการให้จบใน Power Query เลย ซึ่งขั้นตอนถ้าจะทำด้วย Replace Value 10 รอบก็ได้ แต่ก็จะค่อนข้างยุ่งยาก ดังนั้นผมจึงเขียนฟังก์ชันขึ้นมาจัดการเรื่องนี้ให้แล้วครับ ชื่อว่า [ThepThaiNumbertoArabic (ไปโหลดฟังก์ชันนี้ และฟังก์ชันอื่นๆ ที่น่าสนใจมากมายได้จากที่นี่)](https://www.thepexcel.com/thepexcel-mfx/)

 

ถ้าใครอยากรู้ว่าในฟังก์ชันมีอะไร ก็จะประมาณนี้ครับ

 

```
(OriginalText as text) as text =>
let
    TextList=Text.ToList(OriginalText),
    ZipReplace=List.Zip({{"๐".."๙"},{"0".."9"}}),
    Result=List.ReplaceMatchingItems(TextList,ZipReplace,Comparer.OrdinalIgnoreCase),
    ResultCombine=Text.Combine(Result)
in
    ResultCombine
```

 

แค่มีฟังก์ชันของผมและเรียกใช้ฟังก์ชันนั้นกับคอลัมน์ที่ต้องการด้วย Invoke Custom Function ก็จะใช้ได้เลย

 ![15](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-20-1024x612.png) ![16](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-18-1024x175.png) 

กรณีที่ต้องการ Convert เป็นตัวเลข ก็จะสามารถกด Change Type อีกทีได้ตามปกติแล้ว

 ![17](https://www.thepexcel.com/wp-content/uploads/2022/06/thainumber-19.png) 

ดังนั้นเพื่อนๆ น่าจะเห็นแล้วว่า กรณีที่เราได้ข้อมูลมาเป็นเลขไทยจริงๆ (แล้วเราไม่ชอบ) เราก็สามารถจัดการให้มันเป็นเลขอารบิกได้โดยไม่ยากเกินไปนัก หวังว่า Post นี้จะมีประโยชน์กับเพื่อนๆ นะครับ ^^

---

_Source: [https://www.thepexcel.com/thainumber-arabic-excel-powerbi/](https://www.thepexcel.com/thainumber-arabic-excel-powerbi/)_
