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

Làm cách nào để nối các ô nếu tồn tại cùng một giá trị trong một cột khác trong Excel?

kết hợp nếu giống nhau

Như ảnh chụp màn hình bên trái được hiển thị, giả sử bạn cần nối các ô trong cột thứ hai dựa trên các ô có cùng giá trị trong cột đầu tiên. Làm thế nào bạn có thể đạt được nó?

Trong bài viết này, chúng tôi sẽ giới thiệu ba phương pháp giúp bạn đạt được điều đó.

Nối các ô nếu có cùng giá trị với công thức và bộ lọc

Nối các ô nếu có cùng giá trị với mã VBA
Dễ dàng nối các ô nếu có cùng giá trị với Kutools cho Excel


Nối các ô nếu có cùng giá trị với công thức và bộ lọc

Với các công thức dưới đây, bạn có thể nối nội dung ô tương ứng nếu một cột khác chứa cùng giá trị trong Excel.

1. Chọn một ô trống bên cạnh cột thứ hai (ở đây chúng tôi chọn ô C2), nhập công thức = IF (A2 <> A1, B2, C1 & "," & B2) vào thanh công thức, rồi nhấn đăng ký hạng mục thi Chìa khóa.

2. Sau đó chọn ô C2 và kéo Fill Handle xuống các ô bạn cần nối.

3. Nhập công thức = IF (A2 <> A3, CONCATENATE (A2, "," "", C2, "" ""), "") vào ô D2 và kéo Fill Handle xuống các ô còn lại.

4. Chọn ô D1 và nhấp vào Ngày > Lọc. Xem ảnh chụp màn hình:

5. Nhấp vào mũi tên thả xuống trong ô D1, bỏ chọn (Khoảng trống) và sau đó bấm vào OK .

Bạn có thể thấy các ô được nối với nhau nếu giá trị cột đầu tiên giống nhau.

Chú thích: Để sử dụng thành công các công thức trên, các giá trị giống nhau trong cột A phải liên tục.


Dễ dàng kết hợp các ô trong một cột nếu tồn tại cùng một giá trị trong một cột khác:

Với Kutools cho Excel's Các hàng kết hợp nâng cao tiện ích, bạn có thể dễ dàng kết hợp các ô trong một cột nếu cùng một giá trị thoát ra trong các cột khác trong Excel như hình minh họa bên dưới. Tải xuống Kutools cho Excel ngay bây giờ! (30-ngày đường mòn miễn phí)

tranh chấp của cùng một


Nối các ô nếu có cùng giá trị với mã VBA

Bên cạnh công thức, trong phần này, chúng tôi sẽ hướng dẫn bạn cách sử dụng mã VBA để nối các ô nếu có cùng giá trị.

1. nhấn Khác + F11 phím để mở Ứng dụng Microsoft Visual Basic cửa sổ.

2. bên trong Ứng dụng Microsoft Visual Basic cửa sổ, nhấp Chèn > Mô-đun. Sau đó sao chép và dán mã bên dưới vào Mô-đun cửa sổ.

Mã VBA: nối các ô nếu cùng giá trị

Sub ConcatenateCellsIfSameValues()
	Dim xCol As New Collection
	Dim xSrc As Variant
	Dim xRes() As Variant
	Dim I As Long
	Dim J As Long
	Dim xRg As Range
	xSrc    = Range("A1", Cells(Rows.Count, "A").End(xlUp)).Resize(, 2)
	Set xRg = Range("D1")
	On Error Resume Next
	For I = 2 To UBound(xSrc)
		xCol.Add xSrc(I, 1), TypeName(xSrc(I, 1)) & CStr(xSrc(I, 1))
	Next I
	On Error GoTo 0
	ReDim xRes(1 To xCol.Count + 1, 1 To 2)
	xRes(1, 1) = "No"
	xRes(1, 2) = "Combined Color"
	For I = 1 To xCol.Count
		xRes(I + 1, 1) = xCol(I)
		For J = 2 To UBound(xSrc)
			If xSrc(J, 1) = xRes(I + 1, 1) Then
				xRes(I + 1, 2) = xRes(I + 1, 2) & ", " & xSrc(J, 2)
			End If
		Next J
		xRes(I + 1, 2) = Mid(xRes(I + 1, 2), 2)
	Next I
	Set xRg = xRg.Resize(UBound(xRes, 1), UBound(xRes, 2))
	xRg.NumberFormat = "@"
	xRg = xRes
	xRg.EntireColumn.AutoFit
End Sub

Chú ý:

1. D1 phù Đặt xRg = Range ("D1") nghĩa là kết quả sẽ được đặt trong ô D1.

2. Không và Màu kết hợp phù xRes (1, 1) = "Không" và xRes (1, 2) = "Màu kết hợp" là tiêu đề của các cột được nối. Bạn có thể thay đổi chúng khi bạn cần.

3. Nhấn nút F5 để chạy mã, sau đó bạn sẽ nhận được các kết quả được nối trong phạm vi được chỉ định.


Dễ dàng nối các ô nếu có cùng giá trị với Kutools cho Excel (vài cú nhấp chuột)

Nếu hai phương pháp trên phức tạp với bạn, thì ở đây chúng tôi sẽ chỉ cho bạn Các hàng kết hợp nâng cao tiện ích của Kutools cho Excel Bạn có thể dễ dàng nối các ô bằng dấu phẩy, dấu chấm phẩy, v.v. nếu các giá trị giống nhau tồn tại trong cột khác.

Trước khi áp dụng Kutools cho Excel, Xin vui lòng tải xuống và cài đặt nó trước tiên.

1. Chọn phạm vi có các ô bạn cần nối, sau đó nhấp vào 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:

2. bên trong Các hàng kết hợp nâng cao hộp thoại, bạn cần làm như sau.

  • 2.1) Chọn cột có cùng giá trị mà bạn muốn nối các ô dựa trên, sau đó bấm vào Khóa chính .
  • 2.2) Chọn cột bạn muốn nối các ô, nhấp vào Kết hợp và sau đó chỉ định dấu phân tách khỏi menu ngữ cảnh (ở đây tôi chỉ định Dấu phẩy).
  • 2.3) Nhấp vào OK .

Bây giờ các ô được nối theo cột khóa chính.

  Nếu bạn muốn dùng thử miễn phí (30-day) của tiện ích này, vui lòng nhấp để tải xuống, và sau đó đi đến áp dụng hoạt động theo các bước trên.


Dễ dàng nối các ô nếu có cùng giá trị với Kutools cho Excel


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 (18)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Dường như không thể nối với nhiều hơn 2 ô bằng công thức và bộ lọc
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm thế nào tôi có thể hợp nhất các cụm từ có cùng tên, ví dụ: Cột một đọc Kenya trong suốt và cột 2 đọc phía Tây, Nyanza (xuất hiện hơn mười lần) và cột 3 là ba tên của các quận. Tôi muốn biết chúng ta có các huyện ở mỗi tỉnh như thế nào nhưng vẫn giữ nguyên các cột.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Geoffrey thân mến,

Vui lòng thử tiện ích Dòng Kết hợp Nâng cao mà chúng tôi đã đề cập trong phương pháp hai ở trên. Nếu bạn muốn giữ lại các cột, vui lòng tạo một bản sao của dải ô gốc và thực hiện mọi thứ trong dải ô đã sao chép.

Chỉ định cột tỉnh làm Khóa chính, đặt Cột 1 là Giữ đầu tiên, sau đó đặt cột huyện là Tính> Đếm.

Sau đó, bạn sẽ biết bạn có bao nhiêu huyện trong mỗi tỉnh.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tính năng nối không hoạt động. Kết hợp tất cả các hàng thành một ô bất chấp các khóa khác nhau.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Marissa thân mến,
Xin lỗi, tôi không chắc tôi đã nhận được câu hỏi của bạn. Có ba phương pháp trong bài viết, ý bạn là tính năng nối nào?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi rất biết ơn bạn vì những công thức này. Công việc thú vị!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đây chính xác là những gì tôi cần ... 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
Sử dụng macro VBA và nhận được kết quả tuyệt vời, tôi đã thử điều chỉnh nó một chút cho nhu cầu của mình nhưng không thể hoạt động được, mong bạn có thể giúp đỡ.

Tôi thay đổi bit nào để làm cho nó nối với một cột cụ thể, không phải là cột trực tiếp ở bên phải của dãy xSrc =?

Cảm ơn cho công việc tuyệt vời của 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
Hoặc là một lựa chọn tốt hơn, nếu bạn có 3 cột thay vì 2 và tìm thấy các bản sao trong cột A (như ví dụ của bạn), bạn có thể nối cột B vào một ô và cột C thành một ô riêng biệt không? Vì vậy, nếu bạn có các cột Số, Màu, Tuổi, bạn có thể ghép màu và tuổi vào các cột khác nhau khi tìm thấy các bản sao trong Số không? Hy vọng điều đó có ý nghĩa!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi sử dụng VBA này cho rất nhiều bảng tính của mình và nó rất tuyệt. Nhưng các bảng tính đã trở nên rất lớn hơn 50k hàng và dường như nó không còn hoạt động nữa. Nếu tôi sử dụng nó trên 1000 hàng, nó hoạt động tốt nhưng bộ dữ liệu lớn thì nó dường như không thể đối phó được. Không có lỗi chỉ là không có kết quả. Bất kỳ trợ giúp sẽ được đánh giá cao.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hi James,
Tôi đã kiểm tra mã như bạn đã đề cập, nhưng nó vẫn hoạt động tốt trong trường hợp của tôi ngay cả khi tôi đặt các hàng thành 1000+.
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,

Có vẻ như 2 trong số các công thức của bạn bị sai:

= IF (A2 <> A3, CONCATENATE (A2, "," "", C2, "" ""), ""). Bạn cần thay đổi "A2" thành "D1". Vì bạn sẽ muốn thêm chuỗi vào ô trước đó.

tương tự với công thức này:

= IF (A2 <> A1, B2, C1 & "," & B2): Thay đổi C1 thành D1.


Trân trọng


Harry
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, trước hết cảm ơn bạn đã tạo tài nguyên này. Tôi đã cố gắng tìm ra điều này trong vài giờ và tôi bị mắc kẹt. Tôi đang sử dụng 'nối các ô nếu cùng một giá trị' nhưng tập lệnh của tôi đang nhìn vào cột "D" thay vì "A. Tôi không thể tìm ra cách làm cho nó sử dụng một cột khác cho dữ liệu bên cạnh cột ngay bên cạnh với nó. Trong trường hợp của tôi, tôi muốn nó nhìn vào cột "D" để xem giá trị có giống nhau không và nếu có, nó sẽ lấy dữ liệu từ cột "H" và đưa dữ liệu đó từ cột "H" vào một ô trong cột "J". Làm cách nào để chuyển cột này sang sử dụng cột "H" cho dữ liệu? Cám ơn


Sub ConcatenateCellsIfSameValues ​​()
Dim xCol làm bộ sưu tập mới
Dim xSrc dưới dạng biến thể
Dim xRes () As Variant
Dim I As Long
Dim J As Long
Dim xRg theo phạm vi
xSrc = Range ("D1", Cells (Rows.Count, "D"). End (xlUp)). Thay đổi kích thước (, 2)
Đặt xRg = Range ("J1")
On Error Resume Next
Đối với I = 2 đến UBound (xSrc)
xCol.Add xSrc (I, 1), TypeName (xSrc (I, 1)) & CStr (xSrc (I, 1))
Tiếp theo tôi
Về lỗi GoTo 0
ReDim xRes (1 Đến xCol.Count + 1, 1 đến 2)
xRes (1, 1) = "Không"
xRes (1, 2) = "Sản phẩm"
Đối với I = 1 Đến xCol.Count
xRes (I + 1, 1) = xCol (I)
Đối với J = 2 đến UBound (xSrc)
Nếu xSrc (J, 1) = xRes (I + 1, 1) Thì
xRes (I + 1, 2) = xRes (I + 1, 2) & vbCrLf & xSrc (J, 2)
Cuối Nếu
Tiếp theo J
xRes (I + 1, 2) = Mid (xRes (I + 1, 2), 2)
Tiếp theo tôi
Đặt xRg = xRg.Resize (UBound (xRes, 1), UBound (xRes, 2))
xRg.NumberFormat = "@"
xRg = xRes
xRg.EntireColumn.AutoFit
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
"Tôi không thể tìm ra cách làm cho nó sử dụng một cột khác cho dữ liệu ngoài cột ngay bên cạnh nó. Trong trường hợp của tôi, tôi muốn nó nhìn vào cột 'D' để xem giá trị có giống nhau không và nếu vì vậy, nó sẽ lấy dữ liệu từ cột "H" và đưa dữ liệu đó từ cột "H" vào một ô trong cột "J". "

Bạn đã bao giờ con số này ra?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi chỉ muốn cảm ơn bạn. Đó không phải là chính xác những gì tôi muốn nhưng con người đã giúp tôi tìm ra những gì phải làm.

Tôi có một bảng trong đó tên của người đó ở cột A, ngày tháng ở cột B và tên của các công cụ họ sử dụng trong tiêu đề của cột C: G. Trong mỗi cột có một "Y" nếu họ đã sử dụng công cụ đó vào ngày đó và để trống nếu họ không sử dụng. (FYI: cùng một người có thể được liệt kê nhiều lần và có thể đã sử dụng cùng một công cụ nhiều hơn một lần) Trên một trang riêng biệt (tóm tắt), tôi muốn liệt kê tất cả các công cụ mà mỗi người đã sử dụng trong một khoảng thời gian, chỉ liệt kê mỗi công cụ họ đã sử dụng một lần, trong cùng một ô. Trên trang này, tên của người đó nằm trong cột A, Các loại công cụ được sử dụng trong cột B và các cột trợ giúp nằm trong cột G: K. Đây là những gì tôi nhận được:
Cột trợ giúp đầu tiên (G2):
=IF(COUNTIFS(Table7[Person's Name],A2,Table7[Screw Driver],"Y",Table7[Date],">="&1/1/20,Table7[Date],"<="&3/31/20),"Screw Driver","")
Trong cột trợ giúp cuối cùng (K2):
=IF(COUNTIFS(Table7[Person's Name],A2,Table7[Hammer],"Y",Table7[Date],">="&1/1/20,Table7[Date],"<="&3/31/20),IF(J2="","Hammer",J2&"/"&"Hammer"),J2)

Trong B2 tôi vừa nhập = K2

Cảm ơn một lần nữa và tôi hy vọng điều này sẽ giúp ai đó. EZPD
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, mã VBA sẽ được điều chỉnh như thế nào nếu tôi muốn kết hợp các ô trong cột M dựa trên các bản sao trong cột A?
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 Kristin, Để kết hợp các ô trong cột M dựa trên các bản sao trong cột A, hãy thử VBA bên dưới.  O1 là ô đầu tiên xuất kết quả; M là cột bạn sẽ kết hợp dựa trên các bản sao trong cột A; A1 A đại diện cho ô đầu tiên và cột nơi các bản sao xác định vị trí; KhôngKết hợp màu sắc là tiêu đề của các cột sau khi nối. Bạn có thể thay đổi các biến này nếu cần. Sub ConcatenateCellsIfSameValues ​​()
'Cập nhật Extendoffice 20211105
Dim xCol làm bộ sưu tập mới
Dim xSrc dưới dạng biến thể
Dim xSrcValue làm biến thể
Dim xRes () As Variant
Dim I As Long
Dim J As Long
Dim xRg theo phạm vi
Dim xResultAddress dưới dạng Chuỗi
Dim xMergeAddress dưới dạng chuỗi
Dim xUp dưới dạng số nguyên

xResultAddress = "O1" 'Ô để xuất kết quả
xMergeAddress = "M" 'Cột bạn sẽ kết hợp dựa trên các bản sao trong cột A

xSrc = Phạm vi ("A1", Ô (Hàng.Count,"A") .End (xlUp)). Thay đổi kích thước (, 1)
xUp = Phạm vi ("A1", Ô (Hàng.Count,"A") .End (xlUp)). Hàng.Count
xSrcValue = Phạm vi (xMergeAddress & "1:" & xMergeAddress & xUp)

Đặt xRg = Range (xResultAddress)
On Error Resume Next
Đối với I = 2 đến UBound (xSrc)
xCol.Add xSrc (I, 1), TypeName (xSrc (I, 1)) & CStr (xSrc (I, 1))
Tiếp theo tôi

Về lỗi GoTo 0
ReDim xRes (1 Đến xCol.Count + 1, 1 đến 2)
xRes (1, 1) = "Không"
xRes (1, 2) = "Màu kết hợp"
Đối với I = 1 Đến xCol.Count
xRes (I + 1, 1) = xCol (I)
Đối với J = 2 đến UBound (xSrc)
Nếu xSrc (J, 1) = xRes (I + 1, 1) Thì
xRes (I + 1, 2) = xRes (I + 1, 2) & "," & xSrcValue (J, 1)
Cuối Nếu
Tiếp theo J
xRes (I + 1, 2) = Mid (xRes (I + 1, 2), 2)
Tiếp theo tôi
Đặt xRg = xRg.Resize (UBound (xRes, 1), UBound (xRes, 2))
xRg.NumberFormat = "@"
xRg = xRes
xRg.EntireColumn.AutoFit
End Sub
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, macro ở trên hoạt động rất tốt! Cảm ơn bạn. Dù sao thì có thể (tôi đã thử, nhưng không thành công) để sửa đổi nó thành nối cột B (mô tả) dựa trên các bản sao trong cột A (mã HS) nhưng cũng lấy cột C (xuất xứ) trong kết hợp?
Vì vậy, các văn bản mô tả nối theo mã HS trên mỗi nguồn gốc.
Ngoài ra cột D(số lượng) và cột E(giá trị) phải được tính tổng theo mã HS và xuất xứ.

ABCDE
MÃ HS MÔ TẢ XUẤT XỨ SỐ LƯỢNG TRỊ GIÁ
5407420000 TWEED CN 10 € 150,00
5407420000 COTTON CN 15€250,00
5407420000 POLYESTER TW 5 € 130,00
5407420000 BÔNG HỮU CƠ HOA KỲ 18 € 450,00
5407420000 BÔNG MỸ 23 € 780,00
5407420000 VELVET DELUXE CN 20 € 380,00
5407420000 BÔNG CN 10 € 120,00
5806310000 TWEED JP 15 € 35,00
5806310000 POLYESTER AU 20 € 78,00
5806310000 TWEED AU 25 € 254,00
5806310000 POLYESTER SG 130 € 888,00
5806310000 BÔNG EU 120 € 945,00
5806310000 VẢI COTTON EU 10 € 80,00


Kết quả nên là:

5407420000 TWEED, COTTON, VELVET DULUXE, COTTON, CN 55 € 900,00
5407420000 POLYESTER TW 5 € 130,00
5407420000 BÔNG HỮU CƠ, BÔNG MỸ 41 € 1230,00
5806310000 TWEED JP 15 € 35,00
5806310000 POLYESTER, TWEED AU 45 € 332,00
5806310000 POLYESTER SG 130 € 888,00
5806310000 VẢI COTTON, COTTON EU 130 € 1025,00

Tôi hy vọng điều này có thể, cảm ơn 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