Câu trả lời:
Sử dụng Hàm do người dùng xác định sẽ linh hoạt hơn nhiều so với ô mã hóa cứng theo ô
sử dụng công thức mới của bạn giống như công thức trong ảnh chụp nhanh ô D6
=ConCat(A1:A5)
Bạn có thể sử dụng các công thức phức tạp hơn như công thức trong D7
=ConCat(A1:A5,A7:A24)
hoặc D8 là 2D
=concat(A1:B5,A7:A24)
Function ConCat(ParamArray rng1()) As String
Dim X
Dim strOut As String
Dim strDelim As String
Dim rng As Range
Dim lngRow As Long
Dim lngCol As Long
Dim lngCnt As Long
strDelim = ", "
For lngCnt = LBound(rng1) To UBound(rng1)
If TypeOf rng1(lngCnt) Is Range Then
If rng1(lngCnt).Cells.Count > 1 Then
X = rng1(lngCnt).Value2
For lngRow = 1 To UBound(X, 1)
For lngCol = 1 To UBound(X, 2)
strOut = strOut & (strDelim & X(lngRow, lngCol))
Next
Next
Else
strOut = strOut & (strDelim & rng2.Value)
End If
End If
Next
ConCat = Right$(strOut, Len(strOut) - Len(strDelim))
End Function
Đầu tiên, làm
=concatenate(A1,",")
trong cột tiếp theo bên cạnh cột bạn có giá trị.
Thứ hai, sao chép toàn bộ cột và chuyển đến một trang khác để Dán Đặc biệt- & gt; Chuyển vị.
Nếu đó là một cột giá trị lỏng lẻo, bạn có thể sử dụng hàm CONCATENATE, nhưng để thực hiện nhanh chóng thì hơi khó. Giả sử các ô là A1: A10, trong B9 và B10, hãy đặt các công thức sau:
B9: = A9 & amp; "," & amp; B10
B10: = A10
Bây giờ, sao chép B9 và dán vào tất cả các ô LÊN lên đầu cột B.
Trong B1 bạn sẽ có kết quả đầy đủ. Sao chép & gt; Dán đặc biệt & gt; Giá trị.
Câu trả lời tuyệt vời, karthikeyan. Tôi không muốn lãng phí thời gian trong VB hoặc thậm chí để thoát khỏi Ctrl + H. Điều này sẽ đơn giản nhất, và tôi đang làm điều này.
Notepad là đơn giản nhất và nhanh nhất. Từ Excel, tôi đã thêm vào một cột để chạy các số trong cột A. Dữ liệu của tôi nằm trong Cột B. Sau đó, sao chép cột A & amp; B vào notepad. Xóa các khoảng trắng thừa bằng cách sử dụng chức năng thay thế trong notepad. Sao chép từ notepad và dán lại thành excel trong một ô mà tôi muốn có dữ liệu. Tất cả đã xong. Không cần VB!
Giải pháp tốt nhất và đơn giản để làm theo:
Chọn phạm vi của các cột bạn muốn được sao chép vào một cột
Sao chép phạm vi ô (nhiều cột)
Mở Notepad ++
Dán phạm vi ô đã chọn
Nhấn Ctrl + H, thay thế \ t bằng \ n và nhấp vào thay thế tất cả
tất cả nhiều cột nằm dưới một cột
Bây giờ sao chép giống nhau và dán vào excel
Giải pháp đơn giản và hiệu quả cho những người không muốn lãng phí thời gian mã hóa trong VBA
Cách dễ nhất để kết hợp danh sách các giá trị từ một cột vào một ô mà tôi đã tìm thấy là sử dụng một công thức nối đơn giản. 1) Chèn cột mới 2) Chèn công thức nối bằng cách sử dụng cột bạn muốn kết hợp làm giá trị đầu tiên, dấu tách (dấu cách, dấu phẩy, v.v.) làm giá trị thứ hai và ô bên dưới ô bạn đặt công thức làm giá trị thứ ba. 3) Kéo công thức xuống qua phần cuối của dữ liệu trong cột quan tâm 4) Sao chép & amp; dán các giá trị đặc biệt vào cột vừa tạo để xóa công thức và BOOM! ... tất cả các giá trị hiện nằm trong ô trên cùng.
Ví dụ: công thức sau đây sẽ kết hợp tất cả các giá trị được liệt kê trong cột A trong ô C3 với dấu chấm phẩy tách chúng = CONCATENATE (A3, ";", C4)
Đây là một cách nhanh chóng ... Chèn một cột "," bên cạnh mỗi giá trị bằng cách sử dụng điền. Đặt một công thức CONCATE, ở bất cứ đâu, với cả hai cột trong phạm vi, được thực hiện. Kết quả là một ô duy nhất, danh sách được nối với dấu phẩy và khoảng trắng sau mỗi ô.
1 2 3 4
(một giá trị mỗi hàng). Trong B1: B4, tôi có ", "
. Ở C5 tôi có =concatenate(A1:B4).
Nếu điều đó thực sự hiệu quả, nó sẽ rất tuyệt, nhưng nó không xuất hiện. Bạn có hình dung cái gì khác không?