Page 1 of 1

ต้องการตัดอักขระออกจากตัวเลขครับ

Posted: Thu Dec 04, 2014 12:21 pm
by niwat2811
เรียนท่านผู้รู้ผมมีข้อมูลที่ได้จากการแปลงไฟล์ที่เป็น PDF มาเป็น Excel แต่ว่าข้้อมูลที่ได้
บางบรรทัดก็มีอักขระปนมากับตัวเลขซึ่งอักขระมีจำนวนไม่แน่นอน ไม่ทราบว่าเราสามารถ
ใช้สูตรอย่างไรเพื่อตัดอักขระออกให้เหลือแต่ตัวเลขครับ ตามไฟล์แนบ ขอบคุณครับ

Re: ต้องการตัดอักขระออกจากตัวเลขครับ

Posted: Thu Dec 04, 2014 1:13 pm
by snasui
:D ตัวอย่างสูตรตามด้านล่างครับ
  1. เซลล์ D2 คีย์
    =IFERROR(IF(MID($A2,COLUMNS($D$2:D2),1)=".",".",MID($A2,COLUMNS($D$2:D2),1)+0),"")
    Enter > Copy ไปด้านขวาถึง Z2
  2. เซลล์ B2 คีย์สูตร
    =CONCATENATE(D2,E2,F2,G2,H2,I2,J2,K2,L2,M2,N2,O2,P2,Q2,R2,S2,T2,U2,V2,W2,X2,Y2,Z2)+0
    Enter > Copy ลงด้านล่าง

Re: ต้องการตัดอักขระออกจากตัวเลขครับ

Posted: Thu Dec 04, 2014 1:47 pm
by niwat2811
เรียนท่านอาจารย์ สูตรที่ให้มาใช้ได้ตรงตามต้องการครับ

Re: ต้องการตัดอักขระออกจากตัวเลขครับ

Posted: Thu Dec 04, 2014 1:59 pm
by niwat2811
สอบถามเพิ่มเติมกรณีใช้ VBA ครับ แต่คำตอบที่ได้รับไม่ตรงกับที่ต้องการไม่ทราบว่าต้องปรับปรุง Code อย่างไรดีครับ
Code อยู่ที่ Module1 ชื่อ GetNumbers ครับ

Code: Select all

Sub GetNumbers()

    Dim uColumn As String

   uColumn = "A"

    Dim i As Long, j As Long, r As Range
    For i = 2 To Range(uColumn & Rows.Count).End(xlUp).Row
        Set r = Range(uColumn & i)
        Dim tmpStr As String
        tmpStr = vbNullString
        For j = 1 To Len(r)
            If IsNumeric(Right(Left(r, j), 1)) Then tmpStr = tmpStr & Right(Left(r, j), 1)
        Next j
        r.NumberFormat = "#,##0"
        r = tmpStr
    Next i

End Sub

Re: ต้องการตัดอักขระออกจากตัวเลขครับ

Posted: Thu Dec 04, 2014 4:44 pm
by snasui
:D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Dim rAll As Range, r As Range
Dim i As Integer, t As String
With Sheets("Sheet1")
    Set rAll = .Range("a2", .Range("a" & .Rows.Count).End(xlUp))
    rAll.Offset(0, 2).NumberFormat = "#,##0.00"
End With
For Each r In rAll
    t = ""
    For i = 1 To Len(r)
        If Mid(r, i, 1) Like "#" Or Mid(r, i, 1) = "." Then
            t = t & Mid(r, i, 1)
        End If
    Next i
    r.Offset(0, 2).Value = t
Next r

Re: ต้องการตัดอักขระออกจากตัวเลขครับ

Posted: Fri Dec 05, 2014 8:45 am
by niwat2811
เรียนท่านอาจารย์ Code ที่ให้มาใช้ได้ตรงตามต้องการครับ ขอบคุณมากครับ