327
Tutorial ini membahas cara menggabungkan 2 kolom atau lebih menjadi 1 kolom daftar yang panjang di Excel. Seperti contoh gambar di atas, daftar dari kolom A dan B akan digabung atau disusun menjadi 1 kolom. Jadi setelah data kolom pertama, maka akan dilanjutkan dengan data dari kolom 2 dan seterusnya.
Lihat juga: Cara Menggabungkan 2 Kolom di Excel Baris Selang Seling
Bila datanya berupa baris tabel yang pendek atau sedikit, kita bisa menggunakan cara Copy Paste. Namun, metode Copy Paste tidak cocok untuk daftar yang panjang. Untuk itu, kita sebaiknya menggunakan 2 cara di bawah ini yang akan menggabungkan kolom Excel yang panjang dengan cepat dan mudah. Catatan: tutorial ini adalah untuk menyusun 2 kolom menjadi 1. Bila Anda ingin menggabungkan sel (contoh, nama depan dan nama belakang yang terpisah digabung menjadi 1 sel yang sama), maka bisa baca langkah-langkahnya di: Cara menggabungkan data dari 2 sel atau lebih menjadi 1 sel.
DAFTAR ISI
1Cara Menggabungkan Kolom Excel dengan Rumus
Pada cara ini, kita akan menggunakan formula atau rumus Excel untuk menggabungkan 2 kolom menjadi 1 kolom. Misalnya, kita ingin menggabungkan daftar di kolom A dan di kolom B , yaitu sel A2:B6. Hasilnya akan ditaruh di kolom C. Untuk itu, ikuti langkah-langkah berikut ini.
- Klik di sel C2.
- Masukkan rumus di bawah ini dan tekan ENTER.
Rumus dengan pemisah titik koma=IFERROR(INDEX($A$2:$A$5, ROWS(C2:$C$2)), IFERROR(INDEX($B$2:$B$6, ROWS(C2:$C$2)-ROWS($A$2:$A$5)),""))
Salin rumus ke sel di bawahnya hingga muncul data terakhir di kolom B. Contoh pada tutorial ini adalah Pencil. Catatan: rumus di atas masih bisa dikembangkan lagi untuk menggabungkan 3 kolom menjadi 1 dan seterusnya. Atau gunakan Cara 2 di bawah ini yang memakai kode VBA untuk menggabungkan banyak kolom.=IFERROR(INDEX($A$2:$A$5; ROWS(C2:$C$2)); IFERROR(INDEX($B$2:$B$6; ROWS(C2:$C$2)-ROWS($A$2:$A$5));""))
Lihat di sini: Cara Membuat 1 Kolom dan 2 Kolom dalam Satu Halaman Word
2Cara Menggabungkan Kolom Excel dengan Kode VBA
Pada cara ini, kita akan menggabungkan daftar di kolom A, B, C, D. Hasilnya ditaruh di kolom A atau di kolom baru yang kita tentukan. Hal yang perlu diketahui:
- Cara ini bisa menggabungkan 2 kolom atau lebih menjadi 1 kolom.
- Bila menggunakan kode VBA, maka kita tidak bisa membatalkan perintah yang sudah dibuat. Untuk itu, Anda bisa membuat salinan daftar asli untuk berjaga-jaga seandainya terjadi error yang tidak bisa diperbaiki atau hasilnya tidak seperti yang diinginkan.
- Tekan tombol ALT + F11 untuk menampilkan layar VBA. Tips: Anda juga bisa mengklik kanan tab lembar kerja dan pilih View Code.
- Di layar VBA, klik Insert | Module dan masukkan kode VBA di bawah ini.
Contoh tampilan kode di layar VBA adalah seperti ini.Sub CombineColumns() Dim xRng As Range Dim i As Integer Dim xLastRow As Integer Dim xTxt As String On Error Resume Next xTxt = Application.ActiveWindow.RangeSelection.Address Set xRng = Application.InputBox("Please Select the Data Range", xTxt, Type:=8) If xRng Is Nothing Then Exit Sub xLastRow = xRng.Columns(1).Rows.Count + 1 For i = 2 To xRng.Columns.Count Range(xRng.Cells(1, i), xRng.Cells(xRng.Columns(i).Rows.Count, i)).Cut ActiveSheet.Paste Destination:=xRng.Cells(xLastRow, 1) xLastRow = xLastRow + xRng.Columns(i).Rows.Count Next End Sub
- Tekan tombol F5 di keyboard atau tekan icon ▶ (RUN) pada menu toolbar untuk menjalankan kode tersebut.
- Akan muncul kotak untuk memilih sel yang berisi daftar yang akan digabungkan. Akhiri dengan mengklik OK.
Setelah kode dijalankan, akan muncul 1 buah kotak lagi untuk memilih sel tempat menaruh hasil penggabungan. Catatan: bila kolom memiliki jumlah baris yang tidak sama, maka setelah digabungkan akan muncul baris kosong. Untuk itu, jangan lupa untuk menghapus baris kosong tersebut. (Sumber kode VBA)Public Sub CombineColumns() Dim oWsSrc As Worksheet Dim oWsDest As Worksheet Dim raSrc As Range Dim raDest As Range Dim sAddrSrc As String Dim sAddrDest As String Dim lRows As Long Dim lCols As Long Dim i As Integer Set raSrc = Application.InputBox("Please Select the Data Range", Type:=8) Set raDest = Application.InputBox("Please Select Destination", Type:=8) If Not raSrc Is Nothing Or Not raDest Is Nothing Then Set oWsSrc = raSrc.Parent lRows = raSrc.Rows.Count lCols = raSrc.Columns.Count sAddrSrc = raSrc.Address Set oWsDest = raDest.Parent sAddrDest = raDest.Address For i = 1 To lCols Set raSrc = oWsSrc.Range(sAddrSrc) oWsSrc.Range(raSrc.Cells(1, i), raSrc.Cells(lRows, i)).Cut Set raDest = oWsDest.Range(sAddrDest).Resize(lRows, 1).Offset(lRows * (i - 1), 0) oWsDest.Paste Destination:=raDest Next End If End Sub