ghép 2 cột trong excel

Liên hệ QC

soicon824

Thành viên mới
Tham gia
10/8/09
Bài viết
3
Được thích
0
Giả sử cột A có dữ liệu sau: nam, minh, chanh, tai, hong.....
Cột B có dữ liệu sau: 1029, 1344
Ý em là muốn ghép 2 cột lại sao cho có dữ liệu ở cột C như sau:
nam1209,nam1344, minh1029,minh 1344,chanh 1029,chanh 1344...........
Hic, em mò hoài, dùng tùm lum hàm hết mà không được, có ai giúp em với
 
Lần chỉnh sửa cuối:
Giả sử cột A có dữ liệu sau: nam, minh, chanh, tai, hong.....
Cột B có dữ liệu sau: 1029, 1344
Ý em là muốn ghép 2 cột lại sao cho có dữ liệu ở cột C như sau:
nam1209,nam1344, minh1029,minh 1344,chanh 1029,chanh 1344...........
Hic, em mò hoài, dùng tùm lum hàm hết mà không được, có ai giúp em với
Lập trình VBA chẳng có vấn đề gì. Nếu bạn đồng ý thì đưa file lên đây nhé!
 
Lập trình VBA chẳng có vấn đề gì. Nếu bạn đồng ý thì đưa file lên đây nhé!
Cám ơn bạn nha, file của mình nè bạn, chỉ có 2 cột thôi, mà cho mình hỏi thêm cái này dùng hàm không được à, bắt buộc phải dùng VBA à
 

File đính kèm

  • TenVaNam.xls
    35 KB · Đọc: 93
Chào bạn ndu96081631, nhờ bạn viết cho cái Code nối dữ liệu từ nhiều cột vào một cột,ý mình là:
Dữ liệu bất kỳ trong cột A,B,C...J của Sheet1 sẽ tự động copy sang Sheet2 cột A theo thứ tự từ cột A,B,C...J ,ví dụ:trong Sheet1 có
Cột A là:
A
C
Cột B là:
Y
Cột C là:
H
A
L
Cột D là:
E
Cột E là:
J
U
Cột F là:
M
L
Cột G là:
Cột H là:
Cột I là:
A
Cột J là:
M

Thì trong cột A của Sheet2 sẽ là:
A
C
Y
H
A
L
E
J
U
M
L
A
M

Và trong cột K,L,M...T của Sheet1 sẽ tự động copy sang Sheet2 cột B (Tương tự điều kiện trên)

Cảm ơn bạn
 
Cám ơn bạn nha, file của mình nè bạn, chỉ có 2 cột thôi, mà cho mình hỏi thêm cái này dùng hàm không được à, bắt buộc phải dùng VBA à
Tôi dùng VBA với code sau:
PHP:
Function Combin2Arr(sArray1, sArray2)
  Dim TmpArr1, TmpArr2, Item1, Item2, Arr(), i As Long
  TmpArr1 = sArray1: TmpArr2 = sArray2
  For Each Item1 In TmpArr1
    If Trim(CStr(Item1)) <> "" Then
      For Each Item2 In TmpArr2
        If Trim(CStr(Item2)) <> "" Then
          ReDim Preserve Arr(i)
          Arr(i) = CStr(Item1) & CStr(Item2)
          i = i + 1
        End If
      Next
    End If
  Next
  Combin2Arr = Arr
End Function
PHP:
Sub Main()
  Dim sArray1, sArray2, Arr, lRow As Long
  On Error Resume Next
  sArray1 = Range("A1:A260")
  sArray2 = Range("B1:B105")
  Arr = Combin2Arr(sArray1, sArray2)
  lRow = UBound(Arr) + 1
  If lRow > Cells.Rows.Count Then lRow = Cells.Rows.Count
  Range("D1").Resize(lRow) = WorksheetFunction.Transpose(Arr)
End Sub
Trong file này, cứ bấm nút là ra kết quả
-----------------
Dùng hàm thì vầy:
PHP:
=INDEX($A$1:$A$260,INT((ROWS($1:1)-1)/ROWS($B$1:$B$105))+1)&INDEX($B$1:$B$105,MOD((ROWS($1:1)-1),ROWS($B$1:$B$105))+1)
... nhưng công thức này chắc chắn sẽ làm cho file cũng bạn "nặng" thêm nhiều lần (vì quá nhiều cell kết quả)
-----------------
Với khamha: Bài toàn này chỉ là For.. next thôi mà bạn, tôi nghĩ bạn thừa sức làm được
 

File đính kèm

  • TenVaNam.xls
    55 KB · Đọc: 96
Lần chỉnh sửa cuối:
Sửa Macro thành Code để tự chạy

Mình có ghi lại cái Macro nối cột như bài đã nêu ở trên,nhưng lại muốn cho nó tự động chạy và trong điều
kiện là hai Sheet này đều ẩn,Các bạn giúp mình nhé,Cảm ơn các bạn.
Code:
Sub Macro5()
'
' Macro5 Macro
' Macro recorded 4/26/2011 by win7
'

'
Range("A1:A5").Select
Selection.copy
Sheets("Sheet3").Select
Range("A1").Select
ActiveSheet.Paste Link:=True
Sheets("Sheet2").Select
Range("B1:B5").Select
Application.CutCopyMode = False
Selection.copy
Sheets("Sheet3").Select
Range("A6").Select
ActiveSheet.Paste Link:=True
Sheets("Sheet2").Select
Range("C1:C5").Select
Application.CutCopyMode = False
Selection.copy
Sheets("Sheet3").Select
Range("A11").Select
ActiveSheet.Paste Link:=True
Sheets("Sheet2").Select
Range("D1:D5").Select
Application.CutCopyMode = False
Selection.copy
Sheets("Sheet3").Select
Range("A16").Select
ActiveSheet.Paste Link:=True
Sheets("Sheet2").Select
Range("E1:E5").Select
Application.CutCopyMode = False
Selection.copy
Sheets("Sheet3").Select
ActiveWindow.SmallScroll Down:=12
Range("A21").Select
ActiveSheet.Paste Link:=True
Sheets("Sheet2").Select
Range("F1:F5").Select
Application.CutCopyMode = False
Selection.copy
Sheets("Sheet3").Select
Range("A26").Select
ActiveSheet.Paste Link:=True
ActiveWindow.SmallScroll Down:=12
Sheets("Sheet2").Select
Range("G1:G5").Select
Application.CutCopyMode = False
Selection.copy
Sheets("Sheet3").Select
Range("A31").Select
ActiveSheet.Paste Link:=True
Sheets("Sheet2").Select
Range("H1:H5").Select
Application.CutCopyMode = False
Selection.copy
Sheets("Sheet3").Select
Range("A36").Select
ActiveSheet.Paste Link:=True
Sheets("Sheet2").Select
Range("I1:I5").Select
Application.CutCopyMode = False
Selection.copy
Sheets("Sheet3").Select
ActiveWindow.SmallScroll Down:=9
Range("A41").Select
ActiveSheet.Paste Link:=True
Sheets("Sheet2").Select
Range("J1:J5").Select
Application.CutCopyMode = False
Selection.copy
Sheets("Sheet3").Select
Range("A46").Select
ActiveSheet.Paste Link:=True
Sheets("Sheet2").Select
ActiveWindow.SmallScroll Down:=-6
Range("K1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("K1").Select
End Sub
 
Mình có ghi lại cái Macro nối cột như bài đã nêu ở trên,nhưng lại muốn cho nó tự động chạy và trong điều
kiện là hai Sheet này đều ẩn,Các bạn giúp mình nhé,Cảm ơn các bạn.
Bỏ hết mấy vụ SELECT đi là được! Rút gọn code, dùng vòng lập
PHP:
Sub Macro5()
  Dim i As Long
  For i = 1 To 10
    Sheets("Sheet3").Range("A1:A5").Offset((i - 1) * 5) = "=Sheet2!" & Cells(1, i).Address(0, 0)
  Next
End Sub
 
Web KT
Back
Top Bottom