แยกข้อความเป็นหลายคอลัมน์ใน Google Sheets ด้วย SPLIT

ข้อมูลจากแบบฟอร์มหรือระบบขายมักรวมหลายอย่างในเซลล์เดียว เช่น สมุด,เครื่องเขียน,45 ถ้าต้องแยกชื่อสินค้า หมวด และราคาเพื่อทำรายงาน สูตร SPLIT ใน Google Sheets ช่วยกระจายข้อความไปหลายคอลัมน์โดยอิงตัวคั่น และปรับผลเมื่อข้อมูลต้นทางเปลี่ยน

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

รู้จักรูปแบบของสูตร

=SPLIT(text, delimiter, [split_by_each], [remove_empty_text])
  • text: ข้อความหรือเซลล์ต้นทาง เช่น A2
  • delimiter: ตัวคั่น เช่นจุลภาค ช่องว่าง หรือเครื่องหมายหลายตัว
  • split_by_each: ค่าเริ่มต้น TRUE จะถืออักขระแต่ละตัวในตัวคั่นเป็นตัวแยก ตั้ง FALSE เมื่อต้องใช้ตัวคั่นทั้งชุด
  • remove_empty_text: ค่าเริ่มต้น TRUE จะไม่รักษาช่องข้อความว่างจากตัวคั่นต่อกัน ตั้ง FALSE เมื่อต้องคงตำแหน่งช่องว่าง

แยกข้อความที่คั่นด้วยจุลภาค

  1. ใส่ สมุด,เครื่องเขียน,45 ใน A2
  2. ตั้งหัวคอลัมน์ B1:D1 เป็นชื่อสินค้า หมวด และราคา
  3. ตรวจว่า B2:D2 ยังว่าง ไม่มีข้อมูลที่ต้องเก็บไว้
  4. พิมพ์สูตรต่อไปนี้ใน B2 แล้วกด Enter
=SPLIT(A2, ",")

ผลจะแสดง สมุด ใน B2 เครื่องเขียน ใน C2 และ 45 ใน D2 ตัวคั่นจะไม่ติดมากับผลลัพธ์ ถ้ามีข้อมูลเพิ่มใน A3 ให้ลากสูตรจาก B2 ลง B3 โดยเว้นพื้นที่ด้านขวาของทุกแถวไว้ด้วย ไม่ต้องคัดลอกสูตรไปใส่ C2 หรือ D2 เพราะผลลัพธ์ขยายจากสูตรเดียว

ตัวคั่นหลายอักขระต้องกำหนดให้ชัด

ถ้าระบบส่งข้อมูลเป็น สมุด::เครื่องเขียน::45 และต้องการใช้ :: เป็นตัวคั่นหนึ่งชุด ให้กำหนดอาร์กิวเมนต์ที่สามเป็น FALSE เพื่อให้สูตรตรงกับความตั้งใจ แม้ข้อมูลบางชุดจะให้ผลคล้ายกันเมื่อใช้ค่าเริ่มต้นก็ตาม

=SPLIT(A2, "::", FALSE)

ความต่างเห็นชัดเมื่อใช้ตัวคั่นหลายตัวที่ไม่เหมือนกัน เช่น | หากไม่กำหนด FALSE สูตรอาจแยกด้วยช่องว่างทุกตำแหน่งในชื่อสินค้า การตั้ง FALSE จะใช้ข้อความตัวคั่นทั้งชุด จึงไม่แยกชื่อที่มีช่องว่างภายในโดยไม่ตั้งใจ

รักษาช่องที่ไม่มีข้อมูล

สมมติ A2 เป็น สมุด,,45 หมายถึงชื่อสินค้าและราคาอยู่ครบ แต่หมวดว่าง หากใช้ค่าเริ่มต้น สูตรอาจเลื่อน 45 มาอยู่คอลัมน์หมวด ทำให้ข้อมูลผิดความหมาย ให้ใช้สูตรนี้เพื่อคงช่องว่างตรงกลาง

=SPLIT(A2, ",", FALSE, FALSE)

กรณีนี้ B2 เป็นสมุด C2 ว่าง และ D2 เป็น45 เหมาะกับข้อมูลที่จำนวนช่องมีความหมายแน่นอน หากช่องว่างเกิดจากการพิมพ์ตัวคั่นเกินและไม่ต้องการเก็บตำแหน่งนั้น ค่อยเลือก TRUE ตามโครงสร้างข้อมูล อย่าเปลี่ยนเพียงเพราะเห็นช่องว่างแล้วคิดว่าเป็นข้อผิดพลาด

เจอ #REF! หรือผลลัพธ์ไม่ขยาย

  1. คลิกเซลล์สูตรเพื่ออ่านรายละเอียด ถ้าระบุว่าจะเขียนทับข้อมูล ให้ตรวจเซลล์ด้านขวาที่ผลลัพธ์จะใช้
  2. ย้ายข้อมูลเดิมไปที่อื่นหรือเลือกพื้นที่ว่างใหม่ อย่าลบทันทีหากยังไม่รู้ว่าเป็นข้อมูลสำคัญหรือไม่
  3. ตรวจเซลล์ที่ผสานไว้ เพราะผลลัพธ์หลายคอลัมน์ต้องมีพื้นที่เซลล์ปกติ
  4. ดูว่ามีตัวคั่นเกินในข้อความจนจำนวนผลลัพธ์มากกว่าที่เตรียมไว้หรือไม่

แยกแล้วต้องตรวจอะไรเพิ่มเติม

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

หากข้อมูลต้นทางมีจุลภาคอยู่ภายในชื่อ เช่น ชุดปากกา, สีฟ้า,เครื่องเขียน,45 สูตรนี้ไม่ได้อ่านกฎอัญประกาศแบบไฟล์ CSV เต็มรูปแบบ ควรนำเข้าผ่านเครื่องมือที่รองรับรูปแบบไฟล์หรือเปลี่ยนตัวคั่นตั้งแต่ต้นทาง สำหรับแถวว่าง อาจครอบสูตรด้วย IF เช่น =IF(A2="","",SPLIT(A2,",",FALSE,FALSE)) เพื่อไม่ให้แถวที่ยังไม่มีข้อมูลแสดงข้อผิดพลาด

สรุปก่อนนำไปใช้

เลือกตัวคั่นตามข้อมูลจริง ใช้ FALSE เมื่อตัวคั่นมีหลายอักขระหรือเมื่อต้องรักษาช่องว่าง และเว้นเซลล์ด้านขวาให้ผลลัพธ์ขยายก่อนลากสูตรลงทั้งคอลัมน์

อ่านรายละเอียดเพิ่มเติมจาก เอกสารทางการของ Google เมนูอาจใช้ชื่อภาษาไทยหรือภาษาอังกฤษต่างกันตามภาษาของโปรแกรมและรุ่นที่ติดตั้ง