ฟังก์ชัน TEXTSPLIT ใน Excel: แยกสตริงข้อความตามตัวคั่น

  • แบ่งปันสิ่งนี้
Michael Brown

บทช่วยสอนแสดงวิธีใช้ฟังก์ชัน TEXTSPLIT ใหม่ล่าสุดเพื่อแยกสตริงใน Excel 365 ตามตัวคั่นใดๆ ที่คุณระบุ

อาจมีหลายสถานการณ์เมื่อคุณจำเป็นต้องแยก เซลล์ใน Excel ในเวอร์ชันก่อนหน้านี้ เราได้ติดตั้งเครื่องมือจำนวนมากเพื่อทำงานให้สำเร็จ เช่น Text to Columns และ Fill Flash ตอนนี้ เรายังมีฟังก์ชันพิเศษสำหรับสิ่งนี้ TEXTSPLIT ที่สามารถแยกสตริงออกเป็นหลายเซลล์ในคอลัมน์หรือ/และแถวตามพารามิเตอร์ที่คุณระบุ

    ฟังก์ชัน Excel TEXTSPLIT

    ฟังก์ชัน TEXTSPLIT ใน Excel จะแยกสตริงข้อความตามตัวคั่นที่กำหนดในคอลัมน์หรือ/และแถวต่างๆ ผลลัพธ์คืออาร์เรย์ไดนามิกที่กระจายไปยังหลายเซลล์โดยอัตโนมัติ

    ฟังก์ชันรับอาร์กิวเมนต์มากถึง 6 อาร์กิวเมนต์ โดยต้องใช้อาร์กิวเมนต์ 2 รายการแรกเท่านั้น

    TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])

    ข้อความ (จำเป็น) - ข้อความที่จะแยก สามารถระบุเป็นสตริงหรือการอ้างอิงเซลล์

    col_delimiter (จำเป็น) - อักขระที่ระบุตำแหน่งที่จะแยกข้อความในคอลัมน์ต่างๆ หากละเว้น ต้องกำหนด row_delimiter

    row_delimiter (ไม่บังคับ) - อักขระที่ระบุตำแหน่งที่จะแบ่งข้อความในแถวต่างๆ

    ignore_empty (ไม่บังคับ) - ระบุว่าจะละเว้นค่าว่างหรือไม่:

    • FALSE (ค่าเริ่มต้น) -สร้างเซลล์ว่างสำหรับตัวคั่นที่ติดกันโดยไม่มีค่าอยู่ระหว่างนั้น
    • TRUE - ละเว้นค่าว่าง เช่น อย่าสร้างเซลล์ว่างสำหรับตัวคั่นที่ติดกันตั้งแต่สองตัวขึ้นไป

    match_mode (ไม่บังคับ) - กำหนดความไวของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่สำหรับตัวคั่น เปิดใช้งานโดยค่าเริ่มต้น

    • 0 (ค่าเริ่มต้น) - คำนึงถึงขนาดตัวพิมพ์
    • 1 - คำนึงถึงตัวพิมพ์เล็กและใหญ่

    pad_with (ไม่บังคับ ) - ค่าที่ใช้แทนค่าที่ขาดหายไปในอาร์เรย์สองมิติ ค่าเริ่มต้นคือข้อผิดพลาด #N/A

    ตัวอย่างเช่น หากต้องการแบ่งสตริงข้อความใน A2 ออกเป็นหลายเซลล์โดยใช้เครื่องหมายจุลภาคและช่องว่างเป็นตัวคั่น สูตรคือ:

    =TEXTSPLIT(A2, ", ")

    ความพร้อมใช้งานของ TEXTSPLIT

    ฟังก์ชัน TEXTSPLIT พร้อมใช้งานใน Excel สำหรับ Microsoft 365 (Windows และ Mac) และ Excel สำหรับเว็บเท่านั้น

    เคล็ดลับ:

    • ใน Excel เวอร์ชันที่ไม่มีฟังก์ชัน TEXTSPLIT (นอกเหนือจาก Excel 365) คุณสามารถใช้วิซาร์ด Text to Columns เพื่อแยกเซลล์ได้
    • หากต้องการทำงานย้อนกลับ เช่น เพื่อรวมเนื้อหาของ หลายเซลล์เป็นหนึ่งเดียวโดยใช้ตัวคั่นเฉพาะ TEXTJOIN เป็นฟังก์ชันที่จะใช้

    สูตร TEXTSPLIT พื้นฐานในการแยกเซลล์ใน Excel

    สำหรับผู้เริ่มต้น เรามาดูวิธีใช้ TEXTSPLIT สูตรในรูปแบบที่ง่ายที่สุดในการแยกสตริงข้อความด้วยตัวคั่นเฉพาะ

    แยกเซลล์ในแนวนอนข้ามคอลัมน์

    หากต้องการแบ่งเนื้อหาของเซลล์ที่กำหนดออกเป็นหลายคอลัมน์ ให้ใส่การอ้างอิงไปยังเซลล์ที่มีสตริงต้นฉบับสำหรับอาร์กิวเมนต์แรก ( ข้อความ ) และตัวคั่นที่ทำเครื่องหมายจุดที่การแยกจะเกิดขึ้นสำหรับอาร์กิวเมนต์ที่สอง ( col_delimiter )

    ตัวอย่างเช่น หากต้องการแยกสตริงใน A2 ตามแนวนอนด้วยเครื่องหมายจุลภาค สูตรคือ:

    =TEXTSPLIT(A2, ",")

    สำหรับตัวคั่น เราใช้เครื่องหมายจุลภาคที่อยู่ในเครื่องหมายอัญประกาศคู่ (",") .

    ด้วยเหตุนี้ แต่ละรายการที่คั่นด้วยเครื่องหมายจุลภาคจะแยกออกเป็นแต่ละคอลัมน์:

    แยกเซลล์ในแนวตั้งในแถวต่างๆ

    หากต้องการแยกข้อความในหลายๆ แถว วิธีที่สาม อาร์กิวเมนต์ ( row_delimiter ) คือตำแหน่งที่คุณวางตัวคั่น อาร์กิวเมนต์ที่สอง ( col_delimiter ) จะถูกละไว้ในกรณีนี้

    ตัวอย่างเช่น เมื่อต้องการแยกค่าใน A2 ออกเป็นแถวต่างๆ สูตรคือ:

    =TEXTSPLIT(A2, ,",")

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

    แบ่งข้อความตามสตริงย่อย

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

    ตัวอย่างเช่น เมื่อต้องการแยกข้อความใน A2 ออกเป็นหลายคอลัมน์โดยเครื่องหมายจุลภาคและเว้นวรรค ใช้สตริง ", " สำหรับ col_delimiter .

    =TEXTSPLIT(A2, ", ")

    สูตรนี้ไปที่ B2 แล้วคัดลอกลงไปตามจำนวน เซลล์ตามต้องการ

    แยกสตริงออกเป็นคอลัมน์และแถวพร้อมกัน

    หากต้องการแยกสตริงข้อความออกเป็นแถวและคอลัมน์ในแต่ละครั้ง ให้กำหนดตัวคั่นทั้งสองในสูตร TEXTSPLIT ของคุณ

    ตัวอย่างเช่น หากต้องการแยกสตริงข้อความใน A2 ข้ามคอลัมน์และแถว เราจัดเตรียม:

    • เครื่องหมายเท่ากับ ("=") สำหรับ col_delimiter
    • เครื่องหมายจุลภาคและ เว้นวรรค (", ") สำหรับ row_delimiter

    สูตรที่สมบูรณ์จะอยู่ในรูปแบบนี้:

    =TEXTSPLIT(A2, "=", ", ")

    ผลลัพธ์คือ 2 มิติ อาร์เรย์ประกอบด้วย 2 คอลัมน์และ 3 แถว:

    แยกเซลล์ด้วยตัวคั่นหลายตัว

    หากต้องการจัดการกับตัวคั่นหลายตัวหรือไม่สอดคล้องกันในสตริงต้นทาง ให้ใช้ค่าคงที่ของอาร์เรย์ เช่น {"x","y" ,"z"} สำหรับอาร์กิวเมนต์ตัวคั่น

    ในภาพหน้าจอด้านล่าง ข้อความใน A2 คั่นด้วยเครื่องหมายจุลภาค (",") และเครื่องหมายอัฒภาค (";") โดยมีและไม่มีช่องว่าง หากต้องการแยกสตริงในแนวตั้งออกเป็นแถวด้วยรูปแบบตัวคั่นทั้ง 4 รูปแบบ สูตรคือ:

    =TEXTSPLIT(A2, , {",",", ",";","; "})

    หรือคุณจะใส่เฉพาะเครื่องหมายจุลภาค (",") และเครื่องหมายอัฒภาค ("; ") ในอาร์เรย์ จากนั้นลบช่องว่างเพิ่มเติมด้วยความช่วยเหลือของฟังก์ชัน TRIM:

    =TRIM(TEXTSPLIT(A2, , {",",";"}))

    แยกข้อความโดยไม่สนใจค่าว่าง

    หากสตริงมี ตัวคั่นที่ติดกันตั้งแต่สองตัวขึ้นไปโดยไม่มีค่าระหว่างตัวคั่น คุณสามารถเลือกได้ว่าจะละเว้นค่าว่างนั้นหรือไม่ค่าหรือไม่ ลักษณะการทำงานนี้ถูกควบคุมโดยพารามิเตอร์ ignore_empty ตัวที่สี่ ซึ่งมีค่าเริ่มต้นเป็น FALSE

    โดยค่าเริ่มต้น ฟังก์ชัน TEXTSPLIT จะไม่สนใจค่าว่าง ลักษณะการทำงานเริ่มต้นทำงานได้ดีกับข้อมูลที่มีโครงสร้างดังตัวอย่างด้านล่าง

    ในตารางตัวอย่างนี้ สตริงบางรายการขาดคะแนน สูตร TEXTSPLIT ที่มีการละเว้นอาร์กิวเมนต์ ignore_empty หรือตั้งค่าเป็น FALSE จะจัดการกับกรณีนี้ได้อย่างสมบูรณ์แบบ โดยสร้างเซลล์ว่างสำหรับค่าว่างแต่ละค่า

    =TEXTSPLIT(A2, ", ")

    หรือ

    =TEXTSPLIT(A2, ", ", FALSE)

    ด้วยเหตุนี้ ค่าทั้งหมดจึงปรากฏในคอลัมน์ที่เหมาะสม

    ในกรณีที่สตริงของคุณมีข้อมูลที่เป็นเนื้อเดียวกัน อาจมีเหตุผลที่จะละเว้นค่าว่าง สำหรับสิ่งนี้ ให้ตั้งค่าอาร์กิวเมนต์ ignore_empty เป็น TRUE หรือ 1

    ตัวอย่างเช่น เมื่อต้องการแบ่ง t สตริงด้านล่างโดยวางแต่ละทักษะในเซลล์แยกต่างหากโดยไม่มีช่องว่าง สูตรคือ:

    =TEXTSPLIT(A2, ", ", ,TRUE)

    ในกรณีนี้ ค่าที่ขาดหายไประหว่างตัวคั่นที่ต่อเนื่องกันจะถูกละเว้นทั้งหมด:

    การแบ่งเซลล์ที่คำนึงถึงตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่

    เพื่อควบคุมตัวพิมพ์เล็ก-ใหญ่ ความไวของตัวคั่น ใช้อาร์กิวเมนต์ที่ห้า match_mode .

    โดยค่าเริ่มต้น match_mode จะถูกตั้งค่าเป็น 0 ทำให้ TEXTSPLIT คำนึงถึงขนาดตัวพิมพ์ .

    ในตัวอย่างนี้ ตัวเลขจะคั่นด้วยตัวอักษร "x" ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ "X"

    สูตรที่มีความไวต่อตัวพิมพ์เล็กเริ่มต้นจะยอมรับเฉพาะตัวพิมพ์เล็ก "x "ตามที่ตัวคั่น:

    =TEXTSPLIT(A2, " x ")

    โปรดทราบว่าตัวคั่นมีช่องว่างทั้งสองด้านของตัวอักษร " x " เพื่อป้องกันการเว้นวรรคนำหน้าและต่อท้ายในผลลัพธ์

    หากต้องการปิดการพิจารณาตัวพิมพ์เล็ก คุณใส่ 1 สำหรับ match_mode เพื่อบังคับให้สูตร TEXTSPLIT ละเว้นตัวพิมพ์เล็กและใหญ่:

    =TEXTSPLIT(A2, " x ", , ,1)

    ตอนนี้ ทั้งหมด สตริงถูกแบ่งอย่างถูกต้องด้วยตัวคั่นอย่างใดอย่างหนึ่ง:

    ใส่ค่าที่ขาดหายไปในอาร์เรย์ 2 มิติ

    อาร์กิวเมนต์สุดท้ายของฟังก์ชัน TEXTSPLIT pad_with มีประโยชน์ในกรณีที่หนึ่งหรือ ไม่มีค่าเพิ่มเติมในสตริงต้นทาง เมื่อสตริงดังกล่าวถูกแบ่งออกเป็นทั้งคอลัมน์และแถว ตามค่าเริ่มต้น Excel จะส่งกลับข้อผิดพลาด #N/A แทนค่าที่ขาดหายไปเพื่อไม่ให้โครงสร้างของอาร์เรย์สองมิติยุ่งเหยิง

    ในสตริงด้านล่าง ไม่มี "=" ( col_delimiter ) หลัง "คะแนน" เพื่อรักษาความสมบูรณ์ของอาร์เรย์ผลลัพธ์ TEXTSPLIT จะแสดง #N/A ถัดจาก "คะแนน"

    เพื่อให้ผลลัพธ์เป็นมิตรกับผู้ใช้มากขึ้น คุณสามารถแทนที่ข้อผิดพลาด #N/A ด้วยค่าใดก็ได้ที่คุณต้องการ เพียงแค่พิมพ์ค่าที่ต้องการใน pad_with อาร์กิวเมนต์

    ในกรณีของเรา อาจเป็นยัติภังค์ ("-"):

    =TEXTSPLIT(A2, "=", ", ", , ,"-")

    หรือสตริงว่าง (""):

    =TEXTSPLIT(A2, "=", ", ", , ,"")

    ตอนนี้คุณได้เรียนรู้การใช้งานจริงของแต่ละอาร์กิวเมนต์ของฟังก์ชัน TEXTSPLIT แล้ว เรามาพูดถึงตัวอย่างขั้นสูงสองสามตัวอย่างที่สามารถช่วยคุณได้ รับมือกับความท้าทายที่ไม่สำคัญในสเปรดชีต Excel ของคุณ

    แบ่งวันที่เป็นวัน เดือน และปี

    หากต้องการแบ่งวันที่ออกเป็นหน่วยต่างๆ ก่อนอื่นคุณต้องแปลงวันที่เป็นข้อความ เนื่องจากฟังก์ชัน TEXTSPLIT จัดการกับสตริงข้อความในขณะที่วันที่ของ Excel เป็นตัวเลข

    วิธีที่ง่ายที่สุด วิธีแปลงค่าตัวเลขเป็นข้อความโดยใช้ฟังก์ชัน TEXT อย่าลืมระบุรหัสรูปแบบที่เหมาะสมสำหรับวันที่ของคุณ

    ในกรณีของเรา สูตรคือ:

    =TEXT(A2, "m/d/yyyy")

    ขั้นตอนต่อไปคือการซ้อนฟังก์ชันด้านบนใน อาร์กิวเมนต์ตัวที่ 1 ของ TEXTSPLIT และป้อนตัวคั่นที่สอดคล้องกันสำหรับอาร์กิวเมนต์ตัวที่ 2 หรือ 3 ขึ้นอยู่กับว่าคุณกำลังแยกระหว่างคอลัมน์หรือแถว ในตัวอย่างนี้ หน่วยวันที่ถูกคั่นด้วยเครื่องหมายทับ เราจึงใช้ "/" สำหรับอาร์กิวเมนต์ col_delimiter :

    =TEXTSPLIT(TEXT(A2, "m/d/yyyy"), "/")

    แบ่งเซลล์และลบอักขระบางตัวออก

    ลองนึกภาพ: คุณได้แยกสตริงยาวๆ ออกเป็นชิ้นๆ แต่อาร์เรย์ผลลัพธ์ยังคงมีอักขระที่ไม่ต้องการ เช่น วงเล็บในภาพหน้าจอด้านล่าง:

    =TEXTSPLIT(A2, " ", "; ")

    หากต้องการตัด ปิดวงเล็บเปิดและปิดในแต่ละครั้ง ซ้อนฟังก์ชัน SUBSTITUTE สองฟังก์ชันเข้าด้วยกัน (แต่ละฟังก์ชันแทนที่วงเล็บด้วยสตริงว่าง) และใช้สูตร TEXTSPLIT สำหรับอาร์กิวเมนต์ ข้อความ ของ SUBSTITUTE ภายใน:

    =SUBSTITUTE(SUBSTITUTE(TEXTSPLIT(A2, " ", "; "), "(", ""), ")", "")

    เคล็ดลับ ถ้าอาร์เรย์สุดท้ายมีอักขระพิเศษมากเกินไป คุณสามารถกำจัดอักขระเหล่านี้ออกโดยใช้วิธีใดวิธีหนึ่งที่อธิบายไว้ในบทความนี้: วิธีลบอักขระที่ไม่ต้องการใน Excel

    แยกสตริงโดยข้ามค่าบางอย่าง

    สมมติว่าคุณต้องการแยกสตริงด้านล่างออกเป็น 4 คอลัมน์: ชื่อจริง , นามสกุล , คะแนน และ ผลลัพธ์ ปัญหาคือบางสตริงมีชื่อ "นาย" หรือ "นางสาว" เนื่องจากผลลัพธ์ผิดทั้งหมด:

    วิธีแก้ปัญหาไม่ชัดเจนแต่ค่อนข้างง่าย :)

    นอกเหนือจากตัวคั่นที่มีอยู่ซึ่งเป็นช่องว่าง (" ") และเครื่องหมายจุลภาคและเว้นวรรค (", ") คุณรวมสตริง "Mr. " และ "Ms. " ในค่าคงที่อาร์เรย์ col_delimiter เพื่อให้ฟังก์ชันใช้ชื่อเรื่องเองเพื่อแยก ข้อความ. หากต้องการละเว้นค่าว่าง ให้คุณตั้งค่าอาร์กิวเมนต์ ignore_empty เป็น TRUE

    =TEXTSPLIT(A2, {" ",", ","Mr. ","Ms. "}, ,TRUE)

    ตอนนี้ ผลลัพธ์ที่ได้สมบูรณ์แบบมาก!

    ทางเลือกของ TEXTSPLIT

    ในเวอร์ชัน Excel ที่ไม่รองรับฟังก์ชัน TEXTSPLIT คุณสามารถแบ่งสตริงโดยใช้ฟังก์ชัน SEARCH / FIND ร่วมกับซ้าย ขวา และ MID โดยเฉพาะอย่างยิ่ง:

    • SEARCH ที่ไม่คำนึงถึงตัวพิมพ์เล็กหรือใหญ่ FIND จะกำหนดตำแหน่งของตัวคั่นภายในสตริง และ
    • ฟังก์ชัน LEFT, RIGHT และ MID จะแยกสตริงย่อยก่อน หลังหรือระหว่างสองอินสแตนซ์ของตัวคั่น

    ในกรณีของเรา หากต้องการแบ่งค่าที่คั่นด้วย เครื่องหมายจุลภาคและช่องว่าง สูตรจะเป็นดังนี้

    ดึงชื่อ:

    =LEFT(A2, SEARCH(",", A2, 1) -1)

    ดึงคะแนน:

    =MID(A2, SEARCH(",", A2) + 2, SEARCH(",", A2, SEARCH(",",A2)+1) - SEARCH(",", A2) - 2)

    เพื่อรับผลลัพธ์:

    =RIGHT(A2, LEN(A2) - SEARCH(",",  A2, SEARCH(",",  A2) + 1)-1)

    สำหรับคำอธิบายโดยละเอียดเกี่ยวกับตรรกะของสูตร โปรดดูวิธีแยกสตริงตามอักขระหรือมาสก์

    โปรดทราบว่าไม่เหมือนกับอาร์เรย์แบบไดนามิก ฟังก์ชัน TEXTSPLIT สูตรเหล่านี้เป็นไปตามแนวทางหนึ่งสูตรหนึ่งเซลล์แบบดั้งเดิม คุณป้อนสูตรในเซลล์แรก จากนั้นลากลงในคอลัมน์เพื่อคัดลอกไปยังเซลล์ด้านล่าง

    ภาพหน้าจอด้านล่างแสดงผลลัพธ์:

    นั่นคือวิธีการแบ่งเซลล์ใน Excel 365 โดยใช้ TEXTSPLIT หรือโซลูชันทางเลือกในเวอร์ชันก่อนหน้า ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!

    สมุดฝึกปฏิบัติสำหรับการดาวน์โหลด

    ฟังก์ชัน TEXTSPLIT เพื่อแยกสตริง – ตัวอย่างสูตร (ไฟล์ .xlsx)

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้