Vlookup trả về nhiều giá trị trong một ô được phân tách bằng dấu phẩy google sheet

Excel có một số công thức tra cứu tuyệt vời, chẳng hạn như VLOOKUP, INDEX/MATCH (và bây giờ là XLOOKUP), nhưng không có công thức nào trong số này cung cấp cách trả về nhiều giá trị khớp. Tất cả những thứ này hoạt động bằng cách xác định trận đấu đầu tiên và trả lại trận đấu đó

Vì vậy, tôi đã viết mã VBA một chút để tạo ra một hàm tùy chỉnh (còn được gọi là Hàm do người dùng xác định) trong Excel

Cập nhật. Sau khi Excel phát hành mảng động và các hàm tuyệt vời như UNIQUE và TEXTJOIN, giờ đây bạn có thể sử dụng một công thức đơn giản và trả về tất cả các giá trị phù hợp trong một ô (được trình bày trong hướng dẫn này)

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách thực hiện (nếu bạn đang sử dụng phiên bản Excel mới nhất – Microsoft 365 với tất cả các chức năng mới), cũng như cách thực hiện việc này trong trường hợp bạn đang sử dụng các phiên bản cũ hơn (

Vậy hãy bắt đầu

Hướng dẫn này bao gồm

Tra cứu và trả về nhiều giá trị trong một ô (Sử dụng công thức)

Nếu bạn đang sử dụng Excel 2016 hoặc các phiên bản trước đó, hãy chuyển đến phần tiếp theo nơi tôi hướng dẫn cách thực hiện việc này bằng VBA.  

Với đăng ký Microsoft 365, Excel của bạn hiện có nhiều chức năng và tính năng mạnh mẽ hơn không có trong các phiên bản trước (chẳng hạn như XLOOKUP, Mảng động, hàm ĐỘC ĐÁO/LỌC, v.v. )

Vì vậy, nếu bạn đang sử dụng Microsoft 365 (trước đây gọi là Office 365), bạn có thể sử dụng các phương pháp được đề cập trong phần này để có thể tra cứu và trả về nhiều giá trị trong một ô duy nhất trong Excel

Và như bạn sẽ thấy, đó là một công thức thực sự đơn giản

Dưới đây tôi có một tập dữ liệu trong đó tôi có tên của những người trong cột A và quá trình đào tạo mà họ đã thực hiện trong cột B

Vlookup trả về nhiều giá trị trong một ô được phân tách bằng dấu phẩy google sheet

Bấm vào đây để tải file ví dụ về và làm theo

Đối với mỗi người, tôi muốn biết họ đã hoàn thành khóa đào tạo nào. Trong cột D, tôi có danh sách các tên duy nhất (từ cột A) và tôi muốn nhanh chóng tra cứu và trích xuất tất cả các khóa đào tạo mà mọi người đã thực hiện và lấy những tên này trong một tập hợp duy nhất (được phân tách bằng dấu phẩy)

Dưới đây là công thức sẽ làm điều này

=TEXTJOIN(", ",TRUE,IF(D2=$A$2:$A$20,$B$2:$B$20,""))

Vlookup trả về nhiều giá trị trong một ô được phân tách bằng dấu phẩy google sheet

Sau khi nhập công thức vào ô E2, hãy sao chép nó cho tất cả các ô mà bạn muốn có kết quả

Công thức này hoạt động như thế nào?

Hãy để tôi giải cấu trúc công thức này và giải thích từng phần về cách nó kết hợp với nhau sẽ cho chúng ta kết quả

Phép thử logic trong công thức IF (D2=$A$2. $A$20) kiểm tra xem ô tên D2 có giống ô tên trong phạm vi A2 không. A20

Nó đi qua từng ô trong phạm vi A2. A20 và kiểm tra xem tên trong ô D2 có giống nhau hay không. nếu trùng tên thì trả về TRUE, ngược lại trả về FALSE

Vì vậy, phần này của công thức sẽ cung cấp cho bạn một mảng như hình bên dưới

{TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}

Vì chúng tôi chỉ muốn đào tạo cho Bob (giá trị trong ô D2), nên chúng tôi cần nhận tất cả đào tạo tương ứng cho các ô trả về TRUE trong mảng trên

Điều này được thực hiện dễ dàng bằng cách chỉ định một phần [value_if_true] của công thức IF là phạm vi có phần đào tạo. Điều này đảm bảo rằng nếu tên trong ô D2 khớp với tên trong phạm vi A2. A20, công thức IF sẽ trả về tất cả quá trình đào tạo mà người đó đã thực hiện

Và bất cứ nơi nào mảng trả về FALSE, chúng tôi đã chỉ định giá trị [value_if_false] là “” (trống), vì vậy nó trả về một khoảng trống

Phần IF của công thức trả về mảng như hình bên dưới

{“Excel”;””;””;”PowerPoint”;””;””;””;””;””;””;””;””;””;””;””

Nơi có tên của khóa đào tạo mà Bob đã tham gia và để trống những nơi không có tên của Bob

Bây giờ, tất cả những gì chúng ta cần làm là kết hợp các tên đào tạo này (được phân tách bằng dấu phẩy) và trả lại nó trong một ô

Và điều đó có thể dễ dàng thực hiện bằng cách sử dụng công thức TEXTJOIN mới (sẵn dùng trong Excel 2019 và Excel trong Microsoft 365)

Công thức TEXTJOIN có ba đối số

  • Dấu phân cách - trong ví dụ của chúng tôi là “,” vì tôi muốn phần đào tạo được phân tách bằng dấu phẩy và ký tự khoảng trắng
  • TRUE – cho biết công thức TEXTJOIN bỏ qua các ô trống và chỉ kết hợp những ô không trống
  • Công thức If trả về văn bản cần được kết hợp

Nếu bạn đang sử dụng Excel trong Microsoft 365 đã có mảng động, bạn chỉ cần nhập công thức trên và nhấn enter. Và nếu bạn đang sử dụng Excel 2019, bạn cần nhập công thức và giữ phím Control và phím Shift rồi nhấn Enter

Bấm vào đây để tải file ví dụ về và làm theo

Nhận nhiều giá trị tra cứu trong một ô (không lặp lại)

Vì công thức ĐỘC ĐÁO chỉ khả dụng từ Excel trong Microsoft 365 nên bạn sẽ không thể sử dụng phương pháp này trong Excel 2019

Trong trường hợp có sự lặp lại trong tập dữ liệu của bạn, như hình dưới đây, bạn cần thay đổi công thức một chút để bạn chỉ nhận được danh sách các giá trị duy nhất trong một ô

Vlookup trả về nhiều giá trị trong một ô được phân tách bằng dấu phẩy google sheet

Trong tập dữ liệu trên, một số người đã tham gia đào tạo nhiều lần. Ví dụ: Bob và Stan đã tham gia khóa đào tạo về Excel hai lần và  Betty đã tham gia khóa đào tạo về MS Word hai lần. Nhưng trong kết quả của chúng tôi, chúng tôi không muốn lặp lại tên đào tạo

Bạn có thể sử dụng công thức dưới đây để làm điều này

=TEXTJOIN(", ",TRUE,UNIQUE(IF(D2=$A$2:$A$20,$B$2:$B$20,"")))

Vlookup trả về nhiều giá trị trong một ô được phân tách bằng dấu phẩy google sheet

Công thức trên hoạt động theo cùng một cách, với một thay đổi nhỏ. chúng tôi đã sử dụng công thức IF trong hàm UNIQUE để trong trường hợp có sự lặp lại trong kết quả của công thức if, hàm UNIQUE sẽ loại bỏ nó

Nhấn vào đây để tải về tập tin ví dụ

Tra cứu và trả về nhiều giá trị trong một ô (Sử dụng VBA)

Nếu bạn đang sử dụng Excel 2016 hoặc các phiên bản trước đó thì bạn sẽ không có quyền truy cập vào công thức TEXTJOIN. Vì vậy, cách tốt nhất để tra cứu và nhận nhiều giá trị phù hợp trong một ô là sử dụng công thức tùy chỉnh mà bạn có thể tạo bằng VBA.  

Để lấy nhiều giá trị tra cứu trong một ô, chúng ta cần tạo một hàm trong VBA (tương tự như hàm VLOOKUP) để kiểm tra từng ô trong một cột, nếu tìm thấy giá trị tra cứu thì thêm vào kết quả

Đây là mã VBA có thể làm điều này

'Code by Sumit Bansal (https://trumpexcel.com)
Function SingleCellExtract(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer)
  Dim i As Long
  Dim Result As String
  For i = 1 To LookupRange.Columns(1).Cells.Count
  If LookupRange.Cells(i, 1) = Lookupvalue Then
  Result = Result & " " & LookupRange.Cells(i, ColumnNumber) & ","
  End If
  Next i
  SingleCellExtract = Left(Result, Len(Result) – 1)
  End Function

Đặt mã này ở đâu?

  1. Mở một sổ làm việc và nhấp vào Alt + F11 (thao tác này sẽ mở cửa sổ VBA Editor)
  2. Trong cửa sổ VBA Editor này, ở bên trái, có một trình khám phá dự án (nơi liệt kê tất cả các sổ làm việc và trang tính). Nhấp chuột phải vào bất kỳ đối tượng nào trong sổ làm việc mà bạn muốn mã này hoạt động và đi tới Chèn -> Mô-đun
    Vlookup trả về nhiều giá trị trong một ô được phân tách bằng dấu phẩy google sheet
  3. Trong cửa sổ mô-đun (sẽ xuất hiện ở bên phải), sao chép và dán đoạn mã trên
  4. Bây giờ bạn đã sẵn sàng. Chuyển đến bất kỳ ô nào trong sổ làm việc và nhập =SingleCellExtract và nhập các đối số đầu vào được yêu cầu (i. e. , Giá trị tra cứu, Phạm vi tra cứu, Số cột)

Công thức này hoạt động như thế nào?

Hàm này hoạt động tương tự như hàm VLOOKUP

Phải mất 3 đối số làm đầu vào

1. Giá trị tra cứu – Một chuỗi mà chúng ta cần tra cứu trong một dải ô
2. LookupRange  – Một mảng các ô mà chúng ta cần tìm nạp dữ liệu ($B3. $C18 trong trường hợp này)
3. Số cột – Đây là số cột của bảng/mảng mà từ đó giá trị phù hợp sẽ được trả về (2 trong trường hợp này)

Khi bạn sử dụng công thức này, công thức sẽ kiểm tra từng ô ở cột ngoài cùng bên trái trong phạm vi tra cứu và khi tìm thấy kết quả phù hợp, công thức sẽ thêm vào kết quả trong ô mà bạn đã sử dụng công thức

Vlookup trả về nhiều giá trị trong một ô được phân tách bằng dấu phẩy google sheet

Nhớ. Lưu sổ làm việc dưới dạng sổ làm việc hỗ trợ macro (. xlsm hoặc. xls) để sử dụng lại công thức này. Ngoài ra, chức năng này sẽ chỉ khả dụng trong sổ làm việc này chứ không phải trong tất cả các sổ làm việc

Nhấn vào đây để tải về tập tin ví dụ

Tìm hiểu cách tự động hóa các tác vụ lặp đi lặp lại nhàm chán bằng VBA trong Excel. Tham gia Khóa học Excel VBA

Nhận nhiều giá trị tra cứu trong một ô (không lặp lại)

Có khả năng bạn có thể có sự lặp lại trong dữ liệu

Nếu bạn sử dụng mã được sử dụng ở trên, nó cũng sẽ cung cấp cho bạn các lần lặp lại trong kết quả

Nếu bạn muốn nhận được kết quả không lặp lại, bạn cần sửa đổi mã một chút

Đây là mã VBA sẽ cung cấp cho bạn nhiều giá trị tra cứu trong một ô mà không có bất kỳ sự lặp lại nào

'Code by Sumit Bansal (https://trumpexcel.com)
Function MultipleLookupNoRept(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer)
Dim i As Long
Dim Result As String
For i = 1 To LookupRange.Columns(1).Cells.Count
  If LookupRange.Cells(i, 1) = Lookupvalue Then
    For J = 1 To i - 1
    If LookupRange.Cells(J, 1) = Lookupvalue Then
      If LookupRange.Cells(J, ColumnNumber) = LookupRange.Cells(i, ColumnNumber) Then
        GoTo Skip
      End If
    End If
    Next J
    Result = Result & " " & LookupRange.Cells(i, ColumnNumber) & ","
Skip:
  End If
Next i
MultipleLookupNoRept = Left(Result, Len(Result) - 1)
End Function

Khi bạn đã đặt mã này vào Trình soạn thảo VB (như đã trình bày ở trên trong phần hướng dẫn), bạn sẽ có thể sử dụng hàm MultipleLookupNoRept

Đây là ảnh chụp nhanh về kết quả mà bạn sẽ nhận được với hàm MultipleLookupNoRept này

Vlookup trả về nhiều giá trị trong một ô được phân tách bằng dấu phẩy google sheet

Nhấn vào đây để tải về tập tin ví dụ

Trong hướng dẫn này, tôi đã trình bày cách sử dụng công thức và VBA trong Excel để tìm và trả về nhiều giá trị tra cứu trong một ô trong Excel

Mặc dù có thể dễ dàng thực hiện bằng một công thức đơn giản nếu bạn đang sử dụng Excel trong đăng ký Microsoft 365, nhưng nếu bạn đang sử dụng các phiên bản trước và không có quyền truy nhập vào các hàm như TEXTJOIN, thì bạn vẫn có thể thực hiện việc này bằng VBA bằng cách tạo

Bạn cũng có thể thích các Hướng dẫn Excel sau

  • Cách tạo và sử dụng bổ trợ Excel
  • Cách chạy Macro trong Excel
  • Tìm lần xuất hiện cuối cùng của giá trị tra cứu trong danh sách trong Excel
  • Cách sử dụng VLOOKUP với nhiều tiêu chí
  • Cách ghi Macro trong Excel – Hướng dẫn từng bước
  • Kiểm tra nhiều điều kiện bằng hàm IFS của Excel

Vlookup trả về nhiều giá trị trong một ô được phân tách bằng dấu phẩy google sheet

SÁCH EXCEL MIỄN PHÍ

Nhận Ebook 51 mẹo Excel để tăng năng suất và hoàn thành công việc nhanh hơn

Tên

E-mail

CÓ - GỬI SÁCH ĐIỆN TỬ CHO TÔI

55 suy nghĩ về "Tra cứu và trả về nhiều giá trị trong một ô trong Excel (Công thức & VBA)"

  1. cô dâu

    vì một số lý do khi tôi đặt mã VBA vào và chạy nó, nó liên tục xuất hiện lỗi ở phần này – Hàm SingleCellExtract(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer) và tôi không chắc tại sao bạn có thể

  2. xúc xích

    làm cách nào tôi có thể tra cứu nhiều giá trị trong một ô được phân tách bằng ký hiệu
    danh sách1
    OP512E08,OP513N16
    OP435R74,OP647C84,OP747B38
    OP12F45,OP832J43,OP21P67,OP495G74

    danh sách2
    PRODUCT55,OP513N16,PROODUCT61,OP495G74 ——————————————> 1
    OP512E08,SẢN PHẨM31,SẢN PHẨM48,SẢN PHẨM19,OP513N16 ————————> 2
    PRODUCT43,OP495G74,PRODUCT22,OP747B38,PRODUCT74,PRODUCT23—–> 3

    KẾT QUẢ MONG ĐỢI
    2,1,2
    3
    1,3

    tôi muốn tra cứu về tất cả các phần của list1 trong tất cả list2 nhưng kết quả của mỗi ô nằm trong một ô như kết quả mong đợi
    cảm ơn

  3. LAMIA KIBRIA

    Tôi muốn giới hạn số lượng nhiều giá trị trong danh sách thả xuống excel

  4. Sohail Zamani

    CHÀO,
    Cảm ơn rất nhiều vì mã tuyệt vời này để tìm nạp nhiều giá trị trong một ô và không lặp lại. Nó làm việc hoàn hảo cho tôi
    Vấn đề duy nhất là nó chỉ chạy một lần cho đến khi tệp được mở. Thời điểm tôi mở lại tệp và tính toán lại công thức, nó ngừng hoạt động và không tiếp tục ngay cả sau khi dán lại mã. Tôi cũng đã lưu tệp dưới dạng tệp “Macro-enabled” nhưng nó vẫn không giải quyết được vấn đề
    Bất kỳ trợ giúp về vấn đề này?

    Cảm ơn rất nhiều

  5. Biplab Das

    Khi 2 tiêu chí phù hợp thì trả về nhiều giá trị tra cứu trong một ô được phân tách bằng dấu phẩy
    A2=B2 Sau đó, Kết quả Từ Phạm vi theo “fLookUpMultiple” – Vui lòng……

  6. ParkerM`

    Mã tuyệt vời, mã đầu tiên không hoạt động với tôi, nhưng mã thứ hai đảm bảo không có nhiều giá trị trong kết quả, hoạt động rất tốt. Cảm ơn

  7. Steve

    CHÀO,
    Tôi muốn lấy các giá trị từ nhiều mục được chọn từ danh sách thả xuống (được liệt kê trong cùng một ô, mỗi mục trên một dòng mới) và có các giá trị của từng mục, được liệt kê trong ô tiếp theo, mỗi mục trên một dòng mới
    Điều này có thể không?
    Tôi có thể gửi cho bạn tệp hiện tại của tôi để bạn có thể xem tôi đang làm việc với cái gì không?

    Cảm ơn

  8. Panmania

    CHÀO,

    Cảm ơn rất nhiều cho giải pháp này
    Nhưng liệu có một tùy chọn để nó kiểm tra từng ô trong (không chỉ cột A), chẳng hạn như cột A+B+C và nó sẽ trả về cho tôi giá trị của cột D?

    Cảm ơn,

  9. Người Hà Lan bay

    CHÀO,

    Tôi đã thử sử dụng công thức này và nó hoạt động rất tốt
    Nhưng tôi có một câu hỏi
    Có thể nào không chỉ các giá trị từ collum C sẽ được trả về mà cả các giá trị ví dụ từ Collum D và E không?

    Cảm ơn bạn đã giúp đỡ,

  10. amit

    Tôi đang cố gắng chạy cái này với Địa chỉ email tuy nhiên tôi không nhận được kết quả như đã đề cập. Xin hãy giúp tôi đã cạn kiệt mọi thứ tôi có thể. Tôi đã lưu chính xác như được đề cập trong tài liệu, tuy nhiên, đầu ra cho tôi Lỗi #Value

  11. Brian

    Dù sao để có được kết quả để tổng hợp. TÔI. e. Nếu kết quả là các giá trị, hãy nói 10. 3, 5. 1, 7. 5, tôi muốn nó trả về tổng của các giá trị này, vì vậy 22. 9

  12. A tỳ

    Làm cách nào để thực hiện trên 2 sổ làm việc khác nhau? . Cảm ơn

  13. Biplab Das

    Chỉ có hai cột nhưng tôi có 3 cột thì phải làm thế nào?

  14. sabhajeet kumar

    Xin chào Sumit Thưa ngài, tôi nhận được đăng ký thư excel của bạn và tôi truy cập trang web của bạn thực sự là kiến ​​thức sâu rộng và khái niệm rõ ràng. Và mã này Chức năng MultipleLookupNoRept thực sự tuyệt vời
    Chân thành cảm ơn…

  15. Peter Ndukwe

    Xin chào, tôi muốn biết liệu có thể lồng hàm MultipleLookupNoRept hay không vì hàm này sẽ không hoạt động với các hàm IF mà tôi đã cố gắng sử dụng hàm này. Cảm ơn

  16. julie

    xin chào, ai đó có thể giúp tôi về singlecellextract có thể sử dụng udf này nếu giá trị tra cứu của tôi là một giá trị được phân tách bằng dấu phẩy không?

  17. Raghu

    CHÀO,
    Tôi rất mới với VBA, tôi có một tình huống như sau
    1. Kết nối với DB,
    2. Thực hiện truy vấn (kết quả sẽ là một giá trị cột)
    3. Lưu trữ kết quả truy vấn vào một ô dưới dạng giá trị Danh sách

    Ai có thể vui lòng giúp tôi có được công việc này. Cảm ơn

  18. Dunny

    Điều này hoạt động rất tốt nhưng tôi nghĩ rằng tôi có thể đã gặp phải một hạn chế là nó sẽ không xem xét nhiều hơn khoảng 91.000 hàng để so khớp. Tôi có khoảng 800.000 hàng mà tôi cần cái này để xem qua

  19. JoseJoe

    Cách tạo danh sách thả xuống với nhiều ô tra cứu

  20. Tanya Chatterkee

    Xin chào Sumit,

    Mã VBA của bạn thật tuyệt vời và nó phục vụ rất nhiều cho mục đích của tôi

    Nhưng tôi đang đối mặt với một vấn đề khác cần giải quyết. Xin hãy giúp tôi với mã hóa

    Vấn đề là trong ColumnNumberi mong muốn. e cột kết quả một số ô trống. Vì vậy, mã của bạn đang chấp nhận giá trị trống (có dấu phân cách) cùng với các giá trị khác

    Ví dụ dưới đây sẽ giải quyết vấn đề

    Cột A Cột B Cột A Cột D
    (Người bán hàng) (Sản phẩm) (Nhân viên bán hàng) (Kết quả)
    1 Đồ Chơi Siêu Nhân Đồ Chơi Siêu Nhân, , Văn Phòng Phẩm
    2 Người Nhện Người Nhện , , Đồ Chơi
    3 Văn phòng phẩm Batman Văn phòng phẩm Batman, Đồ chơi, Xà phòng
    4 Tạp hóa Krrish Tạp hóa Krrish, ,Xà bông
    5 siêu nhân
    6 cửa hàng tạp hóa người nhện
    7 đồ chơi người dơi
    8 Krish
    9 Văn Phòng Phẩm Siêu Nhân
    10 đồ chơi người nhện
    11 xà phòng người dơi
    12 Xà Phòng Krish

  21. Gohar

    Mọi người giúp em macro lịch ca của công nhân vận hành làm 2 ca với ạ
    Nó nên chọn người vận hành từ cơ sở dữ liệu và điền vào bảng ca theo chuyên môn của họ trong máy liên quan?

  22. B. SANTHOSH KUMAR

    xuất sắc

  23. siku

    Làm cách nào để tôi làm việc này như một Hlookup?

  24. Craig McDonald

    Chào bạn. Tôi muốn làm một cái gì đó tương tự như thế này. Tôi có một bảng với những người có tên ở hàng 2 và ngày ở cuối cột 2. Tôi muốn có thể tạo danh sách những người nghỉ hàng năm “AL” được phân tách bằng dấu phẩy cho mỗi ngày tương ứng
    Một cái gì đó như thế này
    ngày P1 P2 P3 AL
    1/1 ÂL
    2/1 LUÔN LUÔN P1,P2,P3
    3/1 AL AL ​​P1,P2

    Vì vậy, nó tương tự như mã của bạn, nhưng nhìn dọc theo một hàng, thay vì nhìn xuống một cột

    Cảm ơn

    • Donal

      Chào Craig,
      Bạn có thể làm điều này với một loạt các câu lệnh if trong cột cuối cùng. =If (B2=”AL”,$B$1,””) & If (C2=”AL”,” “&$C$1,””) v.v. Mặc dù sẽ không được phân tách bằng dấu phẩy. Viết trên điện thoại nên thứ lỗi

  25. Sue Retzer

    Tôi cần sử dụng mã này trên một trang tính khác – từ trang tính mà danh sách được tạo trên đó. Tôi cần chỉnh sửa gì để thực hiện điều đó?

    • Creole

      cùng một vấn đề đối với tôi. Tôi cần điều này để làm việc trên một trang tính khác. Bạn có thể tìm ra nó không?

  26. Divya

    Xin chào Sumit,
    Tôi đã tìm thấy nhiều giá trị tra cứu của bạn trong một ô trong diễn đàn của bạn và nó đã giúp tôi rất nhiều
    Bây giờ tôi cần cải thiện điều đó và tôi cần sự giúp đỡ của bạn về điều này

    Chúng tôi đã sử dụng mã cho chỉ một cột hoặc một ô làm tham chiếu tra cứu. Bây giờ tôi cần thêm một cái nữa vào cái này. 2 cột dưới dạng tham chiếu tra cứu s để có kết quả tương tự

    mã của tôi theo mã ví dụ của bạn là dưới đây

    Hàm SingleCellExtractInward(giá trị tra cứu dưới dạng Chuỗi, dải tìm kiếm dưới dạng Phạm vi, Số cột dưới dạng Số nguyên)
    Dim i As Double
    Kết quả mờ1 dưới dạng chuỗi
    Kết quả mờ2 dưới dạng chuỗi
    Nếu Kết quả2 = Trống thì
    Kết quả2 = “không có lượt truy cập gần đây”
    SingleCellExtractInward = Kết quả2
    kết thúc nếu
    Với i = 1 Để tra cứu khoảng. Cột(1). tế bào. Đếm
    Nếu tra cứu. Ô(i, 1) = giá trị tra cứu Sau đó
    Kết quả1 = Kết quả1 & ” ” & phạm vi tra cứu. Ô(i, Số cột) & “,”
    Trích xuất một ô vào trong = Left(Result1, Len(Result 1) – 1)
    kết thúc nếu
    tiếp theo tôi
    chức năng kết thúc

    Bạn có thể vui lòng giúp tôi về mã này để tra cứu 2 cột làm tài liệu tham khảo không. ?

  27. Divya

    Xin chào, tôi đã tìm thấy mã của bạn và nó đã giúp. Tôi có một truy vấn rằng, tôi cần tra cứu thêm một cột với quy trình tương tự. Làm thế nào tôi có thể làm điều đó?

  28. Danny

    Sumit thân mến,
    Có vẻ như đó là thứ tôi đang tìm kiếm, nhưng nó không hoạt động. Tôi gặp lỗi #Name. Tôi đã đặt nó trong trình soạn thảo VB và lưu nó dưới dạng. xslm. Lần đầu tiên sử dụng chức năng trên các trang tính và nghi ngờ đây là sự cố. Sau đó đã thử nó, tôi một tờ với một ví dụ vẫn bị lỗi #Name
    Bất cứ ý tưởng những gì tôi có thể làm sai?

  29. Patrick John Burnett

    Cái này thật tuyệt. Có cách đơn giản nào để mở rộng điều này để tìm kiếm qua nhiều cột không, chẳng hạn, nếu cột D là một danh sách tên khác (đại diện bán hàng 2)?
    Ngoài ra, có cách nào để loại trừ các ô trống không?,Ví dụ: nếu có một tên bị thiếu?

  30. cá nhám trâu

    Cảm ơn vì điều này. Trước đây, tôi đã tìm thấy một thứ tương tự có tên là vlookupall cho kết quả tương tự nhưng khó theo dõi logic bên trong hơn một chút

  31. Chris

    Xin chào, tôi đánh giá cao bài đăng của bạn cho biết cách thực hiện việc này bằng VBA, tuy nhiên tôi tự hỏi liệu có cách nào để thực hiện việc này chỉ bằng các công thức excel không?

  32. Michael Devine

    Xin chào Sumit,
    Macro của bạn thực hiện chính xác những gì tôi yêu cầu nên tôi rất vui khi tìm thấy nó nhưng tôi không thể làm cho nó hoạt động – Tôi mới sử dụng VBA nên có thể chỉ là tôi thôi 🙂

    Tôi đã đưa nó vào bảng tính hỗ trợ macro của mình và mỗi khi nó thực thi đều có lỗi biên dịch, giống như lỗi được Laura đề cập bên dưới

    Lỗi biên dịch
    Lỗi cú pháp

    SingleCellExtract = Left(Result, (Len(Result) – 1))

    Tôi đã thử thay đổi dấu ngoặc nhưng không cải thiện. Có vẻ như nó không thể tìm thấy chức năng đã thêm nhưng tôi chỉ đoán thôi. Bất kỳ đề xuất?

    Nó có thể là một cài đặt cục bộ đối với tôi trên

    • Michael Devine

      ĐÃ SỬA

      Tôi nghĩ rằng tải xuống ví dụ xlsm là tốt nhưng văn bản mã trên bao gồm một số lỗi buồn cười trong cuộc gọi đến

      SingleCellExtract = Left(Result, Len(Result) – 1)

      Có vẻ như có một nhân vật hài hước trong đó sau khi sao chép/dán. Như mình vừa xóa đi gõ tay là ok

      Thực sự hài lòng vì làm chính xác những gì tôi cần

  33. Ashley Williams

    CHÀO. cảm ơn vì vba này – làm cách nào để sửa nó để giá trị vlookup không phân biệt chữ hoa chữ thường? . Nếu tôi sử dụng chữ thường “a”, nó sẽ không tra cứu giá trị. Cảm ơn

    • Sumit Bansal

      Này Ashley. Bạn có thể sử dụng đoạn mã sau cho nó

      Hàm SingleCellExtract(Giá trị tra cứu dưới dạng Chuỗi, Phạm vi tra cứu dưới dạng Phạm vi, Số cột dưới dạng Số nguyên)
      Dim i As Long
      Kết quả mờ dưới dạng chuỗi
      Đối với i = 1 Đến LookupRange. Cột(1). tế bào. Đếm
      Nếu LCase(LookupRange. Cells(i, 1)) = LCase(Lookupvalue) Sau đó
      Kết quả = Kết quả & ” ” & Phạm vi tra cứu. Ô(i, Số cột) & “,”
      kết thúc nếu
      tiếp theo tôi
      SingleCellExtract = Left(Result, Len(Result) – 1)
      chức năng kết thúc

      • Ashley Williams

        CẢM ƠN BẠN RẤT NHIỀU. nó hoạt động

      • Ramachandran N

        Xin chào Sumit, Công việc tuyệt vời, tôi đang tìm kiếm chính xác cái này. tôi không nhận được giá trị với ô có dấu vết cụ thể. Vui lòng giúp đỡ làm thế nào chúng tôi có thể có được tế bào có vết chích đặc biệt. làm ơn giúp đỡ

        Ví dụ

        https. // tải lên. disquscdn. com/hình ảnh/72b430f0123fb5f1ca1275477c73ded853c901e314ec1f7da59821b316c02e9d. jpg

      • lokesh dixit

        xin chào,

        Chúng tôi có thể lấy mã để đảo ngược chức năng này không. Tôi có nhiều HCode như H310, H302, v.v. trong một cột & câu lệnh ăn mòn trong một cột khác như ăn mòn đối với hai mã này. Tôi có thể lấy mã để thực hiện v tra cứu các mã h khác nhau trong cùng một ô không
        Lokesh

  34. Mohan Kumar

    làm ơn tải nó lên lại càng sớm càng tốt vì tôi cần nó

    • Sumit Bansal

      Chào. Xin lỗi vì thiếu tập tin. tôi đã tải nó lên

  35. Mohan Kumar

    xin ngài tải lên tệp excel về chủ đề này vì không tìm thấy bảng excel này

  36. Laura

    Tôi tự hỏi nếu có ai vẫn sẽ trả lời chủ đề này…

    Tôi đang cố gắng sử dụng macro này, nhưng tôi gặp lỗi bên dưới

    Lỗi biên dịch
    Lỗi cú pháp

    và nó làm nổi bật phần bên dưới, vì nó bị kẹt ở bước
    SingleCellExtract = Left(Result, Len(Result) – 1)

    Dữ liệu của tôi là 3 cột, công thức của tôi như sau
    =SingleCellExtract(E3,$A. $C,3)

    E3 là giá trị (một số) tôi muốn nó tìm thấy trong phạm vi
    $A. $C là phạm vi
    3 là cột thứ 3 mà tôi muốn công thức tìm kiếm để lấy ra kết quả (kết quả là văn bản)

    Tôi đang làm gì sai?

    • Sumit Bansal

      Xin chào Laura. Sẽ thật tuyệt nếu bạn có thể chia sẻ tệp với tôi. Bạn có thể gửi nó tại sumit bansal@trumpexcel. com

      • Đê

        Thực ra, tôi cũng gặp vấn đề tương tự, ngay cả khi sao chép các ô của bạn vào sổ làm việc của tôi. Làm thế nào bạn giải quyết nó?
        Chúc mừng,
        Đê

    • John B

      Tôi không chắc liệu có ai vẫn đang kiểm tra chủ đề này hay không, nhưng bằng cách thử và sai, tôi đã có thể làm cho nó hoạt động bằng cách thêm một số dấu ngoặc đơn xung quanh hàm Len
      SingleCellExtract = Left(Result, (Len(Result) – 1))
      Không chắc tại sao VBA thích nó theo cách đó bây giờ, nhưng có vẻ như nó hoạt động

      • T E

        Điều này làm việc hoàn hảo. Cảm ơn vì tiền boa

    • pháo hoa

      Nó không phải là một dấu ngoặc đóng bổ sung. Ký tự “trừ”, ở đây, là ký tự sai. Nếu bạn sao chép và dán từ blog này, thì đó thực sự là ký tự có dấu gạch ngang. Đơn giản chỉ cần thay thế nó bằng dấu trừ char

  37. thính giả

    Xin chào Sumit,

    Một ý tưởng tuyệt vời khác từ bạn. Mã được tối ưu hóa và các tùy chọn được tích hợp

    Hàm công khai fLookUpMultiple(ByRef LookUpValue dưới dạng Chuỗi, _
    ByRef LookUpRange dưới dạng Excel. Phạm vi, _
    ByRef ColumnNumber As Long, _
    Tùy chọn ByRef bUnique As Boolean = True) As String ‘Biến thể

    'Nhận tất cả các giá trị từ danh sách khớp với giá trị cụ thể

    Dim lgRow As Long
    Dim strFilter dưới dạng chuỗi
    Dim lgElement As Long

    Đối với lgRow = 1 Đến LookUpRange. Cột(1). tế bào. Đếm
    Nếu bUnique Then
    Nếu LookUpRange. Ô(lgRow, 1). Giá trị2 = LookUpValue Sau đó
    Đối với lgElement = 1 Đến lgRow – 1
    Nếu LookUpRange. Ô(lgElement, 1). Giá trị2 = LookUpValue Sau đó
    Nếu LookUpRange. Ô(lgElement, ColumnNumber). Giá trị2 = Phạm vi tra cứu. Ô(lgRow, ColumnNumber). Value2 Sau đó GoTo Bỏ qua
    kết thúc nếu
    lgElement tiếp theo

    strFilter = strFilter & ” ” & LookUpRange. Ô(lgRow, ColumnNumber) & “,”

    Nhảy
    kết thúc nếu
    Khác
    Nếu LookUpRange. Ô(lgRow, 1). Value2 = LookUpValue Sau đó strFilter = strFilter & ” ” & LookUpRange. Ô(lgRow, ColumnNumber). Giá trị2 & “,”
    kết thúc nếu
    lgRow tiếp theo

    'Xóa cuối cùng',
    fLookUpMultiple = VBA. Trái(strFilter, VBA. Len(strFilter) – 1)

    chức năng kết thúc

  38. Joe Cuce

    tôi có một câu hỏi. Tên sinh viên có ID và nhóm Lớp. Cách lấy danh sách và sử dụng hộp tổ hợp – chọn lớp và tên xuất hiện trên một trang tính khác với ID và tên lớp

    • Sumit Bansal

      Chào joe. Hãy xem cái này – http. // trumpexcel. com/2013/07/extract-data-from-drop-down-list/

      Nó thực hiện những gì bạn đang tìm kiếm và sử dụng trình đơn thả xuống xác thực dữ liệu thay vì hộp tổ hợp. Nhưng nó cũng có thể dễ dàng sao chép cho hộp tổ hợp. Hi vọng điêu nay co ich

      Làm cách nào để sử dụng VLOOKUP để trả về nhiều giá trị trong một ô Google Trang tính?

      Trong Google Trang tính, VLOOKUP không thể trả về nhiều giá trị từ cùng một hàng. Sử dụng LỌC thay thế . Giá trị được trả về từ công thức. Mảng hoặc phạm vi được lọc.

      Làm cách nào để trả về nhiều giá trị tra cứu trong một ô được phân tách bằng dấu phẩy?

      Trả về nhiều giá trị tra cứu trong một ô được phân tách bằng dấu phẩy với Kutools for Excel .
      Chọn phạm vi dữ liệu mà bạn muốn kết hợp tất cả các giá trị phù hợp dựa trên một cột
      Nhấp chuột Kutools > Hợp nhất & Tách > Hàng kết hợp nâng cao, xem ảnh chụp màn hình