Nối hai cột trong excel thành một cột liên tiếp nhau

Liên hệ QC

trungcad

Thành viên mới
Tham gia
23/11/11
Bài viết
19
Được thích
0
Tình hình là em có một câu hỏi thế này mong các cao thủ giải đáp!

Em có một cái bảng có khoảng trên 300 cột và có trên 600 hàng . Bây giờ em có một câu hỏi là em muốn ghép tất cả các cột này lại thành 1 cột mà liên tiếp nhau.
Ví dụ : cột A có 3 hàng 1,2,3
Cột B có 3 hàng 4,5,6
Giờ ghép cột B về A thành 1 cột có 6 hàng 1,2,3,4,5,6

Mong các cao thủ giúp em! Em không muốn dùng copy paste vì mất thời gian và có thể nhầm lẫn! Cảm ơn các cao thủ!
 
Tình hình là em có một câu hỏi thế này mong các cao thủ giải đáp!
Em có một cái bảng có khoảng trên 300 cột và có trên 600 hàng . Bây giờ em có một câu hỏi là em muốn ghép tất cả các cột này lại thành 1 cột mà liên tiếp nhau.
Ví dụ : cột A có 3 hàng 1,2,3
Cột B có 3 hàng 4,5,6
Giờ ghép cột B về A thành 1 cột có 6 hàng 1,2,3,4,5,6
Mong các cao thủ giúp em! Em không muốn dùng copy paste vì mất thời gian và có thể nhầm lẫn! Cảm ơn các cao thủ!
Nếu dữ liệu không nhiều thì có thể dùng toán tử nối (&), kết hợp các hàm INDIRECT, AND, CONCATENATE, ...
Bạn up file và cho vài ví dụ thử xem.
 
Tình hình là em có một câu hỏi thế này mong các cao thủ giải đáp!

Em có một cái bảng có khoảng trên 300 cột và có trên 600 hàng . Bây giờ em có một câu hỏi là em muốn ghép tất cả các cột này lại thành 1 cột mà liên tiếp nhau.
Ví dụ : cột A có 3 hàng 1,2,3
Cột B có 3 hàng 4,5,6
Giờ ghép cột B về A thành 1 cột có 6 hàng 1,2,3,4,5,6

Mong các cao thủ giúp em! Em không muốn dùng copy paste vì mất thời gian và có thể nhầm lẫn! Cảm ơn các cao thủ!
Bạn xem File đã đúng ý chưa, bạn nhớ Enable Macros trước khi mở File nhé!
Nhấn nút "GHÉP CỘT", xem kết quả.
P/S: Nếu chưa biết Ennab macros thì gọi cho tôi, tôi hướng dẫn cho.
ĐT: 0996.202.66(Thành)
 

File đính kèm

  • ghep_cot.xls
    27.5 KB · Đọc: 689
Lần chỉnh sửa cuối:
Tình hình là em có một câu hỏi thế này mong các cao thủ giải đáp!

Em có một cái bảng có khoảng trên 300 cột và có trên 600 hàng . Bây giờ em có một câu hỏi là em muốn ghép tất cả các cột này lại thành 1 cột mà liên tiếp nhau.
Ví dụ : cột A có 3 hàng 1,2,3
Cột B có 3 hàng 4,5,6
Giờ ghép cột B về A thành 1 cột có 6 hàng 1,2,3,4,5,6
Giả sử vùng dữ liệu cần nối của là A1:B3 (3 dòng). Công thức tại C1:
=INDEX($A$1:$B$3,MOD(ROWS($C$1:C1)-1,3)+1,INT((ROWS($C$1:C1)-1)/3)+1)
Bạn có bao nhiêu cột và dòng thì thay đổi chỗ màu đỏ cho phù hợp.
Thân.
 
Giả sử vùng dữ liệu cần nối của là A1:B3 (3 dòng). Công thức tại C1:
=INDEX($A$1:$B$3,MOD(ROWS($C$1:C1)-1,3)+1,INT((ROWS($C$1:C1)-1)/3)+1)
Bạn có bao nhiêu cột và dòng thì thay đổi chỗ màu đỏ cho phù hợp.
Thân.
Sao mình không làm được như bạn nhỉ
 
Tình hình là em có một câu hỏi thế này mong các cao thủ giải đáp!

Em có một cái bảng có khoảng trên 300 cột và có trên 600 hàng . Bây giờ em có một câu hỏi là em muốn ghép tất cả các cột này lại thành 1 cột mà liên tiếp nhau.
Ví dụ : cột A có 3 hàng 1,2,3
Cột B có 3 hàng 4,5,6
Giờ ghép cột B về A thành 1 cột có 6 hàng 1,2,3,4,5,6

Mong các cao thủ giúp em! Em không muốn dùng copy paste vì mất thời gian và có thể nhầm lẫn! Cảm ơn các cao thủ!
bạn xem như vậy có đúng ko?
 

File đính kèm

  • ghepcot.xlsx
    8.8 KB · Đọc: 332
Tình hình là em có một câu hỏi thế này mong các cao thủ giải đáp!

Em có một cái bảng có khoảng trên 300 cột và có trên 600 hàng . Bây giờ em có một câu hỏi là em muốn ghép tất cả các cột này lại thành 1 cột mà liên tiếp nhau.
Ví dụ : cột A có 3 hàng 1,2,3
Cột B có 3 hàng 4,5,6
Giờ ghép cột B về A thành 1 cột có 6 hàng 1,2,3,4,5,6

Mong các cao thủ giúp em! Em không muốn dùng copy paste vì mất thời gian và có thể nhầm lẫn! Cảm ơn các cao thủ!
Theo mình hiểu thì số liệu của bạn đang thế này
1.JPG
Được nối lại thành thế này
2.JPG
Không biết phải do mình hiểu sai không?
 
Theo mình hiểu thì số liệu của bạn đang thế này
View attachment 121537
Được nối lại thành thế này
View attachment 121538
Không biết phải do mình hiểu sai không?
Nếu đúng dữ liệu như vậy thì công thức tại A4:
Mã:
=OFFSET($B$1,MOD(ROW(A3),3),INT(ROW(A3)/3)-1)
Dữ liệu 300 cột, 600 dòng, vậy nối kiểu gì? 3 dòng đầu nối theo từng cột trả về cột nào? đến khi nào thì dừng? Nên đưa dữ liệu lên (nén file lại và upload lên).
 

File đính kèm

  • Book1.xls
    25 KB · Đọc: 288

File đính kèm

  • File ghepcot cua ban tren GPE_2.rar
    901.3 KB · Đọc: 549
Nếu dữ liệu bài #26 là dữ liệu thật: 256 cột x 641 dòng = 164096 ô giá trị.
Nếu sử dụng công thức tại A642:
Mã:
=OFFSET($B$1,MOD(ROW()-1,641),INT((ROW()-1)/641)-1)
Kéo xuống đến A164096 (sử dụng Excel 2007 trở lên).
 
Tình hình là em có một câu hỏi thế này mong các cao thủ giải đáp!

Em có một cái bảng có khoảng trên 300 cột và có trên 600 hàng . Bây giờ em có một câu hỏi là em muốn ghép tất cả các cột này lại thành 1 cột mà liên tiếp nhau.
Ví dụ : cột A có 3 hàng 1,2,3
Cột B có 3 hàng 4,5,6
Giờ ghép cột B về A thành 1 cột có 6 hàng 1,2,3,4,5,6

Mong các cao thủ giúp em! Em không muốn dùng copy paste vì mất thời gian và có thể nhầm lẫn! Cảm ơn các cao thủ!

Nếu theo bạn miêu tả thì:

Bạn không thể dùng excel 2003 vì excel 2003 chỉ có 65536 --> không đủ số dòng trên 1 cột để chứa dữ liệu của bạn (300*600=180000 dòng) --> bạn phải dùng excel 2007 trở lên.

Mình chỉnh lại chút file của bạn chuot0106 và đổi sang excel 2010 (file đính kèm).

Cách dùng:
1. Đặt con trỏ vào cột bạn muốn đặt kết quả (VD: ô A1).
2. Nhấn nút "GHÉP CỘT"
3. Bôi đen các cột cần nối (VD: A1:IV641) --> nhấn nút ok.

@Chuot0106, Xin lỗi đã sửa file của bạn. Nhưng với dữ liệu nhiều như vậy thì nên dùng mảng sẽ nhanh hơn.
Mà hình như kết quả cũng chưa chính xác thì phải %#^#$ (hay bạn đang hiểu sai ý tác giả ?).
 

File đính kèm

  • File ghepcot cua ban tren GPE_2.zip
    1.7 MB · Đọc: 410
Lần chỉnh sửa cuối:
Nếu dữ liệu bài #26 là dữ liệu thật: 256 cột x 641 dòng = 164096 ô giá trị.
Nếu sử dụng công thức tại A642:
Mã:
=OFFSET($B$1,MOD(ROW()-1,641),INT((ROW()-1)/641)-1)
Kéo xuống đến A164096 (sử dụng Excel 2007 trở lên).
Bác ơi ct này đúng chưa ah em làm mà không được.Row() trong ngoặc là ở 642 ah
 
Nếu theo bạn miêu tả thì:

Bạn không thể dùng excel 2003 vì excel 2003 chỉ có 65536 --> không đủ số dòng trên 1 cột để chứa dữ liệu của bạn (300*600=180000 dòng) --> bạn phải dùng excel 2007 trở lên.

Mình chỉnh lại chút file của bạn chuot0106 và đổi sang excel 2010 (file đính kèm).

Cách dùng:
1. Đặt con trỏ vào cột bạn muốn đặt kết quả (VD: ô A1).
2. Nhấn nút "GHÉP CỘT"
3. Bôi đen các cột cần nối (VD: A1:IV641) --> nhấn nút ok.

@Chuot0106, Xin lỗi đã sửa file của bạn. Nhưng với dữ liệu nhiều như vậy thì nên dùng mảng sẽ nhanh hơn.
Mà hình như kết quả cũng chưa chính xác thì phải %#^#$ (hay bạn đang hiểu sai ý tác giả ?).
Em thấy kết quả là chưa chính xác ví dụ : - file bác upload chỉ nối được hai cột cạnh nhau,nối xong không xoá cột vừa nối.Cái cơ bản là em muốn nó nối luôn tất cả các cột về cột A.Cảm ơn các bác!
 
Bác ơi ct này đúng chưa ah em làm mà không được.Row() trong ngoặc là ở 642 ah
Bạn thử công thức chưa?
Hoặc thử code sau:
Mã:
Sub Button1_Click()
Dim MyArr(), RsArr(), iC As Long, iR As Long, kR As Long
MyArr = Sheet1.Range("A1:IV641").Value2
ReDim RsArr(1 To UBound(MyArr) * UBound(MyArr, 2), 1 To 1)
For iC = LBound(MyArr, 2) To UBound(MyArr, 2)
    For iR = LBound(MyArr) To UBound(MyArr)
        kR = kR + 1
        RsArr(kR, 1) = MyArr(iR, iC)
    Next iR
Next iC
Sheet1.Range("A1:IV641").ClearContents
Sheet1.Range("A1").Resize(UBound(MyArr) * UBound(MyArr, 2)) = RsArr
End Sub
Tôi so sánh kết quả công thức và code đều đúng.
Row() tại ô nào thì có số dòng của ô đó.
 
Bạn thử công thức chưa?
Hoặc thử code sau:
Mã:
Sub Button1_Click()
Dim MyArr(), RsArr(), iC As Long, iR As Long, kR As Long
MyArr = Sheet1.Range("A1:IV641").Value2
ReDim RsArr(1 To UBound(MyArr) * UBound(MyArr, 2), 1 To 1)
For iC = LBound(MyArr, 2) To UBound(MyArr, 2)
    For iR = LBound(MyArr) To UBound(MyArr)
        kR = kR + 1
        RsArr(kR, 1) = MyArr(iR, iC)
    Next iR
Next iC
Sheet1.Range("A1:IV641").ClearContents
Sheet1.Range("A1").Resize(UBound(MyArr) * UBound(MyArr, 2)) = RsArr
End Sub
Tôi so sánh kết quả công thức và code đều đúng.
Row() tại ô nào thì có số dòng của ô đó.
Em không biết chạy macro,làm cho em trên bài 26 được không ạ
 
Em không biết chạy macro,làm cho em trên bài 26 được không ạ
Công thức có sẵn ở ô A641 rồi, tôi chưa kéo xuống vì nó làm nặng file gấp đôi, không upload được. Bạn chỉ cần kéo công thức xuống đến dòng 164096 là được.
File nặng quá không tải lên được nên tôi xóa bớt cột, bạn test thử.
 

File đính kèm

  • File ghepcot cua ban tren GPE_2.rar
    487 KB · Đọc: 164
Em thấy kết quả là chưa chính xác ví dụ : - file bác upload chỉ nối được hai cột cạnh nhau,nối xong không xoá cột vừa nối.Cái cơ bản là em muốn nó nối luôn tất cả các cột về cột A.Cảm ơn các bác!

Chẳng hiểu bạn test kiểu gì nữa. Mình nghĩ, có thể bạn đã download nhầm file rồi. File ở bài #31 í. Bạn muốn nối bao nhiêu cột tùy ý (nhưng phải bôi đen các cột đó). Nối xong là xóa luôn vùng dữ liệu cũ và gán kết quả vào cột mà bạn muốn đặt kết quả. (Chỉ cần bạn làm đúng như hướng dẫn là đc).
 
Web KT
Back
Top Bottom