---
title: FILTERXML – ฟังก์ชันดึงข้อมูลจาก XML โดยใช้ XPath
url: https://www.thepexcel.com/functions/excel/web/filterxml/
type: function-explainer
program: Excel
syntax: "=FILTERXML(xml, xpath)"
date: 2025-12-11
updated: 2025-12-17
scores:
  popularity: 4
  difficulty: 4
  usefulness: 5
---

# FILTERXML – ฟังก์ชันดึงข้อมูลจาก XML โดยใช้ XPath

> ดึงข้อมูลเฉพาะส่วนจาก XML โดยใช้ XPath expression

## คำอธิบาย

FILTERXML ดึงข้อมูลเฉพาะส่วนจาก XML content โดยใช้ XPath expression เพื่อระบุตำแหน่งของข้อมูลที่ต้องการ ทำให้ง่ายในการแยกข้อมูลที่เป็นประโยชน์จากผลลัพธ์ XML ที่ส่งกลับมาจาก WEBSERVICE มักใช้ร่วมกับ WEBSERVICE และ ENCODEURL เพื่อดึงข้อมูลจาก web API

## Syntax

```excel
=FILTERXML(xml, xpath)
```

**Variant**

```excel
=FILTERXML(A1, "//element")
```

ดึงข้อมูลทั้งหมดของ element จากข้อมูล XML ในเซลล์ A1 โดยใช้ XPath expression //element

**Variant**

```excel
=FILTERXML(WEBSERVICE(url), "//path/to/element/@attribute")
```

รวม FILTERXML กับ WEBSERVICE เพื่อดึงข้อมูล XML จาก web service และแยกเฉพาะ attribute ที่ต้องการจาก element

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| xml | Yes | text |  | ข้อมูล XML ในรูปแบบข้อความที่ถูกต้อง (valid XML format) อาจมาจากเซลล์ที่มี XML string หรือจากผลลัพธ์ของ WEBSERVICE function |
| xpath | Yes | text |  | XPath expression ในรูปแบบข้อความ (string) ซึ่งใช้ระบุเส้นทางและตำแหน่งของข้อมูลที่ต้องการดึงจาก XML เช่น //element, //parent/child, //@attribute ฯลฯ |

## เคสการใช้งาน

### ดึงราคาหุ้นจาก XML API

ใช้ FILTERXML ร่วมกับ WEBSERVICE เพื่อดึงราคาปิดล่าสุดของหุ้นจากเซอร์วิสที่ส่งกลับข้อมูล XML โดยใช้ XPath expression เพื่อหาตำแหน่งของข้อมูลราคา

_เหมาะกับ:_ financial-data

### ดึงข้อมูลจากฐานข้อมูล XML

หากมีไฟล์ XML ที่เก็บข้อมูลต่าง ๆ เช่น ข้อมูลพนักงาน ข้อมูลสินค้า สามารถใช้ FILTERXML เพื่อดึงข้อมูลที่ต้องการจากไฟล์ XML นั้นได้

_เหมาะกับ:_ xml-data-extraction

### แยกข้อมูลจากหลายแหล่ง XML

ใช้ FILTERXML เพื่อดึงข้อมูลที่จำเป็นจากผลลัพธ์ XML ที่ได้จากหลาย web service ต่างๆ เช่น ข้อมูลอากาศ อัตราแลกเปลี่ยน ราคาน้ำมัน

_เหมาะกับ:_ multi-source-data

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ดึงธาตุพื้นฐาน (element) จาก XML

```excel
=FILTERXML(A1, "//element")
```

**ผลลัพธ์:** `value1, value2, value3 (ทั้งหมดของค่าที่อยู่ใน element)`

สูตรนี้ดึงข้อมูล XML จากเซลล์ A1 และแยกค่าทั้งหมดที่อยู่ใน element ที่ชื่อ 'element' ผลลัพธ์จะแสดงทั้งหมดที่ตรงกับ XPath expression //element (เครื่องหมาย // หมายถึงค้นหาจากที่ใด ๆ ในเอกสาร)

### 2. ตัวอย่างที่ 2: ดึงข้อมูลราคาจาก web service

```excel
=FILTERXML(WEBSERVICE("http://dev.markitondemand.com/MODApis/Api/Quote/xml?symbol="&ENCODEURL(C2)),"//QuoteApiModel/Data/LastPrice")
```

**ผลลัพธ์:** `150.25 (ราคาปิดล่าสุดของหุ้น)`

สูตรนี้ส่งคำขอไปยัง web service ด้วย WEBSERVICE เพื่อดึงข้อมูล XML ของราคาหุ้น จากนั้น FILTERXML ใช้ XPath expression //QuoteApiModel/Data/LastPrice เพื่อดึงข้อมูลราคาปิดล่าสุดจากผลลัพธ์ XML ENCODEURL จะเข้ารหัสรหัสหุ้นจากเซลล์ C2 ให้ปลอดภัยสำหรับ URL

### 3. ตัวอย่างที่ 3: ดึง attribute จาก XML element

```excel
=FILTERXML(A1, "//element/@title")
```

**ผลลัพธ์:** `Article Title, Page 1 (ค่า title attribute ของแต่ละ element)`

สูตรนี้ดึงค่า attribute ชื่อ 'title' จากทุก element ที่ตรงกับเส้นทาง XPath เครื่องหมาย @ ใช้เพื่อระบุว่ากำลังดึง attribute เช่น @title @id @href ผลลัพธ์คือค่า title attribute ทั้งหมดจากผลลัพธ์ XML

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

⚠️ FILTERXML ใช้ได้เฉพาะใน Excel 365, Excel 2024, Excel 2021, Excel 2019 และ Excel 2016 เท่านั้น ไม่สามารถใช้ใน Excel for Mac หรือ Excel for Web ข้อมูล XML ต้องมีรูปแบบที่ถูกต้อง (valid XML format) มิฉะนั้นฟังก์ชันจะแสดงข้อผิดพลาด #VALUE! หากข้อมูล XML มี namespace ให้ใช้ XPath expression ที่ระบุ namespace ด้วย ทำให้ FILTERXML สามารถจัดการข้อมูลจากหลาย web service API ต่าง ๆ ที่ส่งกลับข้อมูล XML

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

**Q: XPath expression คืออะไร?**

XPath (XML Path Language) เป็นภาษาที่ใช้ระบุเส้นทางของข้อมูลในเอกสาร XML โดยใช้สัญลักษณ์พิเศษ เช่น / สำหรับระบุเส้นทาง // สำหรับค้นหาที่ใด ๆ [] สำหรับระบุเงื่อนไข @ สำหรับ attribute ตัวอย่างเช่น //element[@id='123'] หมายถึงค้นหา element ที่มี id เท่ากับ 123

**Q: ความแตกต่างระหว่าง FILTERXML กับ WEBSERVICE คืออะไร?**

WEBSERVICE เป็นฟังก์ชันที่ส่งคำขอไปยัง web service และส่งกลับข้อมูล XML ทั้งหมด ส่วน FILTERXML เป็นฟังก์ชันที่ดึงข้อมูลเฉพาะส่วนจาก XML โดยใช้ XPath มักใช้ร่วมกัน WEBSERVICE จะดึง XML และ FILTERXML จะแยกข้อมูลที่ต้องการจาก XML นั้น

**Q: FILTERXML รองรับข้อมูลอะไรบ้าง?**

FILTERXML รองรับเฉพาะข้อมูล XML เท่านั้น ไม่รองรับ JSON หรือรูปแบบข้อมูลอื่น ๆ หากข้อมูลจากเว็บเซอร์วิสเป็น JSON ต้องใช้เมธอดอื่นในการประมวลผล

**Q: เมื่อ FILTERXML ไม่พบข้อมูล จะเกิดอะไรขึ้น?**

FILTERXML จะแสดงข้อผิดพลาด #VALUE! ถ้า XML ไม่ถูกต้อง (invalid) หรือถ้า XPath expression ไม่ถูกต้อง หากค้นหาข้อมูลแต่ไม่พบจะไม่แสดงข้อมูล (ว่าง) ใช้ IFERROR เพื่อจัดการข้อผิดพลาดได้

## ฟังก์ชันที่เกี่ยวข้อง

- [WEBSERVICE – ฟังก์ชันเรียกเว็บเซอร์วิส](https://www.thepexcel.com/functions/excel/web/webservice/)
- [ENCODEURL – ฟังก์ชันเข้ารหัส URL สำหรับการเรียกใช้เว็บเซอร์วิส](https://www.thepexcel.com/functions/excel/web/encodeurl/)

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

- [Microsoft Learn: FILTERXML Function](https://support.microsoft.com/en-us/office/filterxml-function-4df72efc-11ec-4951-86f5-c1374812f5b7) _(documentation)_
- [Microsoft Learn: WEBSERVICE Function](https://support.microsoft.com/en-us/office/webservice-function-0546a35a-ecc6-4739-aed7-c0b7ce1562c4) _(documentation)_

---

_Source: [https://www.thepexcel.com/functions/excel/web/filterxml/](https://www.thepexcel.com/functions/excel/web/filterxml/)_
