การแบ่งข้อความติดหนึบด้วยฟังก์ชัน FILTER.XML

เนื้อหา

เมื่อไม่นานมานี้ เราได้พูดถึงการใช้ฟังก์ชัน FILTER.XML เพื่อนำเข้าข้อมูล XML จากอินเทอร์เน็ต ซึ่งเป็นงานหลักที่ตั้งใจไว้สำหรับฟังก์ชันนี้ อย่างไรก็ตาม ระหว่างทาง การใช้งานฟังก์ชันนี้ที่คาดไม่ถึงและสวยงามอีกอย่างได้เกิดขึ้นแล้ว เพื่อแบ่งข้อความที่ติดหนึบลงในเซลล์ได้อย่างรวดเร็ว

สมมติว่าเรามีคอลัมน์ข้อมูลดังนี้:

การแบ่งข้อความติดหนึบด้วยฟังก์ชัน FILTER.XML

แน่นอน เพื่อความสะดวก ฉันต้องการแบ่งออกเป็นคอลัมน์แยก: ชื่อบริษัท เมือง ถนน บ้าน คุณสามารถทำได้หลายวิธี:

  • ใช้ ข้อความตามคอลัมน์ จากแท็บ ข้อมูล (ข้อมูล — ข้อความเป็นคอลัมน์) และไปสามขั้นตอน ตัวแยกวิเคราะห์ข้อความ. แต่ถ้าข้อมูลเปลี่ยนแปลงในวันพรุ่งนี้ คุณจะต้องทำซ้ำขั้นตอนทั้งหมดอีกครั้ง
  • โหลดข้อมูลนี้ลงใน Power Query แล้วแบ่งออก จากนั้นอัปโหลดกลับไปที่แผ่นงาน จากนั้นอัปเดตคิวรีเมื่อข้อมูลเปลี่ยนแปลง (ซึ่งง่ายกว่าอยู่แล้ว)
  • หากคุณต้องการอัปเดตทันที คุณสามารถเขียนสูตรที่ซับซ้อนมากเพื่อค้นหาเครื่องหมายจุลภาคและแยกข้อความระหว่างกัน

และคุณสามารถทำให้มันสวยงามขึ้นและใช้ฟังก์ชัน FILTER.XML ได้ แต่มันเกี่ยวอะไรกับมัน?

ฟังก์ชัน FILTER.XML ได้รับโค้ด XML เป็นอาร์กิวเมนต์เริ่มต้น — ข้อความที่ทำเครื่องหมายด้วยแท็กและแอตทริบิวต์พิเศษ จากนั้นแยกวิเคราะห์เป็นส่วนประกอบ โดยแยกส่วนข้อมูลที่เราต้องการ รหัส XML มักจะมีลักษณะดังนี้:

การแบ่งข้อความติดหนึบด้วยฟังก์ชัน FILTER.XML

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

ฟังก์ชัน FILTER.XML สามารถแยกเนื้อหาของแท็กทั้งหมดที่เราต้องการได้ เช่น ชื่อของผู้จัดการทั้งหมด และ (ที่สำคัญที่สุด) แสดงทั้งหมดพร้อมกันในรายการเดียว ดังนั้น งานของเราคือการเพิ่มแท็กให้กับข้อความต้นฉบับ โดยเปลี่ยนเป็นโค้ด XML ที่เหมาะสมสำหรับการวิเคราะห์ในภายหลังโดยฟังก์ชัน FILTER.XML

หากเราใช้ที่อยู่แรกจากรายการของเรา เราจะต้องเปลี่ยนเป็นโครงสร้างนี้:

การแบ่งข้อความติดหนึบด้วยฟังก์ชัน FILTER.XML

ฉันเรียกแท็กการเปิดและปิดข้อความทั้งหมดทั่วโลก tและแท็กที่อยู่ในกรอบแต่ละองค์ประกอบคือ s. แต่คุณสามารถใช้การกำหนดอื่น ๆ ได้ – ไม่สำคัญ

หากเราลบการเยื้องและตัวแบ่งบรรทัดออกจากโค้ดนี้ โดยสมบูรณ์ เป็นทางเลือก และเพิ่มเพื่อความชัดเจนเท่านั้น ทั้งหมดนี้จะกลายเป็นบรรทัด:

การแบ่งข้อความติดหนึบด้วยฟังก์ชัน FILTER.XML

และสามารถรับได้โดยง่ายจากที่อยู่ต้นทางโดยแทนที่เครื่องหมายจุลภาคด้วยแท็กสองสามแท็ก การใช้ฟังก์ชัน ทดแทน (ทดแทน) และติดสัญลักษณ์ & ที่จุดเริ่มต้นและจุดสิ้นสุดของแท็กเปิดและปิด:

การแบ่งข้อความติดหนึบด้วยฟังก์ชัน FILTER.XML

ในการขยายช่วงผลลัพธ์ในแนวนอน เราใช้ฟังก์ชันมาตรฐาน ทรานส์ (โอน)ห่อสูตรของเราในนั้น:

การแบ่งข้อความติดหนึบด้วยฟังก์ชัน FILTER.XML

ฟีเจอร์ที่สำคัญของการออกแบบทั้งหมดนี้ก็คือในเวอร์ชันใหม่ของ Office 2021 และ Office 365 ที่รองรับไดนามิกอาร์เรย์ ไม่จำเป็นต้องใช้ท่าทางสัมผัสพิเศษในการป้อนข้อมูล เพียงแค่ป้อนและคลิก เข้าสู่ – สูตรนั้นใช้จำนวนเซลล์ที่ต้องการและทุกอย่างใช้งานได้ดี ในเวอร์ชันก่อนหน้าซึ่งยังไม่มีอาร์เรย์แบบไดนามิก คุณจะต้องเลือกเซลล์ว่างในจำนวนที่เพียงพอก่อนจึงจะป้อนสูตร (คุณสามารถมีระยะขอบ) และหลังจากสร้างสูตรแล้ว ให้กดแป้นพิมพ์ลัด Ctrl+เปลี่ยน+เข้าสู่เพื่อป้อนเป็นสูตรอาร์เรย์

คุณสามารถใช้เคล็ดลับที่คล้ายกันนี้เมื่อแยกข้อความที่ติดกันเป็นเซลล์เดียวโดยใช้ตัวแบ่งบรรทัด:

การแบ่งข้อความติดหนึบด้วยฟังก์ชัน FILTER.XML

ข้อแตกต่างเพียงอย่างเดียวกับตัวอย่างก่อนหน้านี้คือแทนที่จะใช้เครื่องหมายจุลภาค ในที่นี้เราจะแทนที่อักขระตัวแบ่งบรรทัด Alt + Enter ที่มองไม่เห็น ซึ่งสามารถระบุได้ในสูตรโดยใช้ฟังก์ชัน CHAR ด้วยโค้ด 10

  • รายละเอียดปลีกย่อยของการทำงานกับการขึ้นบรรทัดใหม่ (Alt + Enter) ใน Excel
  • แบ่งข้อความตามคอลัมน์ใน Excel
  • การแทนที่ข้อความด้วย SUBSTITUTE

เขียนความเห็น