ว้าว! สูตรเปลี่ยนชื่อเดือนไทย เป็นภาษาอังกฤษ

อยากเปลี่ยนคำว่า ม.ค. ให้เป็น Jan ทำไง?

ทำได้ (อย่างน้อย) 5 วิธี 😊

[ วิธีที่ 1 ]   

=TEXT(MATCH(A2,TEXT(SEQUENCE(12)*28,"ดดด"),0)*28,"b1mmm")

Note1: วิธีนี้ใช้ได้กับ Excel 365 หรือ Excel 2021 เท่านั้น

(SEQUENCE เป็นฟังก์ชันที่ใช้ได้ใน Excel 365 หรือ Excel 2021)

[ วิธีที่ 2 ]    

{ =TEXT(MATCH(A2,TEXT(ROW(INDIRECT("$1:$12"))*28,"ดดด"),0)*28,"b1mmm") }

Note2: วิธีนี้มีการใช้ฟังก์ชัน INDIRECT ซึ่งเป็นฟังก์ชันที่ให้เกิด Volatile (คำนวณใหม่ทั้งไฟล์เมื่อเกิดการเปลี่ยนแปลงใด ๆ ) ส่วนตัวแล้วไม่ค่อยแนะนำ เพราะจะทำให้ไฟล์ช้าลงครับ

อ้อ, วงเล็บปีกกาไม่ได้เกิดจากการพิมพ์ แต่เกิดจากการกด Ctrl+Shift+Enter (แทน Enter) เพราะสูตรนี้เป็นสูตรอาร์เรย์ (Array Formula) 🙂

[ วิธีที่ 3 ]

{ =TEXT(MATCH(A2,TEXT(ROW($1:$12)*28,"ดดด"),0)*28,"b1mmm") }

Note3: ถ้าฟังก์ชัน INDIRECT ทำให้เกิด Volatile ก็ตัดทิ้งไปซะเลย

แต่… วิธีนี้มีข้อเสียตรงที่อ้างอิงบรรทัด 1-12 (ของชีตที่เขียนสูตร) ถ้าเผลอลบบรรทัดใดไปก็จะมีปัญหา 😅 

[ วิธีที่ 4 ]

{ =TEXT(MATCH(A2,TEXT({1,2,3,4,5,6,7,8,9,10,11,12}*28,"ดดด"),0)*28,"b1mmm") }

Note4: ถ้า ROW($1:$12) ทำให้เกิดปัญหา ก็เปลี่ยนเป็น {1,2,3,4,5,6,7,8,9,10,11,12} ซะเลย

{1,2,3,4,5,6,7,8,9,10,11,12} คือเทคนิคที่เรียกว่า Array Constant (วงเล็บปีกกาตรงส่วนนี้ ต้องพิมพ์เอง, ไม่ได้เกิดจากการกด Ctrl+Shift+Enter)

อาจทำให้สูตรดูยาว แต่แลกมากับความคล่องตัว และไม่ต้องพึ่งพาฟังก์ชัน INDIRECT 🙂

[ วิธีที่ 5 ]

=TEXT("1"&A2,"b1mmm")

Note5: วิธีนี้สั้นและง่ายมาก แต่มีข้อเสียตรงที่ต้องเซ็ต Regional Format ใน Windows ให้เป็นภาษาไทย

ถ้าเซ็ตเป็นภาษาอังกฤษ (หรือภาษาอื่น ๆ ) จะใช้ไม่ได้

ทุกวิธีมีข้อดี-ข้อเสีย

คุณชอบวิธีไหน เมนต์บอกกันหน่อยครับ 😊

วิศวกรรีพอร์ต

คนธรรมดาผู้มีประสบการณ์ทำงานหลากหลายตำแหน่ง คลุกคลีกับการทำรีพอร์ตมาโดยตลอด สุดท้ายค้นพบแนวทางของตัวเอง จึงอยากแบ่งปันเคล็ดลับและประสบการณ์ให้กับผู้สนใจ

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.