เทคนิค Excel แยกข้อความกับตัวเลข ง่ายๆ แยกตัวเลข ตัวอักษรคนละแถว
ฝัง
- เผยแพร่เมื่อ 7 ก.ย. 2021
- สอนสูตร Excel แยกตัวเลขออกจากตัวอักษร ให้แยกเป็นคนละช่อง โดยใช้สูตร Excel และ Power Query แยกข้อความกับตัวเลข อัตโนมัติทันทีที่เปลี่ยนข้อความ สามารถนำสูตร excel แยกข้อความกับตัวเลข ไปใช้ประโยชน์ในการคำนวณ จัดกลุ่ม แบ่งประเภท โดยดึงข้อมูลที่เป็นตัวเลข แยกจากข้อความ เช่น รหัสไปรษณีย์ ราคา เบอร์โทรศัพท์ รหัสพนักงาน ปี ขนาด น้ำหนัก
ครับขอบคุณมากครับมีประโยชน์มาก
สุดเลยครับพี่
สาระมากเลยค่ะ ช่วยชีวิตได้เยอะมาก ขอบคุณค่ะ 🙆
ขอบคุณมากครับ
อยากทราบว่าสูตร Bahttext&"บาท" ทำงัยให้แสดง ตัวเลข และมี .00 ต่อท้ายตัวเลข
=LET(n,SEQUENCE(Len(D6),1),x,Mid(D6,n,1),TF,ISNUMBER(x*1),xFilter,FILTER(x,TF),CONCAT(xFilter)) ทำไมผมพิมพ์แล้วขึ้นฟังก์ชั้นดังกล่าวไม่ถูกต้องครับ สูตรฟ้องว่า ตรง FILTER ผิดคับ
ลองเช็คพวก ( ) , ให้ถูกตำแหน่งครับ หรือกด alt+enter ให้ขึ้นบรรทัดใหม่ จะดูง่ายขึ้นครับ
ติดเหมือนกันฟังชั่น FILTER น่าจะต้องอัปเกรดเป็น Microsoft 365 ครับ
รบกวนสอบถามเพิ่มเติมค่ะ ถ้าในข้อความมีตัวเลขหลายตัว แต่เราอยากจะดึงตัวเลขที่ติดตัวอักษรตัว B เท่านั้นออกมา เช่น Book 5B 15ABC อยากดึงแค่ 5ออกมา ไม่เอา 15ต้องปรับยังไงดีคะ ขอบคุณล่วงหน้าค่ะ
มีหลายวิธีครับ อาจจะมีวิธีง่ายกว่าถ้าข้อความมีรูปแบบตายตัว แต่ถ้าจะประยุกต์ต่อจากคลิป
1.เพิ่มตัวแปร last ให้พิจารณาข้อความแค่ถึงตัวBที่2
2. เอาตัวแปร last มาแทนที่ LEN(ข้อความ) ในฟังก์ชั่น MID
=LET(
last,SEARCH("b",ข้อความ,5),
x,MID(B3,SEQUENCE(last),1),
....)
@@excel-man ขอบคุณมากค่ะ มันไม่ใช่รูปแบบตายตัวเท่าไหร่ ตอนนี้ลองปรับไปใช้ lenเพื่อหาว่ามี B กี่ตัวก่อนแล้ว search B ตัวที่1,2,3 ว่าอยู่ตำแหน่งไหนแล้วค่อยใช้ mid ดึงค่าตำแหน่งนั้นมา1 char แต่ก็ยังติดตรงบางง rows ก็เป็นเลข 2 หลัก บาง rows ก็เป็นเลขหลักเดียว เลยต้องมา clear อีกทีนึง พอจะมีวิธีอื่นที่ง่ายกว่านี้ไหมคะ
@@excel-man
ตัวอย่าง data ประมาณนี้ค่ะ
RICE SUGAR 10 PAL
TOILET TISSUE 10B
BAKERY 1B
COOKING DRESSING 10B AB
FOOD 1B W100AB
BEVERAGE LIQUOR 1B (W1000)_10000
ORAL CARE 1B(H100, W100)
ลองเขียนเป็นขั้นตอนได้ประมาณนี้ครับ
1. หาตำแหน่งแรกของตัวเลข 0-9
2. นำตำแหน่งข้อ1 มาใช้เป็นจุดเริ่มต้นของการหาตำแหน่ง B
3. นำตำแหน่งข้อ2 มาตัดข้อความให้สั้นลงถึงแค่ B
4. แยกข้อความข้อ3 เป็นแต่ละตัวอักษร
5. แปลงformatตัวอักษรข้อ4 ให้เอาเฉพาะตัวเลขอย่างเดียว
ุ6. รวมที่ตัวเลขที่ได้จากข้อ5
แปลงเป็นฟังก์ชั่น LET เพื่อความเข้าใจง่าย
=LET(
_1,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},ข้อความ&"0123456789")),
_2,SEARCH("b",ข้อความ,_1),
_3,LEFT(ข้อความ,_2),
_4,MID(_3,SEQUENCE(LEN(_3)),1),
_5,TEXT(_4,"0;;0;"),
--CONCAT(_5))
=LET(
x,MID(B3,SEQUENCE(1,LEN(B3)),1),
TF,ISNUMBER(x*1)),
xFilter,FILTER(x,TF),
TRIM(CONCAT(xFilter))