Giúp đỡ Vv: Lọc tất cả các ô chứa số và định dạng lại

Liên hệ QC

MinhCG

Thành viên mới
Tham gia
25/5/13
Bài viết
27
Được thích
0
Xin chào tất cả mọi người !
Mình có 1 vấn đề như sau : Cột A gồm 1 dãy : 1+4,12,15,01+4,1,1+2+3,04+1+2,đen, trắng, đen+trắng như file đính kèm
Mình muốn nhờ mọi người giúp đỡ để cột B trả giá trị tương ứng như sau:
1. Nếu cột A chứa số và <10 thì định dạng lại như sau : VD: A1 chứa 1+4 thì B1 thành 01+04, A2 chứa 01+2 thì B2 định dạng lại thành 01+02, A3 chứa số 12(>10) thì B2 giữ nguyên, A4 chứa chữ "đen" thì B4 giữ nguyên.
Xin mọi người giúp đỡ, nếu có cách nào dùng được công thức mà không dùng VBA thì tốt quá. Mình xin chân thành cảm ơn !
 

File đính kèm

  • Định dạng lại số.xlsx
    8 KB · Đọc: 19
Xin chào tất cả mọi người !
Mình có 1 vấn đề như sau : Cột A gồm 1 dãy : 1+4,12,15,01+4,1,1+2+3,04+1+2,đen, trắng, đen+trắng như file đính kèm
Mình muốn nhờ mọi người giúp đỡ để cột B trả giá trị tương ứng như sau:
1. Nếu cột A chứa số và <10 thì định dạng lại như sau : VD: A1 chứa 1+4 thì B1 thành 01+04, A2 chứa 01+2 thì B2 định dạng lại thành 01+02, A3 chứa số 12(>10) thì B2 giữ nguyên, A4 chứa chữ "đen" thì B4 giữ nguyên.
Xin mọi người giúp đỡ, nếu có cách nào dùng được công thức mà không dùng VBA thì tốt quá. Mình xin chân thành cảm ơn !
vắn đề về trắng và đen + trắng?
 
Tất cả các ô của cột A chứa kí tự là chữ như : đen, trắng, đen + trắng thì giữ nguyên bạn ạ.
 
thành thật xin lổi, tôi đi lộn "chuồn"
 
Lần chỉnh sửa cuối:
Nếu dùng VBA có làm được không bạn nhỉ.
Bạn dùng code này. Bạn format cho cột B là custom với format 00 nhé.
Mã:
Sub formats()
Dim i, j As Integer, Arr
For i = 2 To Range("A" & Rows.Count).End(3).Row
    If InStr(1, "en", Cells(i, 1)) = 0 And InStr(1, "ng", Cells(i, 1)) = 0 Then
        Arr = Split(Cells(i, 1), "+")
        For j = 0 To UBound(Arr)
            If Arr(j) < 10 And Len(Arr(j)) = 1 Then Arr(j) = "0" & Arr(j)
        Next
        Cells(i, 2) = Join(Arr, "+")
    End If
    If InStr(1, "en", Cells(i, 1)) > 0 Or InStr(1, "ng", Cells(i, 1)) > 0 Then Cells(i, 2) = Cells(i, 1)
Next
End Sub
 
thành thật xin lổi, tôi đi lộn "chuồn"
 
Lần chỉnh sửa cuối:
Bạn dùng code này. Bạn format cho cột B là custom với format 00 nhé.
Mã:
Sub formats()
Dim i, j As Integer, Arr
For i = 2 To Range("A" & Rows.Count).End(3).Row
    If InStr(1, "en", Cells(i, 1)) = 0 And InStr(1, "ng", Cells(i, 1)) = 0 Then
        Arr = Split(Cells(i, 1), "+")
        For j = 0 To UBound(Arr)
            If Arr(j) < 10 And Len(Arr(j)) = 1 Then Arr(j) = "0" & Arr(j)
        Next
        Cells(i, 2) = Join(Arr, "+")
    End If
    If InStr(1, "en", Cells(i, 1)) > 0 Or InStr(1, "ng", Cells(i, 1)) > 0 Then Cells(i, 2) = Cells(i, 1)
Next
End Sub

Hic! Cái vụ "en", "ng" .....hình như chưa ổn lắm.
Lỡ dữ liệu trên chỉ là ví dụ, thực ra nó là Hic, hay huhuhu thì sao ta?
Chơi bằng Function cho gọn 1 chút thử xem sao
PHP:
Public Function GPE(Rng As Range) As String
Dim Tem, I As Long
Tem = Split(Rng, "+")
For I = 0 To UBound(Tem)
    If IsNumeric(Tem(I)) And Tem(I) < 10 Then Tem(I) = "0" & Val(Tem(I))
Next I
GPE = Join(Tem, "+")
End Function
B2=GPE(A2)
 

File đính kèm

  • Định dạng lại số.xlsm
    14.3 KB · Đọc: 12
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom