---
title: DETECTLANGUAGE – ฟังก์ชันตรวจจับภาษา
url: https://www.thepexcel.com/functions/excel/text/detectlanguage/
type: function-explainer
program: Excel
syntax: =DETECTLANGUAGE(text)
date: 2026-09-21
scores:
  popularity: 2
  difficulty: 2
  usefulness: 5
---

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

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

## คำอธิบาย

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

## Syntax

```excel
=DETECTLANGUAGE(text)
```

## Arguments

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

## ตัวอย่าง

### 1. ตรวจจับภาษาพื้นฐาน

```excel
=DETECTLANGUAGE("Hello, how are you?")
```

**ผลลัพธ์:** `en`

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

### 2. ตรวจจับจากเซลล์อ้างอิง

```excel
=DETECTLANGUAGE(A2)
```

**ผลลัพธ์:** `th`

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

### 3. จับคู่กับ TRANSLATE แปลเฉพาะแถวที่ไม่ใช่ภาษาไทย

```excel
=IF(DETECTLANGUAGE(A2)="th", A2, TRANSLATE(A2, DETECTLANGUAGE(A2), "th"))
```

**ผลลัพธ์:** `แปลเป็นไทยเฉพาะแถวที่ตรวจจับได้ว่าไม่ใช่ภาษาไทย ส่วนแถวที่เป็นไทยอยู่แล้วจะคืนข้อความเดิม`

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

### 4. กรองคอมเมนต์ลูกค้าที่เป็นภาษาอังกฤษออกมาดูก่อน

```excel
=FILTER(B2:B50, DETECTLANGUAGE(B2:B50)="en")
```

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

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

## หมายเหตุเพิ่มเติม

- ผมแนะนำให้เช็ค DETECTLANGUAGE ก่อนเสมอเวลาจะเอาไปต่อกับ TRANSLATE เพราะช่วยประหยัดโควต้า ไม่ต้องส่งข้อความที่เป็นภาษาเป้าหมายอยู่แล้วไปแปลซ้ำ

- ส่วนตัวผมจะห่อสูตรนี้ด้วย IFERROR เสมอ เพราะเป็น service-backed function ที่พังได้ทุกเมื่อจากปัญหาเน็ตหรือโควต้า อย่างน้อยก็ไม่ทำให้ชีตทั้งแผ่นเต็มไปด้วย error

- ถ้าข้อมูลเยอะหลายพันแถว ผมแนะนำให้แบ่งรันเป็นชุดๆ หรือ copy วางเป็นค่า (Paste Values) หลังจากตรวจจับเสร็จแล้ว เพื่อไม่ให้สูตรยิง request ไปเรื่อยๆ ทุกครั้งที่ไฟล์คำนวณใหม่

## คำถามที่พบบ่อย

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

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

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

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

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

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

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

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

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Support - DETECTLANGUAGE function](https://support.microsoft.com/en-us/excel/functions/detectlanguage-function) _(official)_

---

_Source: [https://www.thepexcel.com/functions/excel/text/detectlanguage/](https://www.thepexcel.com/functions/excel/text/detectlanguage/)_
