Chuyển đổi dữ liệu theo điều kiện?

Liên hệ QC

KUMI

Bụi phấn
Tham gia
17/1/12
Bài viết
564
Được thích
571
Xin chào các bạn,
Nhờ các bạn giúp đỡ tôi vấn đề chuyển đổi dữ liệu theo điều kiện như hình ảnh/file kèm với ạ.
Xin cảm ơn.

Untitled.jpg
 

File đính kèm

  • MH.xlsx
    11.6 KB · Đọc: 11
Xin chào các bạn,
Nhờ các bạn giúp đỡ tôi vấn đề chuyển đổi dữ liệu theo điều kiện như hình ảnh/file kèm với ạ.
Xin cảm ơn.

View attachment 232970
Bạn thử cái hàm ngu ngu này xem nhé.
Mã:
Function doichu(ByVal mang As Range, ByVal dk As String) As String
         Dim arr, i As Long, s As String, dic As Object
         s = dk
         Set dic = CreateObject("scripting.dictionary")
         arr = mang.Value
         For i = 1 To UBound(arr)
             s = Replace(s, arr(i, 1), arr(i, 2))
         Next i
         doichu = s
End Function
 

File đính kèm

  • MH.xlsm
    17.5 KB · Đọc: 4

File đính kèm

  • MH.xlsx
    13.9 KB · Đọc: 4
Bạn thử cái hàm ngu ngu này xem nhé.
Mã:
Function doichu(ByVal mang As Range, ByVal dk As String) As String
         Dim arr, i As Long, s As String, dic As Object
         s = dk
         Set dic = CreateObject("scripting.dictionary")
         arr = mang.Value
         For i = 1 To UBound(arr)
             s = Replace(s, arr(i, 1), arr(i, 2))
         Next i
         doichu = s
End Function

Cảm ơn các bạn nhiều, mình cần sử dụng vba cho bài toán này.
Bạn có thể chuyển giúp mình Function thành sub được không ạ?
 
Cảm ơn các bạn nhiều, mình cần sử dụng vba cho bài toán này.
Bạn có thể chuyển giúp mình Function thành sub được không ạ?

Ngộ nhỉ..VBA không dùng Function được sao? :)

Code này copy của ban thuyyeu99 đây:

Mã:
Function ChuyenDoiChuoi(ChuoiCanChuyen As String, rng As Range)
    Dim i As Integer, pos As Integer
    Dim s1 As String
    Dim arrVung As Variant
        arrVung = rng.Value
        s1 = ChuoiCanChuyen
        For i = LBound(arrVung, 1) To UBound(arrVung, 1)
            pos = InStr(1, ChuoiCanChuyen, arrVung(i, 1), 1)
            If pos > 0 Then
                s1 = Replace(s1, arrVung(i, 1), arrVung(i, 2))
            End If
        Next
        ChuyenDoiChuoi = s1
End Function
 
Cái này là hình thức map/remap ký tự. Lục mấy bài "mã hoá văn bản" thì có cả đống lời giải.

Đính chính: bài này vô duyên hơn tôi tưởng. Tuy nó map 1-1 nhưng nó không map cùng một tập hợp. Tập hợp thứ nhất mỗi phần tử là đúng 1 ký tự. Tập hợp thứ hai một phần tử có thể là nhiều ký tự. Thầy/Cô nào ra bài này hơi dốt toán.
 
Lần chỉnh sửa cuối:
Mình ko biết gì về code...
Mới vào nghề viết công thức dài lắm cũng post lên góp vui:
=IF(COUNTIF($B$4:$B$14;LEFT(E4;1))>0;VLOOKUP(LEFT(E4;1);$B$4:$C$14;2;0);LEFT(E4;1))&IF(COUNTIF($B$4:$B$14;MID(E4;2;1))>0;VLOOKUP(VALUE(MID(E4;2;1));$B$4:$C$14;2;0);MID(E4;2;1))&IF(COUNTIF($B$4:$B$14;MID(E4;3;1))>0;VLOOKUP(VALUE(MID(E4;3;1));$B$4:$C$14;2;0);MID(E4;3;1))&IF(COUNTIF($B$4:$B$14;RIGHT(E4;1))>0;VLOOKUP(VALUE(RIGHT(E4;1));$B$4:$C$14;2;0);RIGHT(E4;1))
 
Web KT

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

Back
Top Bottom