Page 1 of 1

ขอทราบวิธีการแก้ปัญหาข้อมูลบ้านเลขที่

Posted: Sat Aug 31, 2019 12:45 pm
by tananpong
สวัสดีครับ พอดีผมได้รับข้อมูลบ้านเลขที่มาหลายพันบรรทัด แต่มีข้อมูลบ้านเลขที่บางตัวมีขีดทับเช่น 25/2 ใน Excel ก็จะกลายเป็นข้อมูลวันที่อัตโนมัติ 25/2/2019 ทีนี้ถ้าจะมานั่งลบปี คศ. ออกแล้วจัดฟอร์แมตเซลล์มันก็หลายบรรทัดเกิน มีวิธีอื่นใดเช่นสูตร หรือ code vba แก้ปัญหามั้ยครับ

Code: Select all

Sub test()

Dim i As Single
For i = 2 To 20
    If Cells(i, 1).Value > 1000 And Application.WorksheetFunction.IsNumber(Cells(i, 1).Value) = False Then
            'ในส่วนนี้ผมลองใช้การแยก วัน เดือน ออกมาครับ แต่ก็ไม่ได้ผลตามต้องการครับ
            Cells(i, 3).Value = Day(Cells(i, 1).Value) & "/" & Month(Cells(i, 1).Value)
    End If
Next i

End Sub

Re: ขอทราบวิธีการแก้ปัญหาข้อมูลบ้านเลขที่

Posted: Sat Aug 31, 2019 12:50 pm
by puriwutpokin
ลอง Format cell C2:C20 ให้เป็นค่า Text หรือ ข้อความดูครับ

Re: ขอทราบวิธีการแก้ปัญหาข้อมูลบ้านเลขที่

Posted: Sat Aug 31, 2019 1:13 pm
by tananpong
ตัวเลข 5/3 พอฟอร์แมตเซลล์เป็นข้อความมันจะกลายเป็น 43588 แทนครับ

Re: ขอทราบวิธีการแก้ปัญหาข้อมูลบ้านเลขที่

Posted: Sat Aug 31, 2019 2:16 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Cells(i, 3).Value = "'" & Day(Cells(i, 1).Value) & "/" & Month(Cells(i, 1).Value)

Re: ขอทราบวิธีการแก้ปัญหาข้อมูลบ้านเลขที่

Posted: Sat Aug 31, 2019 3:18 pm
by puriwutpokin
ถ้าดูแล้วข้อมูลมีหลายแบบอาจต้องปรับเป็นแบบนี้ดูครับว่า แก้ได้ทุกเคสไหม

Code: Select all

Sub test()
Dim i As Single
For i = 2 To 20
    If Cells(i, 1) > 1000 And IsDate(Cells(i, 1)) = True Then
           Cells(i, 3) = "'" & Left(Application.Text(Cells(i, 1), "d/m/yy"), _
           Application.Find("/", Application.Text(Cells(i, 1), "d/m/yy")) - 1) & "/" & Month(Cells(i, 1))
    End If
Next i
End Sub

Re: ขอทราบวิธีการแก้ปัญหาข้อมูลบ้านเลขที่

Posted: Sat Aug 31, 2019 3:39 pm
by tananpong
ได้แล้วครับ..ขอบคุณทุกๆ ท่านที่เสียสละเวลามาตอบคำถามนะครับ