TLDR สรุปสั้นๆ
FILTERXML คัดกรองและดึงข้อมูลจาก XML ด้วยการใช้ XPath โดยเฉพาะร่วมกับข้อมูลจากเว็บ
คำอธิบาย
ฟังก์ชัน FILTERXML ใช้ในการดึงข้อมูลเฉพาะจากข้อมูล XML โดยใช้เส้นทางที่กำหนดในรูปแบบ xpath เพื่อตรวจสอบเนื้อหาที่คุณต้องการ สามารถใช้ร่วมกับฟังก์ชันอื่นอย่าง WEBSERVICE เพื่อดึงข้อมูลจากอินเทอร์เน็ตมาแปลงเป็น XML แล้วใช้ FILTERXML เพื่อเลือกข้อมูลที่ต้องการได้อย่างสะดวก
มีครั้งแรกในเวอร์ชันไหน
2013
รูปแบบคำสั่ง (Syntax)
FILTERXML(xml, xpath)
Arguments
-
xml (Required – string)
ข้อความที่อยู่ในรูปแบบ XML ที่ถูกต้อง เช่น ‘- Value
‘ -
xpath (Required – string)
เส้นทางในรูปแบบ XPath เพื่อระบุข้อมูลที่ต้องการดึงออกมา
ตัวอย่างการใช้งาน (Examples)
-
Formula:
Description: ดึงค่าจากทุก ๆ <item> ภายใน XML ที่กำหนด ซึ่งในตัวอย่างนี้คือ Apple และ Banana=FILTERXML("<items><item>Apple</item><item>Banana</item></items>", "//item")
Result:["Apple", "Banana"] (คืนผลลัพธ์เป็น array ของ strings) -
Formula:
Description: ดึงราคาผลลัพธ์จาก tag <price> ซึ่งใน XML นี้มีค่าเป็น 20=FILTERXML("<data><price>20</price></data>", "//price")
Result:["20"] (คืนผลลัพธ์เป็น array ของ strings) -
Formula:
Description: ใช้ร่วมกับ WEBSERVICE เพื่อดึงข้อมูล XML จาก URL แล้ว FILTERXML จะคัดกรองข้อมูลตามวิธีที่กำหนด=FILTERXML(WEBSERVICE("http://service.url/xml"), "//response/data")
Result:ขึ้นอยู่กับข้อมูล XML ที่ได้จาก service ที่เรียกใช้งาน -
Formula:
Description: ใช้ร่วมกับ ENCODEURL เพื่อสร้าง query ที่สามารถปรับแต่งได้โดยใช้ค่าจาก B2 ซึ่งมีผลลัพธ์เป็นข้อมูลที่ค้นหาจากบริการออนไลน์=FILTERXML(WEBSERVICE("http://service.url/xml?query="&ENCODEURL(B2)), "//result")
Result:ขึ้นอยู่กับ XML ที่ได้และเงื่อนไขที่ใช้เรียกค้น -
Formula:
Description: ดึงราคาหุ้น MSFT จาก XML ที่มีโครงสร้างซับซ้อนมากขึ้น=FILTERXML("<stocks><stock><name>MSFT</name><price>285.5</price></stock></stocks>", "//stock/price")
Result:["285.5"] (คืนผลลัพธ์เป็น array ของ strings)
Tips & Tricks
ถ้าคุณต้องการดึงข้อมูลจากเว็บเพจที่ไม่ได้อยู่ในรูปแบบ XML คุณอาจต้องใช้บริการแปลงข้อมูลหรือ API ที่แปลงข้อมูลนั้นก่อนจึงจะใช้ FILTERXML ได้อย่างมีประสิทธิภาพ
ข้อควรระวัง (Cautions)
FILTERXML ไม่สามารถใช้งานได้บน Excel สำหรับ Mac หรือ Excel เวอร์ชันออนไลน์ นอกจากนี้ถ้า XML ของคุณมี namespace ที่ไม่ได้ระบุหรือไม่มีความถูกต้อง ฟังก์ชันจะคืนค่าเป็น #VALUE!
ฟังก์ชันที่เกี่ยวข้อง
References
ขอบคุณที่เข้ามาอ่านนะครับ ❤️
Leave a Reply