อยากแยกที่อยู่ออกเป็นอำเภอ จังหวัด แต่ข้อมูลเน่ามาก ทำไงดี?
จริง ๆ แล้วใช้สูตรของโพสต์วันที่ 6 กุมภาพันธ์ 2023 ได้เลย
แต่มีแฟนเพจหลายท่านอยากให้เพิ่มคำนำหน้าชื่อตำบล อำเภอ จังหวัดเข้าไปด้วย เช่น
ถ้าเป็นกรุงเทพฯ ให้นำหน้าด้วย แขวง แต่ถ้าเป็นต่างจังหวัด ให้นำหน้าด้วย ต.
ถ้าเป็นกรุงเทพฯ ให้นำหน้าด้วย เขต แต่ถ้าเป็นต่างจังหวัด ให้นำหน้าด้วย อ.
ถ้าเป็นกรุงเทพฯ ให้เขียนว่า กรุงเทพฯ แต่ถ้าเป็นต่างจังหวัด ให้นำหน้าด้วย จ.

ด้วยตรรกะนี้ เขียนสูตร Excel ได้เป็น
IF(Province=”กรุงเทพฯ”,{“แขวง”,”เขต”,””},{“ต.”,”อ.”,”จ.”})&HSTACK(Tambol,Amphur,Province)
งั้นเรายังคงใช้โครงสร้างสูตรเดิม แต่ปรับช่วงท้ายเล็กน้อย หรือสูตรทั้งหมดคือ (จากภาพคือสูตรในเซลล์ A12)
=LET(
Address,SUBSTITUTE(TRIM(A2:A8),UNICHAR(160)," "),
AddWOPrefix,MAP(Address,LAMBDA(a,TRIM(TEXTJOIN(" ",,TEXTSPLIT(a,{"ตำบล","ต.","แขวง","อำเภอ","อ.","จ.","จังหวัด"}))))),
Street,TEXTBEFORE(Address,{"แขวง","ตำบล","ต."},,,,TEXTBEFORE(AddWOPrefix," ",-4)),
PreProvince,TEXTBEFORE(TEXTAFTER(AddWOPrefix," ",-2)," "),
Province,MAP(PreProvince,LAMBDA(m,IF(COUNT(FIND({"กรุงเทพ","กทม"},m)),"กรุงเทพฯ",m))),
Tambol,TEXTBEFORE(TRIM(TEXTAFTER(Address,{"แขวง","ตำบล","ต."},,,,TEXTAFTER(AddWOPrefix," ",-4)))," "),
PreAmphur,TEXTBEFORE(TEXTAFTER(AddWOPrefix," ",-3)," "),
Amphur,MID(PreAmphur,IF(LEFT(PreAmphur,3)="เขต",4,1),IF(FIND(Province,PreAmphur&Province)=6,5,99)),
PostCode,--TEXTAFTER(Address," ",-1),
WPrefix,IF(Province="กรุงเทพฯ",{"แขวง","เขต",""},{"ต.","อ.","จ."})&HSTACK(Tambol,Amphur,Province),
HSTACK(Street,WPrefix,PostCode))
สูตรยาวนิดนึง แต่เขียนสูตรเดียว แยกได้ 5 คอลัมน์เลยนะ!
อ้อ, ไม่ต้องก๊อปปี้สูตรมาด้านล่างนะ เดี๋ยวมัน SPILL ลงมาเอง 😀
( จากสูตร ข้อมูลที่อยู่คือ A2:A8 ถ้านำไปใช้งาน ให้เปลี่ยนช่วงข้อมูลให้สอดคล้องกับข้อมูลของคุณ เช่น เปลี่ยนเป็น A2:A1000 )
สูตรนี้ใช้ได้เฉพาะ Excel 365 หรือ Excel for Web เท่านั้นนะครับ
ลองมองสูตรนี้เป็นส่วนหนึ่งของการประยุกต์ใช้ฟังก์ชันใหม่ของ Excel 365 เช่น LET, LAMBDA, MAP
อยากให้พวกเราลองใช้กัน มันเจ๋งและทรงพลังมากจริง ๆ
ใครอ่านถึงบรรทัดนี้ ขอคนละเมนต์นะครับ 😊
สุดยอด