Thep Excel

DETECTLANGUAGEฟังก์ชันตรวจจับภาษา

ฟังก์ชัน Microsoft 365 ที่ตรวจจับภาษาของข้อความในเซลล์ แล้วคืนค่าเป็นรหัสภาษา (เช่น “th”, “en”, “es”) ใช้คู่กับ TRANSLATE เพื่อแปลภาษาแบบอัตโนมัติ

fx
=DETECTLANGUAGE(text)

ความนิยม2/10
ความยาก2/10
ประโยชน์5/10

อัปเดต 21 September 2026

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
text Text หรือ Cell Reference ข้อความหรือเซลล์ที่มีข้อความให้ตรวจจับภาษา ใส่เป็นข้อความตรงๆ ในเครื่องหมายคำพูด หรืออ้างอิงเซลล์เดียวก็ได้ รับเป็นช่วงหลายเซลล์ได้ด้วย ผลลัพธ์จะ spill ออกมาเป็นรหัสภาษาทีละแถว

Additional Notes

DETECTLANGUAGE(text) รับข้อความหรือเซลล์อ้างอิงหนึ่งช่อง แล้วส่งข้อความนั้นไปให้ Microsoft Translation Services ประมวลผลผ่านอินเทอร์เน็ต จากนั้นคืนค่าเป็นรหัสภาษาสั้นๆ ตามมาตรฐานของ Translator เช่น พิมพ์ “Hello” จะได้ “en” พิมพ์ “สวัสดีครับ” จะได้ “th” ฟังก์ชันนี้เป็น service-backed function คือมันไม่ได้คำนวณในเครื่อง แต่ยิง request ออกไปนอกเครื่องทุกครั้งที่คำนวณใหม่

ที่เจ๋งคือมันไม่ได้คืนชื่อภาษาแบบ “Thai” หรือ “English” มาให้อ่านเฉยๆ แต่คืนเป็นรหัสที่เอาไปใช้ต่อกับ TRANSLATE ได้ทันที เท่ากับว่าเราสร้างระบบตรวจสอบ-แล้วแปล ในสูตรเดียวได้เลย โดยไม่ต้องมานั่งเดาว่าคอมเมนต์แถวนี้เป็นภาษาอะไร

ส่วนตัวผมมองว่านี่คือฟังก์ชันที่มาเติมช่องว่างที่ TRANSLATE เคยมีปัญหา คือ TRANSLATE เดาภาษาต้นทางเองได้ก็จริง แต่พอข้อความสั้นๆ กำกวม มันเดาผิดบ่อย พอมี DETECTLANGUAGE แยกออกมาต่างหาก เราคุมได้มากขึ้นว่าจะกรองแถวไหนก่อนส่งไปแปล ประหยัด quota ด้วย เพราะ Microsoft จำกัดโควต้าการแปล/ตรวจจับต่อวันไว้ 😎

Examples

ตรวจจับภาษาพื้นฐานDETECTLANGUAGE("Hello, how are you?")

ใส่ข้อความภาษาอังกฤษเข้าไปตรงๆ ฟังก์ชันจะคืนรหัส "en" กลับมา นี่คือรูปแบบการใช้งานพื้นฐานที่สุด

fx
=DETECTLANGUAGE("Hello, how are you?")

ผลลัพธ์en
ตรวจจับจากเซลล์อ้างอิงDETECTLANGUAGE(A2)

ถ้า A2 มีข้อความว่า "สวัสดีครับ ยินดีต้อนรับ" สูตรนี้จะคืนค่า "th" กลับมา ใช้แบบนี้ลากลงทั้งคอลัมน์คอมเมนต์ลูกค้าได้เลย

fx
=DETECTLANGUAGE(A2)

ผลลัพธ์th
จับคู่กับ TRANSLATE แปลเฉพาะแถวที่ไม่ใช่ภาษาไทยIF(DETECTLANGUAGE(A2)="th", A2, TRANSLATE(A2, DETECTLANGUAGE(A2), "th"))

นี่คือแพทเทิร์นที่ใช้บ่อยที่สุด คือเช็คก่อนว่าเป็นภาษาไทยหรือเปล่า ถ้าใช่ก็ไม่ต้องแปล ถ้าไม่ใช่ค่อยส่งไป TRANSLATE โดยส่งรหัสภาษาต้นทางที่ DETECTLANGUAGE หาได้เข้าไปด้วย เพื่อให้ TRANSLATE ไม่ต้องเดาภาษาต้นทางเอง

fx
=IF(DETECTLANGUAGE(A2)="th", A2, TRANSLATE(A2, DETECTLANGUAGE(A2), "th"))

ผลลัพธ์แปลเป็นไทยเฉพาะแถวที่ตรวจจับได้ว่าไม่ใช่ภาษาไทย ส่วนแถวที่เป็นไทยอยู่แล้วจะคืนข้อความเดิม
กรองคอมเมนต์ลูกค้าที่เป็นภาษาอังกฤษออกมาดูก่อนFILTER(B2:B50, DETECTLANGUAGE(B2:B50)="en")

ใช้คู่กับ FILTER เพื่อดึงเฉพาะคอมเมนต์ภาษาอังกฤษออกมาดูก่อน เหมาะกับตอนที่มีคอมเมนต์ลูกค้าปนกันหลายภาษาแล้วอยากแยกดูทีละภาษา

fx
=FILTER(B2:B50, DETECTLANGUAGE(B2:B50)="en")

ผลลัพธ์รายการคอมเมนต์ทั้งหมดในช่วง B2:B50 ที่ตรวจจับได้ว่าเป็นภาษาอังกฤษ

FAQs

DETECTLANGUAGE ใช้ได้ไม่ต้องต่อเน็ตหรือเปล่า+

ต้องต่อเน็ตครับ เพราะมันเป็น service-backed function คือ Excel ไม่ได้คำนวณเอง แต่ส่งข้อความไปให้ Microsoft Translation Services ประมวลผลแล้วส่งรหัสภาษากลับมา ถ้าเน็ตหลุดหรือ Excel ออฟไลน์ สูตรจะพังทันที เน็ตหลุดตอนไฟล์คำนวณใหม่ทีเดียว ก็เด้ง error ได้ทั้งคอลัมน์

ทำไม DETECTLANGUAGE ตรวจจับข้อความสั้นๆ แล้วผิด+

เพราะมันเป็น AI/cloud-based detection ครับ ข้อความสั้นเกินไปหรือกำกวม (เช่น "OK" หรือ "55555") ไม่มีสัญญาณพอให้ระบบมั่นใจว่าเป็นภาษาอะไร บางทีเดาผิดหรือเดาไม่ออกเลย ผมแนะนำว่าอย่าเชื่อผลลัพธ์ 100% กับข้อความสั้นๆ ต้องมีคนตรวจทานอีกชั้นถ้าจะเอาไปใช้ตัดสินใจสำคัญ

ใช้ DETECTLANGUAGE เยอะๆ ได้ไหม จะโดนบล็อกไหม+

Microsoft จำกัดโควต้าการแปล/ตรวจจับภาษาต่อวันไว้ครับ ถ้าใช้เกินจะเจอ error ประมาณว่า Request Throttled หรือเกินโควต้ารายวัน ถ้าต้องตรวจข้อมูลหลักพันแถว ผมแนะนำให้แบ่งรันเป็นชุด ๆ แทนที่จะยิงทีเดียวจบ

ต้องมี Microsoft 365 แบบไหนถึงใช้ได้+

ต้องเป็น Excel for Microsoft 365 (ทั้งเดสก์ท็อปและ Mac) หรือ Excel Mobile ครับ ถ้าใช้ Excel แบบ perpetual license (ซื้อขาดครั้งเดียวไม่ต่อ subscription) จะไม่มีฟังก์ชันนี้ให้ใช้

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ DETECTLANGUAGE จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้DETECTLANGUAGEText
Text (2)
TEXTJOIN

TEXTJOIN รวมข้อความจากหลายเซลล์หรือทั้งช่วงเป็นข้อความเดียว โดยกำหนดตัวคั่นเองได้และสั่งข้ามเซลล์ว่างได้ในคำสั่งเดียว ต่างจาก CONCATENATE ที่ต้องพิมพ์ตัวคั่นและเชื่อมทีละเซลล์เอง งานที่ใช้บ่อยคือรวมที่อยู่หลายบรรทัด สร้างลิสต์คั่นด้วยคอมม่าไว้ส่งออก หรือรวมผลลัพธ์จาก FILTER ให้ออกมาเป็นข้อความเดียว

TEXTSPLIT

TEXTSPLIT เป็นฟังก์ชัน Dynamic Array ที่ช่วยแยกข้อความในเซลล์ออกเป็นอาร์เรย์ของค่า (Spill) ตามตัวคั่นที่ระบุ สามารถแยกข้อมูลออกไปทางขวา (คอลัมน์) หรือลงด้านล่าง (แถว) หรือทั้งสองอย่างพร้อมกัน เหมาะสำหรับการจัดการข้อมูลนำเข้าที่รวมกันอยู่ในเซลล์เดียว

Add-in and Automation (1)
COPILOT

COPILOT เป็นฟังก์ชันแรกใน Excel ที่ใช้ AI (GPT-4.1-mini) ประมวลผลข้อมูลและสร้างข้อความตามคำสั่งที่กำหนด เหมาะสำหรับสรุปข้อมูล จัดหมวดหมู่ และสร้าง content อัตโนมัติ

Lookup and reference (1)
FILTER

FILTER กรองข้อมูลจาก Array ตามเงื่อนไขที่กำหนด แล้ว return เป็น Spill Range ที่ขยายอัตโนมัติ เป็น Dynamic Array Function ที่เปลี่ยนวิธีการทำงานกับข้อมูลใน Excel รองรับเงื่อนไขหลายตัว (AND/OR) และสามารถใช้ร่วมกับ SORT UNIQUE XLOOKUP เพื่อสร้างรายงานที่อัปเดตอัตโนมัติ

Logical (1)
IF

IF เป็นฟังก์ชันตรรกะพื้นฐานที่ใช้ตัดสินใจสองทางตามเงื่อนไข ตรวจสอบว่าเงื่อนไขเป็น TRUE หรือ FALSE แล้วคืนค่าที่แตกต่างกันไปตามผลลัพธ์ สามารถใช้ได้กับการเปรียบเทียบตัวเลข ข้อความ หรือวันที่ และเป็นพื้นฐานสำคัญของการสร้างสูตรแบบมีเงื่อนไข

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่