Xin trợ giúp về tham chiếu dữ liệu với ô nhiều chữ

Liên hệ QC

nthxe

Trình còi
Tham gia
14/6/08
Bài viết
259
Được thích
112
Kính chào các bác,
Em có khó khăn sau muốn nhờ các bác trợ giúp:

Em có file gốc gồm 3 cột trong đó:
- Cột A là mã dân tộc;
- Cột B là tên dân tộc với các tên gọi khác nhau;
Hai cột này coi như dữ liệu gốc, thư viện để tham chiếu.

- Cột C là tên của một trong các dân tộc như trên.
Muốn nhờ các bác giúp em cách thức để khi gõ tên dân tộc vào cột C thì mã dân tộc tự động tham chiếu vào vùng dữ liệu gốc (cột A và cột B) để điền mã vào cột D.

cụ thể trong file đính kèm

Cảm ơn các bác ạ.
 

File đính kèm

  • Ma dan toc.xlsx
    12.1 KB · Đọc: 10
Kính chào các bác,
Em có khó khăn sau muốn nhờ các bác trợ giúp:

Em có file gốc gồm 3 cột trong đó:
- Cột A là mã dân tộc;
- Cột B là tên dân tộc với các tên gọi khác nhau;
Hai cột này coi như dữ liệu gốc, thư viện để tham chiếu.

- Cột C là tên của một trong các dân tộc như trên.
Muốn nhờ các bác giúp em cách thức để khi gõ tên dân tộc vào cột C thì mã dân tộc tự động tham chiếu vào vùng dữ liệu gốc (cột A và cột B) để điền mã vào cột D.

cụ thể trong file đính kèm

Cảm ơn các bác ạ.
Bạn xem hàm này được không nhé.
Mã:
Function laydulieu(ByVal mang As Range, ByVal dk As String) As String
          Dim arr, i As Long, T
          If mang.Count = 1 Then
             ReDim arr(1 To 1, 1 To 1)
             arr(1, 1) = mang.Value
          Else
             arr = mang.Value
          End If
          For i = 1 To UBound(arr, 1)
              For Each T In Split(arr(i, 2), ",")
                  If UCase(T) = UCase(dk) Then
                     laydulieu = arr(i, 1)
                     Exit Function
                  End If
              Next
          Next i
End Function
Mã:
=laydulieu(A2:B56,C2)
 

File đính kèm

  • Ma dan toc.xlsm
    19.2 KB · Đọc: 5
Cảm ơn bác đã giúp đỡ. Em vừa xem thì thấy code của bác mới chỉ bắt được cụm chữ trước dấu , đầu tiên ạ. Các cụm chữ sau chưa bắt được bác ạ. Bác xem lại giúp em với. Cảm ơn bác
 
Cảm ơn bác đã giúp đỡ. Em vừa xem thì thấy code của bác mới chỉ bắt được cụm chữ trước dấu , đầu tiên ạ. Các cụm chữ sau chưa bắt được bác ạ. Bác xem lại giúp em với. Cảm ơn bác
Đây bạn xem.Vì sau mỗi dấu phẩy của bạn có thêm khoảng trống nhé nên không được.Mình sửa lại rồi.
Mã:
Function laydulieu(ByVal mang As Range, ByVal dk As String) As String
          Dim arr, i As Long, T
          If mang.Count = 1 Then
             ReDim arr(1 To 1, 1 To 1)
             arr(1, 1) = mang.Value
          Else
             arr = mang.Value
          End If
          For i = 1 To UBound(arr, 1)
              For Each T In Split(arr(i, 2), ",")
                  If UCase(Application.Trim(T)) = UCase(dk) Then
                     laydulieu = arr(i, 1)
                     Exit Function
                  End If
              Next
          Next i
End Function
 
cảm ơn bác nhiều ạ
 
Đây bạn xem.Vì sau mỗi dấu phẩy của bạn có thêm khoảng trống nhé nên không được.Mình sửa lại rồi.
Mã:
Function laydulieu(ByVal mang As Range, ByVal dk As String) As String
          Dim arr, i As Long, T
          If mang.Count = 1 Then
             ReDim arr(1 To 1, 1 To 1)
             arr(1, 1) = mang.Value
          Else
             arr = mang.Value
          End If
          For i = 1 To UBound(arr, 1)
              For Each T In Split(arr(i, 2), ",")
                  If UCase(Application.Trim(T)) = UCase(dk) Then
                     laydulieu = arr(i, 1)
                     Exit Function
                  End If
              Next
          Next i
End Function
Sao mình gỏ từ "Hán" không ra kết quả
 
Web KT
Back
Top Bottom