Tôi đề nghị một giải pháp đòi hỏi một chút VBA.
Trong ví dụ này, dữ liệu mẫu nằm trong B2: C10.
Để lại E1 làm ô tiêu đề và trong E2 đặt công thức sau và nhấn CTRL + SHIFT + ENTER từ trong thanh công thức để tạo Công thức mảng. Công thức bây giờ sẽ được đặt trong dấu ngoặc nhọn để chỉ ra rằng đó là một công thức mảng.
=IFERROR(INDEX($B$2:$B$10, MATCH(0, COUNTIF(E$1:$E1, $B$2:$B$10), 0),1),"")
Kéo cái này xuống cho đến khi bạn có khoảng trống. Điều này đầu tiên tạo ra một danh sách các giá trị duy nhất từ nhóm tại B2: B10. Lưu ý rằng bất cứ nơi nào bạn đặt công thức này, ít nhất một ô phía trên nó sẽ có sẵn để được tham chiếu. E1 trong trường hợp này là công thức bắt đầu trong E2.
Chúng ta sẽ sử dụng một Hàm gọi là TEXTJOIN. Tuy nhiên, trong hầu hết các phiên bản Excel, điều này không có sẵn. Bạn có thể có nó trong trường hợp bạn đang sử dụng phiên bản Office 365 của Excel 2016. Nếu không có sẵn, hãy sử dụng bên dưới UDF (Hàm xác định người dùng) trong VBA để sao chép cùng chức năng.
Nhấn ALT + F11 để truy cập VBA Editor. Chèn một mô-đun từ Menu Chèn. Đặt UDF sau vào nó.
Function TEXTJOIN1(delimiter As String, ignore_empty As Boolean, ParamArray cell_ar() As Variant)
For Each cellrng In cell_ar
For Each cell In cellrng
If ignore_empty = False Then
result = result & cell & delimiter
Else
If cell <> "" Then
result = result & cell & delimiter
End If
End If
Next cell
Next cellrng
TEXTJOIN1 = Left(result, Len(result) - Len(delimiter))
End Function
Bây giờ trở lại Bảng tính Excel, chúng ta sẽ sử dụng hàm này làm UDF trong công thức.
Trong F2, đặt công thức sau và nhấn CTRL + SHIFT + ENTER để tạo Công thức mảng.
=IFERROR(TEXTJOIN1(CHAR(10),TRUE,IF($B$2:$B$10=E2,$C$2:$C$10,"")),"")
Kéo nó xuống cho đến khi hàng dự định. Đợi đã, điều này tạo ra một danh sách các tên theo nhóm được ghép bởi Char (10) nhưng để thấy hiệu ứng phù hợp, bạn cần bật Wrap Text trên các ô dự định.
Bạn có thể thực hiện thủ công từ Tùy chọn ô định dạng trong Excel hoặc bạn có thể sử dụng Macro đơn giản dưới đây để làm điều đó cho bạn. Chỉ cần xác định Phạm vi trong đầu. Trong ví dụ này, đó là E2: F4.
Nhấn ALT + F11 để truy cập VBA Editor. Chèn một mô-đun từ Menu Chèn và qua đoạn mã sau vào nó. Điều này tạo ra một Macro có tên Format1
Định dạng phụ1 ()
Range("E2:F4").Select
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlTop
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub
Quay lại trang tính Excel Nhấn ALT + F8 để truy cập hộp thoại Macro và Chạy Format1.
Kiểm tra giải pháp này vào cuối của bạn và cho tôi biết trong trường hợp có bất kỳ vấn đề.