Note: The other languages of the website are Google-translated. Back to English

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?

Trong Excel, chúng ta có thể áp dụng hàm Vlookup để trả về giá trị phù hợp đầu tiên từ một ô trong bảng, nhưng đôi khi, chúng ta cần trích xuất tất cả các giá trị phù hợp và sau đó được phân tách bằng dấu phân cách cụ thể, chẳng hạn như dấu phẩy, dấu gạch ngang, v.v. thành một ô như ảnh chụp màn hình sau được hiển thị. Làm cách nào chúng ta có thể lấy và trả về nhiều giá trị tra cứu trong một ô được phân tách bằng dấu phẩy trong Excel?

doc trả về nhiều giá trị được phân tách bằng dấu phẩy 1

Trả lại nhiều giá trị tra cứu trong một ô được phân tách bằng dấu phẩy với Hàm do người dùng xác định

Trả lại nhiều giá trị tra cứu trong một ô được phân tách bằng dấu phẩy với Kutools cho Excel


Trả lại nhiều giá trị tra cứu trong một ô được phân tách bằng dấu phẩy với Hàm do người dùng xác định

Thông thường, không có cách nào trực tiếp để chúng tôi trích xuất và trả về nhiều giá trị khớp và được phân tách bằng dấu phẩy vào một ô, tại đây, bạn có thể tạo một Hàm do người dùng xác định để giải quyết công việc này, vui lòng làm như sau:

1. Giữ ALT + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Mô-đun Cửa sổ.

Mã VBA: Trả lại nhiều giá trị tra cứu vào một ô được phân tách bằng dấu phẩy

Function SingleCellExtract(LookupValue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
'Updateby Extendoffice
    Dim I As Long
    Dim xRet As String
    For I = 1 To LookupRange.Columns(1).Cells.Count
        If LookupRange.Cells(I, 1) = LookupValue Then
            If xRet = "" Then
                xRet = LookupRange.Cells(I, ColumnNumber) & Char
            Else
                xRet = xRet & "" & LookupRange.Cells(I, ColumnNumber) & Char
            End If
        End If
    Next
    SingleCellExtract = Left(xRet, Len(xRet) - 1)
End Function

3. Sau đó, lưu mã này và đóng cửa sổ Mô-đun, quay lại trang tính của bạn và nhập công thức này: = SingleCellExtract (D2, A2: B15,2, ",") vào một ô trống mà bạn muốn trả về kết quả. Và sau đó nhấn đăng ký hạng mục thi để lấy kết quả, xem ảnh chụp màn hình:

doc trả về nhiều giá trị được phân tách bằng dấu phẩy 2

Chú thích: Trong công thức trên:

D2: cho biết các giá trị ô mà bạn muốn tra cứu;

A2: B15: là phạm vi dữ liệu mà bạn muốn tìm nạp dữ liệu;

2: số 2 là số cột mà giá trị khớp sẽ được trả về;

,: dấu phẩy là dấu phân cách mà bạn muốn phân tách nhiều giá trị.

Bạn có thể thay đổi chúng theo nhu cầu của bạn.


Trả lại nhiều giá trị tra cứu trong một ô được phân tách bằng dấu phẩy với Kutools cho Excel

Nếu bạn có Kutools cho Excel, nhiệm vụ này sẽ không còn là một vấn đề. Các Các hàng kết hợp nâng cao tiện ích có thể giúp bạn kết hợp tất cả các giá trị tương đối dựa trên một cột.

Kutools cho Excel : với hơn 300 bổ trợ Excel tiện dụng, dùng thử miễn phí không giới hạn trong 30 ngày

Sau khi cài đặt Kutools cho Excel, vui lòng làm như sau:

1. 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.

2. Nhấp chuột Kutools > Hợp nhất & Tách > Các hàng kết hợp nâng cao, xem ảnh chụp màn hình:

3. Trong Kết hợp các hàng dựa trên cột hộp thoại, bấm vào tên cột mà bạn muốn kết hợp dựa trên, sau đó bấm Khóa chính nút, xem ảnh chụp màn hình:

doc trả về nhiều giá trị được phân tách bằng dấu phẩy 4

4. Sau đó nhấp vào tên cột khác mà bạn muốn kết hợp các giá trị phù hợp của chúng và nhấp vào Kết hợp để chọn một dấu phân tách để tách các giá trị kết hợp, hãy xem ảnh chụp màn hình:

doc trả về nhiều giá trị được phân tách bằng dấu phẩy 5

5. Sau đó nhấn vào OK , tất cả các ô tương ứng có cùng giá trị đã được kết hợp thành một ô được phân tách bằng dấu phẩy, xem ảnh chụp màn hình:

doc trả về nhiều giá trị được phân tách bằng dấu phẩy 6 2 doc trả về nhiều giá trị được phân tách bằng dấu phẩy 7

Nhấp để biết thêm chi tiết về tiện ích Hàng Kết hợp Nâng cao này…

Tải xuống và dùng thử miễn phí Kutools cho Excel ngay!


Demo: Trả lại nhiều giá trị tra cứu trong một ô được phân tách bằng dấu phẩy với Kutools cho Excel

Kutools cho Excel: với hơn 300 bổ trợ Excel tiện dụng, dùng thử miễn phí không giới hạn trong 30 ngày. Tải xuống và dùng thử miễn phí ngay!

Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (16)
Xếp hạng 5 trong 5 · xếp hạng 2
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Trong khi tôi định dán và lưu mô-đun, thì có một thông báo bật lên xuất hiện rằng trình kiểm tra tính tương thích chức năng bị mất đáng kể
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn cho bài viết này. Bạn có biết tôi sẽ làm thế nào về thao tác với hai số nguyên riêng biệt mà điều này đang tạo ra không. Ví dụ, giả sử rằng hàm '= SingleCellExtract' hiện tạo ra (1, 2). Có cách nào để có một ô bên cạnh nó không (1 + .5, 2 + .5)?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này hoạt động nhưng làm chậm quá trình xuất sắc của tôi đáng kể! Bất kỳ lời khuyên để giúp tăng tốc độ?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này chỉ đơn giản là không hoạt động. Tôi không thể làm cho nó hoạt động trong ứng dụng của riêng mình, vì vậy tôi sao chép / dán vba và công thức và nó trả về lỗi mỗi lần
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
cảm ơn bạn, trước tiên tôi đã quản lý để làm cho điều này hoạt động mà không làm chậm hiệu suất. Tôi đang sử dụng các giá trị thay vì văn bản đó, vì vậy câu hỏi của tôi là tôi muốn lấy lại tất cả những người có ít hơn 19 điểm trong danh sách. Trích xuất ô đơn có thể hoạt động cho điều đó hay nó phải là một giá trị cụ thể?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Lệnh VB ngắt khi phạm vi dài hơn 154 hàng (tức là: B154) ....
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Lỗi bật lên nếu tăng kích thước mảng
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Khi 2 tiêu chí đối sánh 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 bằng "SingleCellExtract" - Vui lòng .......
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Good Morning,

mã VBA hoạt động hoàn hảo với trang tính của tôi, khá rõ ràng và đơn giản, tuy nhiên, tôi đang cố gắng tìm cách yêu cầu excel chỉ trả về các giá trị duy nhất. Điều đó có thể thực hiện được bằng cách sử dụng cùng một mã này không?
Xếp hạng 5 trong 5
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

Tôi muốn mã xác thực chính xác cho nhiều giá trị được phân tách bằng dấu phẩy và dấu cách cho mỗi giá trị.

Ví dụ:
Lucy, Tom, Nicol, Akash, Táo

Vui lòng phát lại nếu bạn có bất kỳ đề xuất nào.
Xếp hạng 4.5 trong 5
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào , Manikanta
Để phân tách nhiều giá trị bằng dấu phẩy và dấu cách, bạn chỉ cần thêm dấu cách phía sau dấu phẩy, thay đổi công thức như sau: = SingleCellExtract (D2, A2: B15,2, ",").
Hãy cố gắng, hy vọng nó có thể giúp bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Skyyang,

Cảm ơn bạn đã phát lại!

Tôi đã thử theo cách tương tự nhưng trong giá trị ô cuối cùng có thêm một dấu phẩy (,) dưới đây là ví dụ.

Lucy, Tom, Nicol, Akash, Apple,

Điều này sẽ không hoạt động đối với tệp Json, vì vậy tôi muốn các giá trị được phân tách bằng dấu phẩy và dấu cách như bên dưới.

Lucy, Tom, Nicol, Akash, Táo

Cảm ơn bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Manikanta
Trong trường hợp này, bạn có thể áp dụng Chức năng do Người dùng Xác định bên dưới:

Function MultipleValues(work_range As Range, criteria As Variant, merge_range As Range, Optional Separator As String = ",") As Variant
Dim outcome As String
On Error Resume Next
If work_range.Count <> merge_range.Count Then
MultipleValues = CVErr(xlErrRef)
Exit Function
End If
For i = 1 To work_range.Count
If work_range.Cells(i).Value = criteria Then
outcome = outcome & Separator & merge_range.Cells(i).Value
End If
Next i
If outcome <> "" Then
outcome = VBA.Mid(outcome, VBA.Len(Separator) + 1)
End If
MultipleValues = outcome
Exit Function
End Function


Sau khi dán mã, vui lòng sử dụng công thức này: =MultipleValues($A$2:$A$15,D2,$B$2:$B$15,", ")

Hãy cố gắng, hy vọng điều này có thể giúp bạn!
Nếu bạn còn vấn đề gì khác, hãy bình luận tại đây.
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-return-multiple-matching-1.png
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Skyyang,

Tính năng này hiện đang hoạt động, Cảm ơn bạn đã phản hồi nhanh chóng.

Nó rất hữu ích với tôi một lần nữa Cảm ơn bạn đã giúp đỡ.

Trân trọng,
Manikanta.
Xếp hạng 5 trong 5
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Không lập trình đậu nành pero necesito ayuda para que la función de abajo en lugar de devolverme esto

S-01-08-0017->Trụ cực nhỏ 1R, Đen, Thép không gỉ -Đầu,->4;S-01-08-0057->Trích cực nhỏ 2R, Đen, Thép không gỉ -Đầu,->2

me devuelva los valores en líneas differentes.
S-01-08-0017->Micro Post 1R, Đen, Thép không gỉ -End,->4
S-01-08-0057->Micro Post 2R, Đen, Thép không gỉ -End,->2

Chức năng là:
Hàm SingleCellExtract(Giá trị tra cứu dưới dạng chuỗi, phạm vi tra cứu dưới dạng dải ô, số cột dưới dạng số nguyên, ký tự dưới dạng chuỗi)
'Cập nhật bởi Extendoffice
Dim I As Long
Dim xRet dưới dạng chuỗi
Đối với I = 1 To LookupRange.Columns(1).Cells.Count
Nếu LookupRange.Cells(I, 1) = LookupValue Thì
Nếu xRet = "" Thì
xRet = LookupRange.Cells(I, ColumnNumber) & Char
Khác
xRet = xRet & "" & LookupRange.Cells(I, ColumnNumber) & Char
Cuối Nếu
Cuối Nếu
Sau
SingleCellExtract = Left(xRet, Len(xRet) - 1)
Cuối Chức năng
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Yery,
Ý của bạn là chia một ô thành nhiều hàng dựa trên ký tự dấu chấm phẩy phải không?
Nếu vậy, mã VBA sau đây có thể giúp bạn:
Sub SplitAll()
    Dim xRg As Range
    Dim xRg1 As Range
    Dim xCell As Range
    Dim I As Long
    Dim xAddress As String
    Dim xUpdate As Boolean
    Dim xRet As Variant
    On Error Resume Next
    xAddress = Application.ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select a range", "Kutools for Excel", xAddress, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
        If xRg.Columns.Count > 1 Then
            MsgBox "You can't select multiple columns", , "Kutools for Excel"
            Exit Sub
            End If
            Set xRg1 = Application.InputBox("Split to (single cell):", "Kutools for Excel", , , , , , 8)
            Set xRg1 = xRg1.Range("A1")
            If xRg1 Is Nothing Then Exit Sub
                xUpdate = Application.ScreenUpdating
                Application.ScreenUpdating = False
                For Each xCell In xRg
                    xRet = Split(xCell.Value, ";")
                    xRg1.Worksheet.Range(xRg1.Offset(I, 0), xRg1.Offset(I + UBound(xRet, 1), 0)) = Application.WorksheetFunction.Transpose(xRet)
                    I = I + UBound(xRet, 1) + 1
                Next
                Application.ScreenUpdating = xUpdate
            End Sub

Xin vui lòng có một thử, hy vọng nó có thể giúp bạn!
Không có bình luận nào được đăng ở đây
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL