TEXTJOIN รวมข้อความจากหลายเซลล์หรือทั้งช่วงเป็นข้อความเดียว โดยกำหนดตัวคั่นเองได้และสั่งข้ามเซลล์ว่างได้ในคำสั่งเดียว ต่างจาก CONCATENATE ที่ต้องพิมพ์ตัวคั่นและเชื่อมทีละเซลล์เอง งานที่ใช้บ่อยคือรวมที่อยู่หลายบรรทัด สร้างลิสต์คั่นด้วยคอมม่าไว้ส่งออก หรือรวมผลลัพธ์จาก FILTER ให้ออกมาเป็นข้อความเดียว
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| delimiter | Text | "" | ตัวคั่นที่จะใส่ระหว่างข้อความแต่ละส่วน (ใส่ในเครื่องหมายคำพูด เช่น “, “) |
| ignore_empty | Logical | TRUE = ข้ามเซลล์ว่าง (ไม่นำมาใส่ตัวคั่น), FALSE = รวมเซลล์ว่างด้วย | |
| text1 | Any | ข้อความหรือช่วงข้อมูลแรกที่ต้องการเชื่อม | |
| [text2]ไม่บังคับ | Any | – | ข้อความหรือช่วงข้อมูลเพิ่มเติม (ใส่ได้สูงสุด 252 อาร์กิวเมนต์) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
TEXTJOIN เชื่อมข้อความจากหลายเซลล์หรือทั้งช่วงเป็นข้อความเดียว โดยกำหนดตัวคั่น (Delimiter) เองได้ ต่างจาก CONCATENATE ตรงที่มันข้ามเซลล์ว่างให้อัตโนมัติผ่านอาร์กิวเมนต์ ignore_empty ไม่ต้องมานั่งดักด้วย IF ทีละเซลล์เอง
ผมใช้บ่อยตอนต้องรวมคอลัมน์ที่อยู่หลายบรรทัดเป็นก้อนเดียว สร้างลิสต์ชื่อคั่นด้วยคอมม่าไว้ก็อปไปวางที่อื่น หรือรวมผลลัพธ์จากฟังก์ชันอาเรย์อย่าง FILTER ให้ออกมาเป็นบรรทัดเดียว
จุดที่ต้องระวังคือ ignore_empty ตัดให้เฉพาะเซลล์ที่ว่างจริง (empty) ถ้าเซลล์มีช่องว่างแฝงอยู่จะไม่ถูกตัด และถ้าเชื่อมตัวเลขหรือวันที่ตรงๆ รูปแบบที่จัดไว้จะหายไปกลายเป็นเลขดิบ ต้องห่อด้วย TEXT() ก่อนเสมอ
รวมข้อมูลจากหลายเซลล์ (เช่น วันที่, ยอดขาย, ชื่อลูกค้า) มาสร้างเป็นประโยคสรุปผลแบบ Dynamic เพื่อใช้ในรายงานหรืออีเมล
รวบรวมคำสำคัญจากหลายๆ คอลัมน์ให้เป็น Text String เดียว คั่นด้วยเครื่องหมายที่ต้องการ เพื่อใช้ในการทำ SEO หรือ Tagging
สมมติ A2 มี "สมชาย" และ B2 มี "ใจดี" สูตรนำ A2 กับ B2 มาต่อกันโดยมีช่องว่างคั่นกลาง ถ้าเซลล์ใดเซลล์หนึ่งว่างจริงๆ (ignore_empty = TRUE) มันจะข้ามไปเลย ไม่เหลือช่องว่างเกินมาให้ต้องมาลบทีหลัง
ProductList เป็นช่วงเซลล์ที่มีชื่อสินค้า (บางเซลล์ว่าง) สูตรรวมชื่อทั้งหมดเป็นข้อความเดียวคั่นด้วย ", " และข้ามเซลล์ว่างให้อัตโนมัติ ต่างจาก CONCATENATE ที่ถ้ามีเซลล์ว่างอยู่กลางช่วง จะได้คอมม่าติดกันสองตัวโผล่มาให้ต้องมานั่งไล่แก้
CHAR(10) คือรหัสขึ้นบรรทัดใหม่ ใช้แทนตัวคั่นปกติได้ ต้องเปิด Wrap Text ที่เซลล์นั้นด้วย ไม่งั้น Excel จะขึ้นบรรทัดใหม่จริงแต่มองไม่เห็นเพราะแถวสูงไม่พอ ใช้จัดที่อยู่หลายส่วนให้อยู่ในเซลล์เดียวสำหรับพิมพ์ใบเสร็จหรือฉลากส่งของ
FILTER กรอง ProductNames เฉพาะแถวที่ยอดขายเกิน 1000 ก่อน แล้ว TEXTJOIN ค่อยเอาชื่อสินค้าที่เหลือมารวมเป็นข้อความเดียวคั่นด้วยคอมม่า ถ้ายอดขายในตารางเปลี่ยน ลิสต์นี้อัปเดตตามทันทีเพราะเป็นสูตรอาเรย์ ไม่ใช่ก็อปวางค่าตายตัว
A2 เป็นวันที่ (19/09/2026), B2 เป็นชื่อลูกค้า, C2 เป็นยอดเงิน 15000 ถ้าเอา A2 กับ C2 ใส่ตรงๆ โดยไม่ห่อด้วย TEXT() ผลลัพธ์จะกลายเป็นเลข serial ของวันที่ (เช่น 46284) และตัวเลขไม่มีคอมม่าคั่นหลักพัน เพราะ TEXTJOIN ไม่สนใจ number format ที่ตั้งไว้บนเซลล์เลย ต้องแปลงเป็นข้อความด้วย TEXT() ก่อนทุกครั้งที่เชื่อมตัวเลขหรือวันที่
TEXTJOIN เหนือกว่าตรงที่กำหนดตัวคั่น (Delimiter) ได้ในคำสั่งเดียว และเลือกข้ามเซลล์ว่างได้ผ่าน ignore_empty ส่วน CONCAT/CONCATENATE ไม่มีอาร์กิวเมนต์ตัวคั่นเลย ต้องพิมพ์แทรกตัวคั่นเองระหว่างทุกเซลล์ (เช่น A2&", "&B2&", "&C2) และถ้ามีเซลล์ว่างอยู่กลางช่วง จะได้ตัวคั่นติดกันสองตัวที่ต้องมาไล่ลบเอง
ignore_empty ตัดให้เฉพาะเซลล์ที่ว่างจริง (ไม่มีอะไรเลย) ถ้าเซลล์นั้นมีช่องว่าง " " หรือสูตรอื่นคืนค่าเป็นช่องว่างที่ไม่ใช่สตริงว่างแท้ๆ Excel จะนับว่าเซลล์นั้น "มีข้อมูล" ไม่ข้ามให้ วิธีแก้คือห่อแต่ละเซลล์ด้วย TRIM() ก่อนส่งเข้า TEXTJOIN
ผลลัพธ์ที่รวมได้สูงสุดคือ 32,767 ตัวอักษร (ขีดจำกัดความยาวข้อความในเซลล์เดียวของ Excel) ถ้าข้อมูลที่จะรวมยาวเกินนี้ TEXTJOIN จะคืน #VALUE! ทันที กรณีนี้มักเจอตอนรวมข้อมูลจากทั้งคอลัมน์ยาวๆ ทางแก้คือแบ่งรวมเป็นหลายเซลล์ หรือย้ายงานนี้ไปทำใน Power Query แทน
TEXTJOIN ให้ผลลัพธ์เป็นข้อความเดียวเสมอ ไม่ใช่อาเรย์ ถ้าอยากได้อาเรย์แนวนอน (กระจายทีละเซลล์) ให้ใช้ TOROW แทน หรือถ้าอยากแยกข้อความที่รวมไว้แล้วกลับออกมาเป็นหลายเซลล์อีกครั้ง ให้ใช้ TEXTSPLIT กับตัวคั่นเดียวกับที่ใช้ตอนรวม
TEXTJOIN มีใน Excel 2019, Excel 2021 และ Excel 365 (รวมถึง Excel Online) ถ้าไฟล์ต้องเปิดกับ Excel 2016 หรือเก่ากว่านั้น ต้องใช้ CONCATENATE หรือเครื่องหมาย & ต่อกับ IF เพื่อดักเซลล์ว่างเอง ซึ่งยาวและแก้ยากกว่ามาก
ฟังก์ชันที่ผู้เขียนโยงไว้กับ TEXTJOIN จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
ฟังก์ชันที่แปลงอาร์เรย์หรือช่วงเซลล์ให้เป็นข้อความเดียว โดยสามารถเลือกรูปแบบการแสดงผล (อ่านง่ายหรือ Strict Format)
CONCAT รวมข้อความจากหลายเซลล์ หรือช่วงข้อมูลเข้าด้วยกัน โดยไม่มีตัวคั่นอัตโนมัติ ต่างจาก CONCATENATE ที่ต้องระบุทีละเซลล์ CONCAT ใช้ได้กับช่วง Range ทำให้การรวมข้อมูลขนาดใหญ่ง่ายกว่า
CONCATENATE เป็นฟังก์ชันแบบเก่าที่ใช้นำข้อความ ตัวเลข หรือค่าจากเซลล์ต่างๆ มาต่อกันให้เป็นข้อความยาวๆ เพียงเส้นเดียว ปัจจุบันสามารถใช้เครื่องหมาย & หรือฟังก์ชัน CONCAT/TEXTJOIN ซึ่งสะดวกกว่าได้
ฟังก์ชัน Microsoft 365 ที่ตรวจจับภาษาของข้อความในเซลล์ แล้วคืนค่าเป็นรหัสภาษา (เช่น "th", "en", "es") ใช้คู่กับ TRANSLATE เพื่อแปลภาษาแบบอัตโนมัติ
REPT ทำซ้ำข้อความตามจำนวนครั้งที่ระบุ เหมาะสำหรับสร้าง In-cell Bar Chart แสดง Rating ด้วยดาว เติม Padding ให้ข้อความ หรือสร้างเส้นแบ่ง ถ้า number_times เป็นทศนิยมจะถูกตัดเหลือจำนวนเต็ม
TEXT ใช้รหัสรูปแบบ (Format Codes) เช่น "dd/mm/yyyy" สำหรับวันที่ หรือ "#,##0.00" สำหรับตัวเลขมีทศนิยม ผลลัพธ์ที่ได้จะเป็นข้อความ (Text) เสมอ ไม่สามารถนำไปคำนวณต่อได้
TEXTSPLIT เป็นฟังก์ชัน Dynamic Array ที่ช่วยแยกข้อความในเซลล์ออกเป็นอาร์เรย์ของค่า (Spill) ตามตัวคั่นที่ระบุ สามารถแยกข้อมูลออกไปทางขวา (คอลัมน์) หรือลงด้านล่าง (แถว) หรือทั้งสองอย่างพร้อมกัน เหมาะสำหรับการจัดการข้อมูลนำเข้าที่รวมกันอยู่ในเซลล์เดียว
แปลข้อความจากภาษาหนึ่งไปอีกภาษาหนึ่งโดยตรงในสูตร Excel ผ่าน Microsoft Translation Services เหมาะกับการแปลไทย-อังกฤษแบบไดนามิกโดยไม่ต้องสลับไปแอปอื่น
TRIM ลบช่องว่างที่ด้านหน้า ด้านหลัง และลดช่องว่างระหว่างคำให้เหลือเพียงเคาะเดียว เหมาะสำหรับทำความสะอาดข้อมูลที่ Copy จากเว็บหรือระบบอื่น
แปลงค่าใดๆ (ตัวเลข, วันที่, อาร์เรย์, หรือแม้กระทั่ง Error) ให้เป็นข้อความเพื่อใช้งานได้จริง
ENCODEURL แปลงข้อความธรรมชาติเป็น URL-encoded string โดยแทนที่อักขระพิเศษ (เช่น ช่องว่าง สัญลักษณ์พิเศษ) ด้วยรหัสเลขฐานสิบหก ทำให้ข้อความปลอดภัยสำหรับใช้ในการขอ URL โดยมักใช้ร่วมกับ WEBSERVICE และ FILTERXML ในการค้นหาข้อมูลจากเว็บ API
FILTERXML ดึงข้อมูลเฉพาะส่วนจาก XML content โดยใช้ XPath expression เพื่อระบุตำแหน่งของข้อมูลที่ต้องการ ทำให้ง่ายในการแยกข้อมูลที่เป็นประโยชน์จากผลลัพธ์ XML ที่ส่งกลับมาจาก WEBSERVICE มักใช้ร่วมกับ WEBSERVICE และ ENCODEURL เพื่อดึงข้อมูลจาก web API
FILTER กรองข้อมูลจาก Array ตามเงื่อนไขที่กำหนด แล้ว return เป็น Spill Range ที่ขยายอัตโนมัติ เป็น Dynamic Array Function ที่เปลี่ยนวิธีการทำงานกับข้อมูลใน Excel รองรับเงื่อนไขหลายตัว (AND/OR) และสามารถใช้ร่วมกับ SORT UNIQUE XLOOKUP เพื่อสร้างรายงานที่อัปเดตอัตโนมัติ
IMAGE แสดงรูปภาพจาก URL ในเซลล์ Excel โดยรูปจะเป็นส่วนหนึ่งของเซลล์ สามารถกำหนดขนาด อัตราส่วน และ Alt Text ได้ เหมาะสำหรับสร้างรายการสินค้าหรือ Dashboard
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่