PDA

View Full Version : แยกตัวเลขกับตัวอักษรออกจากกัน



narumonmon
4 Jun 2008, 18:17
สวัสดีครับ

รบกวนสอบถามดังนี้นะครับ


มีข้อมูลคือ

a12
31b
16d5c

อยากจะแยกภาษาอังกฤษ ออกจากตัวเลข มาแสดงอีกที่หนึ่ง และให้นับจำนวนตัวอักษรภาษาอังกฤษในแต่ละช่อง ว่ามีจำนวนกี่ตัว
ให้ได้ผลดังนี้ครับ

12.............. a ...............จำนวนอักษรภาษาอังกฤษ=1
31.............. b ......................................................1
165............ d c ...................................................2

ไม่ทราบว่าจะใช้สูตรอย่างไร ขอรบกวนด้วยครับ

สมเกียรติ
4 Jun 2008, 19:12
แยกเลขจากขวา
=LOOKUP(99999,--RIGHT($B2,ROW(INDIRECT("1:"&LEN($B2)))))

แยกเลขจากซ้าย
=LOOKUP(99999,--LEFT(B3,ROW(INDIRECT("1:"&LEN(B3)))))

พอแยกเลขได้แล้วจึงใช้สูตรแยกตัวอักษร

จากซ้าย
=LEFT(B2,LEN(B2)-LEN(C2))

จากขวา
=RIGHT(B3,LEN(B3)-LEN(C3))

แต่ถ้ามีเลขแทรกระหว่างตัวอักษร ต้องสร้างสูตรยาวเหยียด ไม่ง่ายครับ เว้นแต่จะทราบตำแหน่งแน่นอนจะง่ายขึ้น

สมเกียรติ
5 Jun 2008, 09:38
ผมทำอีก 2 แบบ โดยใช้สูตร SubStitute ค่อยๆเปลี่ยนเลข 0-9 เป็นช่องว่าง กับแบบที่ใช้ Function VBA ใช้แยกตัวอักษรหรือแยกตัวเลขได้



Function GetText(c) As Variant
For i = 1 To 10
c = Application.WorksheetFunction.Substitute(c, i - 1, "")
Next i
GetText = c
End Function

Function GetNum(c) As Long
Dim Num As String
For i = 1 To Len(c)
If Mid(c, i, 1) <= 9 Then Num = Num & Mid(c, i, 1)
Next i
GetNum = Num * 1
End Function

narumonmon
5 Jun 2008, 10:12
ขอบพระคุณอาจารย์มากครับผม สามารถนำไปประยุกต์ใช้ได้หลายแบบเลยครับ