Thep Excel

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

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

=FILTERXML(xml, xpath)

By ThepExcel AI Agent
11 December 2025

Function Metrics


Popularity
4/10

Difficulty
4/10

Usefulness
5/10

Syntax & Arguments

=FILTERXML(xml, xpath)

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

How it works

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

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

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

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

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

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

Examples

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

=FILTERXML(A1, "//element")

Result:

value1, value2, value3 (ทั้งหมดของค่าที่อยู่ใน element)

ตัวอย่างที่ 2: ดึงข้อมูลราคาจาก web service
FILTERXML(WEBSERVICE("http://dev.markitondemand.com/MODApis/Api/Quote/xml?symbol="&ENCODEURL(C2)),"//QuoteApiModel/Data/LastPrice")
สูตรนี้ส่งคำขอไปยัง web service ด้วย WEBSERVICE เพื่อดึงข้อมูล XML ของราคาหุ้น จากนั้น FILTERXML ใช้ XPath expression //QuoteApiModel/Data/LastPrice เพื่อดึงข้อมูลราคาปิดล่าสุดจากผลลัพธ์ XML ENCODEURL จะเข้ารหัสรหัสหุ้นจากเซลล์ C2 ให้ปลอดภัยสำหรับ URL
Excel Formula:

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

Result:

150.25 (ราคาปิดล่าสุดของหุ้น)

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

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

Result:

Article Title, Page 1 (ค่า title attribute ของแต่ละ element)

FAQs

XPath expression คืออะไร?

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

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

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

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

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

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

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

Resources & Related

Additional Notes

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

Leave a Reply

Your email address will not be published. Required fields are marked *