FILTERXML ดึงข้อมูลเฉพาะส่วนจาก XML content โดยใช้ XPath expression เพื่อระบุตำแหน่งของข้อมูลที่ต้องการ ทำให้ง่ายในการแยกข้อมูลที่เป็นประโยชน์จากผลลัพธ์ XML ที่ส่งกลับมาจาก WEBSERVICE มักใช้ร่วมกับ WEBSERVICE และ ENCODEURL เพื่อดึงข้อมูลจาก web API
=FILTERXML(xml, xpath)
=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 ฯลฯ |
ใช้ FILTERXML ร่วมกับ WEBSERVICE เพื่อดึงราคาปิดล่าสุดของหุ้นจากเซอร์วิสที่ส่งกลับข้อมูล XML โดยใช้ XPath expression เพื่อหาตำแหน่งของข้อมูลราคา
หากมีไฟล์ XML ที่เก็บข้อมูลต่าง ๆ เช่น ข้อมูลพนักงาน ข้อมูลสินค้า สามารถใช้ FILTERXML เพื่อดึงข้อมูลที่ต้องการจากไฟล์ XML นั้นได้
ใช้ FILTERXML เพื่อดึงข้อมูลที่จำเป็นจากผลลัพธ์ XML ที่ได้จากหลาย web service ต่างๆ เช่น ข้อมูลอากาศ อัตราแลกเปลี่ยน ราคาน้ำมัน
FILTERXML(A1, "//element")=FILTERXML(A1, "//element")
value1, value2, value3 (ทั้งหมดของค่าที่อยู่ใน element)
FILTERXML(WEBSERVICE("http://dev.markitondemand.com/MODApis/Api/Quote/xml?symbol="&ENCODEURL(C2)),"//QuoteApiModel/Data/LastPrice")=FILTERXML(WEBSERVICE("http://dev.markitondemand.com/MODApis/Api/Quote/xml?symbol="&ENCODEURL(C2)),"//QuoteApiModel/Data/LastPrice")
150.25 (ราคาปิดล่าสุดของหุ้น)
FILTERXML(A1, "//element/@title")=FILTERXML(A1, "//element/@title")
Article Title, Page 1 (ค่า title attribute ของแต่ละ element)
XPath (XML Path Language) เป็นภาษาที่ใช้ระบุเส้นทางของข้อมูลในเอกสาร XML โดยใช้สัญลักษณ์พิเศษ เช่น / สำหรับระบุเส้นทาง // สำหรับค้นหาที่ใด ๆ [] สำหรับระบุเงื่อนไข @ สำหรับ attribute ตัวอย่างเช่น //element[@id=’123′] หมายถึงค้นหา element ที่มี id เท่ากับ 123
WEBSERVICE เป็นฟังก์ชันที่ส่งคำขอไปยัง web service และส่งกลับข้อมูล XML ทั้งหมด ส่วน FILTERXML เป็นฟังก์ชันที่ดึงข้อมูลเฉพาะส่วนจาก XML โดยใช้ XPath มักใช้ร่วมกัน WEBSERVICE จะดึง XML และ FILTERXML จะแยกข้อมูลที่ต้องการจาก XML นั้น
FILTERXML รองรับเฉพาะข้อมูล XML เท่านั้น ไม่รองรับ JSON หรือรูปแบบข้อมูลอื่น ๆ หากข้อมูลจากเว็บเซอร์วิสเป็น JSON ต้องใช้เมธอดอื่นในการประมวลผล
FILTERXML จะแสดงข้อผิดพลาด #VALUE! ถ้า XML ไม่ถูกต้อง (invalid) หรือถ้า XPath expression ไม่ถูกต้อง หากค้นหาข้อมูลแต่ไม่พบจะไม่แสดงข้อมูล (ว่าง) ใช้ IFERROR เพื่อจัดการข้อผิดพลาดได้
FILTERXML เป็นฟังก์ชันที่ใช้ดึงข้อมูลเฉพาะส่วนจากข้อมูล XML โดยใช้ XPath expression ฟังก์ชันนี้มีประโยชน์เมื่อใช้ร่วมกับ WEBSERVICE เพื่อดึงข้อมูลจาก web service และดึงเฉพาะข้อมูลที่ต้องการ เช่น ราคาหุ้น อัตราแลกเปลี่ยน หรือข้อมูลสภาพอากาศ