Xin giúp lập trình đổi số thành chuỗi ký tự (1 người xem)

Người dùng đang xem chủ đề này

nguyentai2206

Thành viên mới
Tham gia
10/12/14
Bài viết
3
Được thích
0
Trường hợp của em là khi em nhập vào trọng lượng vàng bằng số thì nó sẽ hiển trị ra dạng chữ ở ô kế bên.
ví dụ em nhập vào E1 là "54723" thì ô F1 sẽ hiển thị "5 lượng 4 chỉ 7 phân 2 li 3", hoặc nếu em nhập 7342" thì F1 sẽ ra "7 chỉ 3 phân 4 li 2"
Có anh chị nào biết cách xin chỉ giúp em. :(
Em xin cảm ơn!
 
Trường hợp của em là khi em nhập vào trọng lượng vàng bằng số thì nó sẽ hiển trị ra dạng chữ ở ô kế bên.
ví dụ em nhập vào E1 là "54723" thì ô F1 sẽ hiển thị "5 lượng 4 chỉ 7 phân 2 li 3", hoặc nếu em nhập 7342" thì F1 sẽ ra "7 chỉ 3 phân 4 li 2"
Có anh chị nào biết cách xin chỉ giúp em. :(
Em xin cảm ơn!

Đây mời bác.

ở ô F1 nhập vào công thức:

Mã:
=k(E1)

Mã:
' written by DTN @ 10.12.2014
Function k(m As Long)
    s = CStr(m)
    For i = 1 To Len(s)
        Select Case (i - 1)
            Case 0:
                n = Mid(s, Len(s) - (i - 1), 1)
            Case 1:
                n = Mid(s, Len(s) - (i - 1), 1) & " li " & n
            Case 2:
                n = Mid(s, Len(s) - (i - 1), 1) & " phân " & n
            Case 3:
                n = Mid(s, Len(s) - (i - 1), 1) & " ch" & ChrW$(&H1EC9) & " " & n
            Case 4:
                n = Left(s, Len(s) - 4) & " l" & ChrW$(&H1B0) & ChrW$(&H1EE3) & "ng " & n
        End Select
    Next
    k = n
End Function
 

File đính kèm

Upvote 0
Trường hợp của em là khi em nhập vào trọng lượng vàng bằng số thì nó sẽ hiển trị ra dạng chữ ở ô kế bên.
ví dụ em nhập vào E1 là "54723" thì ô F1 sẽ hiển thị "5 lượng 4 chỉ 7 phân 2 li 3", hoặc nếu em nhập 7342" thì F1 sẽ ra "7 chỉ 3 phân 4 li 2"
Có anh chị nào biết cách xin chỉ giúp em. :(
Em xin cảm ơn!

Chỉ có 5 ký tự, ta IF + MID vài phát cũng ra...
 
Upvote 0
Chỉ có 5 ký tự, ta IF + MID vài phát cũng ra...

Đây ạ. Giả sử dữ liệu ở A6

Mã:
=IF(LEN(A6)>=5;REPLACE(REPLACE(REPLACE(REPLACE(A6;LEN(A6);0;" li ");LEN(A6)-1;0;" phân ");LEN(A6)-2;0;" chỉ ");LEN(A6)-3;0;" lượng ");IF(LEN(A6)=4;REPLACE(REPLACE(REPLACE(A6;LEN(A6);0;" li ");LEN(A6)-1;0;" phân ");LEN(A6)-2;0;" chỉ ");IF(LEN(A6)=3;REPLACE(REPLACE(A6;LEN(A6);0;" li ");LEN(A6)-1;0;" phân ");IF(LEN(A6)=2;REPLACE(A6;LEN(A6);0;" li ");IF(LEN(A6)=1;A6)))))

Kết quả:

Mã:
1                1
12                1 li 2
123                1 phân 2 li 3
1234                    1 chỉ 2 phân 3 li 4
12345            1 lượng 2 chỉ 3 phân 4 li 5
123456            12 lượng 3 chỉ 4 phân 5 li 6
1234567            123 lượng 4 chỉ 5 phân 6 li 7
12345678                1234 lượng 5 chỉ 6 phân 7 li 8

Ai không dùng được thì thay ";" bằng ","
 
Lần chỉnh sửa cuối:
Upvote 0
Lâu lâu đổi kiểu 1 phát xem coi sao có phê hơn không
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Trường hợp của em là khi em nhập vào trọng lượng vàng bằng số thì nó sẽ hiển trị ra dạng chữ ở ô kế bên.
ví dụ em nhập vào E1 là "54723" thì ô F1 sẽ hiển thị "5 lượng 4 chỉ 7 phân 2 li 3", hoặc nếu em nhập 7342" thì F1 sẽ ra "7 chỉ 3 phân 4 li 2"
Có anh chị nào biết cách xin chỉ giúp em. :(
Em xin cảm ơn!
Thêm một cách: .
 

File đính kèm

Upvote 0
Em cảm ơn các bác kuldokk ndu96081631 quanghai1969 phuocam đã giúp ạ!
Em xin hỏi thêm tí nữa. Ví dụ em có trọng lượng: 82576, em chỉ cần nó hiện ra là 8 Lượng 2576 hoặc có trọng lượng 5248 sẽ thành 5 chỉ 248 thôi thì mình làm sao ạ? Nghĩa là nếu dãy số là 5 con số thì nó ra chữ "lượng" kế số đầu, còn lại là dãy số; hoặc nếu dãy số trọng lượng là 4 số thì nó sẽ ra chữ "chỉ" sau số đầu tiên. Tượng tự với phân và li ạ.
Xin các bác chỉ giáo thêm lần này nữa. Em cực gà excel cho nên cần giúp lắm lăm. :(
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom