What do you want TEXTSPLIT to do?
Who has ever met like this? 🙋♀️
There are several rows of data separated by signs, and you want to use TEXTSPLIT to separate them into columns.
Therefore try typing
= TEXTSPLIT (A2: A10, "")
And then think Excel will handle it all...
But the results are not what they thought. 😅
💡 The reason is that TEXTSPLIT is designed to receive "single value messages" (Single Value), not directly supporting Array.
If you want Split, all rows Dynamic in Excel 365 can be used.
✅ REDUCE
✅ VSTACK
✅ TEXTSPLIT
Working together
The advantage is
✨ Add new information and then the results expand themselves.
✨ Don't drag the recipe.
✨ Very suitable for Data Cleaning
Save this post. 📌
Today may not have been used, but the day the data came in 500 rows, you might be back looking for this post. 😆
# Excel 30 seconds # Excel365 # ExcelTips # ExcelThailand # TEXTSPLIT# REDUCE # VSTACK # DynamicArray # MicrosoftExcel # Excel # DataCleaning # OfficeLife # Human Salary
เคยเจอปัญหา TEXTSPLIT ใน Excel ที่ไม่ยอม Spill ออกมาเป็นหลายคอลัมน์เมื่อใช้กับช่วงข้อมูลหลายแถวไหมครับ? บางทีผมเองก็เจอปัญหานี้ ว่าจะใช้สูตร=TEXTSPLIT(A2:A10,"," ) เพื่อแยกข้อมูลที่คั่นด้วยเครื่องหมายจุลภาคจากหลายแถวให้กลายเป็นคอลัมน์ แต่ผลลัพธ์กลับไม่เป็นอย่างที่คาดหวัง เพราะ TEXTSPLIT ได้รับการออกแบบให้รองรับข้อมูลทีละค่าหรือ Single Value เท่านั้น ไม่รองรับ Array หรือช่วงข้อมูลโดยตรง หลังจากนั้นผมได้ลองค้นหาวิธีแก้ไข พบว่า Excel 365 มีฟังก์ชันใหม่อย่าง REDUCE กับ VSTACK ที่เมื่อนำมาทำงานร่วมกับ TEXTSPLIT จะสามารถช่วยให้ผลลัพธ์ Spill ออกมาเป็นไดนามิกกับข้อมูลหลายแถวได้ ไม่ต้องเสียเวลาลากสูตรหรือแยกทีละแถวอีกต่อไป ทำไมต้องใช้ REDUCE กับ VSTACK? เพราะ REDUCE เป็นฟังก์ชันที่ช่วยลดหรือต่อยอดการประมวลผล โดยใช้ LAMBDA ทำให้สามารถรวมผลลัพธ์ของแต่ละแถวได้แบบสะสม ส่วน VSTACK ช่วยให้เราสามารถนำข้อมูลหลายบรรทัดหรือหลายคอลัมน์มาต่อกันในแนวตั้งได้อย่างมีประสิทธิภาพ ซึ่งเมื่อรวมกับ TEXTSPLIT แล้วก็จะสามารถแยกข้อความจากแต่ละแถวตาม delimiter ที่กำหนด แล้ว spill ข้อมูลทั้งหมดให้อัตโนมัติ ข้อดีอีกอย่างคือ ถ้ามีการเพิ่มข้อมูลเข้ามาใหม่ในช่วง A2:A10 เช่น ข้อมูลในตารางขยายเป็น 500 แถว สูตรนี้ก็จะทำงานต่อเนื่องโดยไม่ต้องแก้ไขสูตร หรือคัดลอกไปยังเซลล์อื่น ๆ เหมือนวิธีเดิมๆ รวมทั้งยังเหมาะกับการทำ Data Cleaning ที่ต้องจัดการข้อมูลในรูปแบบต่าง ๆ เพื่อเตรียมนำไปใช้ต่อ สำหรับใครที่ยังไม่พร้อมใช้สูตรนี้หรืออยากวิธีง่าย ๆ อาจเลือกใช้ฟังก์ชัน Text to Columns ของ Excel ได้เช่นกัน แต่ถ้าต้องการความไดนามิกและรองรับจำนวนข้อมูลเยอะ ๆ การผสมผสาน REDUCE + VSTACK + TEXTSPLIT ถือว่าตอบโจทย์มากทีเดียว ผมแนะนำว่าถ้าเจอปัญหา TEXTSPLIT ไม่ Spill ให้ลองศึกษาและนำสูตร =DROP(REDUCE("",A2:A10,LAMBDA(a,b,VSTACK(a,TEXTSPLIT(b,",")))),1) มาใช้ดู รับรองว่าจะช่วยให้การแยกข้อมูลของคุณง่ายขึ้นและลดเวลาทำงานไปได้เยอะเลยครับ



























































































