| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| Text | text | ข้อความต้นฉบับ (สตริง) สามารถเป็นลิเทอรัลข้อความ หรือ column reference |
| StartNum | number | ตำแหน่งเริ่มต้น เริ่มนับที่ 1 (ไม่ใช่ 0) ถ้า StartNum มากกว่าความยาวข้อความ ได้ผลลัพธ์ว่าง |
| NumChars | number | จำนวนตัวอักษรที่ต้องการดึง ต้องเป็นเลขบวก ถ้ากำหนดมากกว่าความยาวที่เหลือ จะดึงได้เท่าที่มี |
MID เป็นฟังก์ชันดึงข้อความจาก “ตรงกลาง” ของสตริง โดยกำหนดตำแหน่งเริ่มต้น (เริ่มนับที่ 1) และจำนวนตัวอักษรที่ต้องการดึง มันเป็นคู่หูของ LEFT (ดึงจากซ้าย) และ RIGHT (ดึงจากขวา) ใช้เวลาเวลาไหนต้องแยกรหัสที่มีโครงสร้างคงที่ หรือตัดโค้ดที่อยู่ตรงกลางสตริง
ที่เจ๋งคือ MID ร่วมกับ FIND/SEARCH ทำให้คุณหาตำแหน่งตัวคั่น (เช่น “-” หรือ “:”) แล้วดึงข้อมูลระหว่างตัวคั่นได้หมด ผมใช้มันสำหรับแยก SKU, ตัดปีจากรหัสสินค้า, หรือดึงรหัสตัวจริงจากข้อมูลที่มาจากหลายแหล่ง
ส่วนตัวผมถือว่า MID + FIND เป็นคู่หูสุดเก๋า ของการจัดการข้อมูลที่โครงสร้างมั่นคง ผมแนะนำให้เรียนรู้จัดการกับ MID เป็นหนึ่งในทักษะพื้นฐานของการทำความสะอาดข้อมูล
เช่น รหัสรูปแบบ ABC-2025-001 ต้องการดึงปี 2025
ใช้ร่วมกับ FIND/SEARCH เพื่อหาตำแหน่งตัวคั่น แล้วใช้ MID ดึงช่วงที่ต้องการ
ตำแหน่งนับจาก 1 ดังนั้น ตำแหน่งที่ 5 คือ E ดึง 4 ตัว = E, F, G, H
ถ้ารูปแบบรหัสคงที่เป็น ABC-2025-001 ตัวอักษร 4 ตัว ตำแหน่งที่ 5 คือปี
FIND หาตำแหน่ง – แล้วใช้ MID ดึงตั้งแต่ตำแหน่งถัดไปไปจนจบ LEN(Data[Code]) – dashPos คำนวณจำนวนตัวอักษรที่เหลือ
ใช้ MID ดึงตัวที่ 8-10 แล้วต่อกับ "XXX-XX-" เหมาะสำหรับการปิดบังข้อมูลสำคัญ
เริ่มนับจาก 1 ไม่ใช่ 0 ดังนั้น MID("ABC", 1, 1) ได้ "A" ไม่ใช่ "B" ต่างจากภาษาโปรแกรมมิ่งบางตัวที่เริ่มจาก 0
ได้ผลลัพธ์ว่าง (BLANK) ตัวอย่าง MID("ABC", 10, 2) ได้ "" เพราะตำแหน่งที่ 10 อยู่นอกข้อความ
MID จะดึงได้เท่าที่มี เช่น MID("ABCDE", 3, 10) ได้ "CDE" (ไม่ใช่ error) เพราะจากตำแหน่งที่ 3 มีแค่ 3 ตัว
ใช้ LEFT เพื่อดึงจากซ้าย เช่น LEFT("ABCDE", 2) ได้ "AB" และใช้ RIGHT เพื่อดึงจากขวา เช่น RIGHT("ABCDE", 2) ได้ "DE"
ได้ MID ทำงานในทั้ง calculated column, calculated table, measure, และ visual calculation ผมมักใช้ในคำนวณ column เพื่อสร้างคอลัมน์ใหม่ที่ดึงข้อมูลบางส่วน
ฟังก์ชันที่ผู้เขียนโยงไว้กับ MID จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
CONCATENATEX ทำหน้าที่รวมข้อความจากแต่ละแถวในตารางเข้าด้วยกัน เหมาะสำหรับสร้างรายชื่อค่าที่คั่นด้วยจุลภาค หรือรวมข้อมูลจากหลายแถว ใช้ได้กับตัวอักษรหรือค่าใดๆที่ต้องการทำให้เป็นข้อความ
FIND คืนค่าตำแหน่งเริ่มต้นของ FindText ภายใน WithinText (เริ่มนับที่ 1) โดยค้นหาแบบแยกตัวพิมพ์ใหญ่/เล็ก และสามารถระบุ StartNum/NotFoundValue เพื่อควบคุมจุดเริ่มค้นหาและผลลัพธ์เมื่อไม่พบได้
LEFT คืนค่าตัวอักษรจำนวนหนึ่งจากจุดเริ่มต้นของข้อความ ใช้ได้กับ Calculated Column โดยจะประมวลผลภาษาต่างๆ (Unicode) อย่างเดียวกัน
LEN นับจำนวนอักขระของสตริง รวมช่องว่างด้วย ใช้สำหรับตรวจสอบความยาวข้อมูล การทำความสะอาด และงานเงื่อนไขตามความยาวข้อความ
LOWER แปลงข้อความให้เป็นตัวพิมพ์เล็กทั้งหมด มีประโยชน์มากสำหรับการทำความสะอาดข้อมูลและแก้ปัญหาคีย์ไม่ตรงกันเพราะเหตุคำต่างชั้นอักษร
REPLACE แทนที่อักขระจำนวนหนึ่งในสตริง โดยเริ่มจากตำแหน่งที่ระบุ เหมาะกับการแก้ไขข้อความเฉพาะตำแหน่ง เช่น เปลี่ยนคำนำหน้า แทนที่ตัวเลขบางหลัก หรือซ่อนบางส่วนของข้อมูล
RIGHT คืนค่าตัวอักษรจำนวนหนึ่งจากจุดสิ้นสุดของข้อความ (ด้านขวา) ตามจำนวนที่ระบุ
SEARCH คืนค่าตำแหน่งเริ่มต้นของข้อความที่ค้นหา (ค้นหาแบบไม่สนตัวพิมพ์) หากไม่พบจะเกิดข้อผิดพลาด สามารถใช้กับ IFERROR หรือ COALESCE เพื่อจัดการกรณีไม่พบ
ฟังก์ชันทำความสะอาดข้อความ ลบช่องว่างส่วนเกินนำหน้า ท้าย และช่องว่างหลายตัวระหว่างคำ โดยคงไว้ช่องว่างเดี่ยวระหว่างคำเท่านั้น
UNICODE คืนค่า code point ของอักขระตัวแรกในข้อความ ใช้ในการตรวจสอบ/จำแนกข้อความตามอักขระนำหน้า หรือทำตรรกะเกี่ยวกับการเข้ารหัส และมักใช้คู่กับ UNICHAR
UPPER แปลงข้อความให้เป็นตัวพิมพ์ใหญ่ทั้งหมด ใช้บ่อยเพื่อปรับปรุงคุณภาพข้อมูลและทำให้การเปรียบเทียบข้อความแม่นยำ
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่