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

Bagaimana cara mengubah baris duplikat ke kolom di Excel?

Misalkan Anda memiliki berbagai data di Excel, sekarang, Anda ingin mengubah urutan baris duplikat ke beberapa kolom seperti gambar berikut yang ditampilkan, apakah Anda punya ide bagus untuk menyelesaikan tugas ini?

Ubah urutan baris duplikat ke kolom dengan kode VBA

doc-convert-duplikat-baris-kolom-1


panah gelembung kanan biru Ubah urutan baris duplikat ke kolom dengan kode VBA

Sayangnya, tidak ada cara langsung bagi Anda untuk mengatasinya di Excel, tetapi Anda dapat membuat kode VBA untuk mengatasinya, lakukan hal berikut:

1. Tahan ALT + F11 kunci untuk membuka Jendela Microsoft Visual Basic for Applications.

2. Klik Menyisipkan > Modul, dan tempel kode berikut di Jendela Modul.

Kode VBA: Ubah urutan baris duplikat ke beberapa kolom

Sub ConvertTable()
'Updateby Extendoffice
Dim xArr1 As Variant
Dim xArr2 As Variant
Dim InputRng As Range, OutRng As Range
Dim xRows As Long
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set OutRng = OutRng.Range("A1")
xArr1 = InputRng.Value
t = UBound(xArr1, 2): xRows = 1
With CreateObject("Scripting.Dictionary")
    .CompareMode = 1
    For i = 2 To UBound(xArr1, 1)
        If Not .exists(xArr1(i, 1)) Then
            xRows = xRows + 1: .Item(xArr1(i, 1)) = VBA.Array(xRows, t)
            For ii = 1 To t
                xArr1(xRows, ii) = xArr1(i, ii)
            Next
        Else
            xArr2 = .Item(xArr1(i, 1))
            If UBound(xArr1, 2) < xArr2(1) + t - 1 Then
                ReDim Preserve xArr1(1 To UBound(xArr1, 1), 1 To xArr2(1) + t - 1)
                For ii = 2 To t
                    xArr1(1, xArr2(1) + ii - 1) = xArr1(1, ii)
                Next
            End If
            For ii = 2 To t
                xArr1(xArr2(0), xArr2(1) + ii - 1) = xArr1(i, ii)
            Next
            xArr2(1) = xArr2(1) + t - 1: .Item(xArr1(i, 1)) = xArr2
        End If
    Next
End With
OutRng.Resize(xRows, UBound(xArr1, 2)).Value = xArr1
End Sub

3. Lalu tekan F5 kunci untuk menjalankan kode ini, pilih rentang data yang ingin Anda ubah baris duplikat menjadi beberapa kolom di dialog yang muncul, lihat tangkapan layar:

doc-convert-duplikat-baris-kolom-2

4. Klik OK, dan pilih satu sel di mana Anda ingin meletakkan hasilnya di kotak dialog berikut, lihat tangkapan layar:

doc-convert-duplikat-baris-kolom-3

5. Dan kemudian klik OK tombol, data yang Anda pilih telah diubah menjadi berikut:

doc-convert-duplikat-baris-kolom-4


Terkait artikel:

Bagaimana cara mengubah urutan / mengubah kolom dan baris menjadi satu baris?

Bagaimana cara mengubah urutan / mengubah kolom dan baris menjadi satu kolom?

Bagaimana cara mengubah urutan / mengubah satu kolom menjadi beberapa kolom di Excel?


Alat Produktivitas Kantor Terbaik

Kutools for Excel Memecahkan Sebagian Besar Masalah Anda, dan Meningkatkan Produktivitas Anda hingga 80%

  • Reuse: Masukkan dengan cepat rumus, bagan yang kompleks dan apa pun yang pernah Anda gunakan sebelumnya; Enkripsi Sel dengan kata sandi; Buat Milis dan mengirim email ...
  • Bilah Formula Super (dengan mudah mengedit beberapa baris teks dan rumus); Membaca Tata Letak (membaca dan mengedit sel dalam jumlah besar dengan mudah); Tempel ke Rentang yang Difilter...
  • Gabungkan Sel / Baris / Kolom tanpa kehilangan Data; Pisahkan Konten Sel; Gabungkan Baris / Kolom Duplikat... Mencegah Sel Duplikat; Bandingkan Rentang...
  • Pilih Duplikat atau Unik Baris; Pilih Baris Kosong (semua sel kosong); Temukan Super dan Temukan Fuzzy di Banyak Buku Kerja; Pilih Acak ...
  • Salinan Tepat Beberapa Sel tanpa mengubah referensi rumus; Buat Referensi Otomatis ke Beberapa Lembar; Sisipkan Poin, Kotak Centang, dan lainnya ...
  • Ekstrak Teks, Tambahkan Teks, Hapus berdasarkan Posisi, Hapus Space; Membuat dan Mencetak Subtotal Paging; Konversi Konten Antar Sel dan Komentar...
  • Filter Super (simpan dan terapkan skema filter ke sheet lain); Penyortiran Lanjutan menurut bulan / minggu / hari, frekuensi dan lainnya; Filter Khusus dengan huruf tebal, miring ...
  • Gabungkan Workbooks dan WorkSheets; Gabungkan Tabel berdasarkan kolom kunci; Pisahkan Data menjadi Beberapa Lembar; Konversi Batch xls, xlsx dan PDF...
  • Lebih dari 300 fitur canggih. Mendukung Office / Excel 2007-2019 dan 365. Mendukung semua bahasa. Penerapan yang mudah di perusahaan atau organisasi Anda. Fitur lengkap uji coba gratis 30 hari. Jaminan uang kembali 60 hari.
tab kte 201905

Tab Office Membawa antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Jauh Lebih Mudah

  • Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
  • Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
  • Tingkatkan produktivitas Anda hingga 50%, dan kurangi ratusan klik mouse untuk Anda setiap hari!
officetab bawah

 

Urutkan komentar berdasarkan
komentar (8)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
Contoh Luar Biasa - menghemat banyak waktu saya. Terima kasih banyak !!!
Komentar ini diminimalkan oleh moderator di situs
Terima kasih banyak!

Tuhan memberkati Anda.
Komentar ini diminimalkan oleh moderator di situs
Saya sangat senang ini berhasil. Kamu adalah pahlawanku!!!!
Komentar ini diminimalkan oleh moderator di situs
Benar benar hebat. Menyelamatkan saya banyak waktu
Komentar ini diminimalkan oleh moderator di situs
Hanya berfungsi jika ada jumlah duplikat yang sama dan memanggilnya a. Ini tidak berfungsi jika memiliki jumlah duplikat yang berbeda.
Komentar ini diminimalkan oleh moderator di situs
Ini berfungsi dengan baik untuk saya dengan jumlah duplikat yang berbeda Brian. Saya hanya punya masalah dengan duplikat pertama yang muncul dua kali pada output saya, tapi itu sangat kecil. Saya hanya berharap saya tahu cara membuatnya menyalin hasil duplikat ke dalam format yang dibatasi koma alih-alih kolom baru untuk masing-masing kolom.
Komentar ini diminimalkan oleh moderator di situs
Halo! Ada yang bisa bantu saya...

Saya menemukan kode ini untuk mengubah baris data dengan ID unik menjadi satu baris per ID dengan beberapa kolom (min kolom 5 - termasuk ID, kolom maksimum 25 - termasuk ID). Kemudian menghapus semua baris duplikat berdasarkan ID unik. Jenis kode ini berfungsi, satu-satunya masalah adalah tidak mentransfer dua kolom data.

Jumlah baris data per ID unik bervariasi dari 1 hingga 6 (oleh karena itu saya membutuhkan minimal 5 kolom hingga maksimum 25 kolom)

Ada 20,000 baris data tetapi saya dapat membagi data berdasarkan departemen untuk minimal 5,000 baris data dan menjalankan setiap departemen secara terpisah.

Terima kasih atas bantuan Anda!


Data saya terlihat seperti ini

ABCDE
ID DESKRIPSI NEGARA # TANGGAL
3 CPR US 567 6/19/2019
3 AET US 568 6/19/2019
4 RJP AS 6/19/2019
4 AET
4 AED

dan sebagainya

Saya ingin terlihat seperti ini

ABCDEFGHIJKLM DLL.....
ID DESKRIPSI NEGARA # TANGGAL DESKRIPSI NEGARA # TANGGAL DESKRIPSI NEGARA # TANGGAL
3 CPR US 567 6/19/2019 AET US 568 6/19/2019
4 CPR US AET US AED US

Berikut adalah kode yang saya temukan yang berfungsi (mungkin untuk apa itu ditulis, itu hanya membawa data di kolom D dan E dan menghilangkan kolom B & C ... meninggalkan dua kolom kosong per kumpulan data. Saya suka itu itu menghapus duplikat setelah memindahkan semua data ke satu kolom berdasarkan ID unik

Sub Alamat_Ke_Kolom()

Redupkan Baris Terakhir Selamanya
Dim addressCount Sebagai Integer: addressCount = 0

lastRow = Range("A" & Rows.Count).End(xlUp).Baris

Untuk i = Baris terakhir Ke 3 Langkah -1
Jika Sel(i, 1).Nilai = Sel(i - 1, 1).Nilai Maka
alamatCount = alamatCount + 1
Range(Sel(i - 1, 10), Sel(i - 1, (addressCount * 5) + 10)) = Range(Sel(i, 4), Sel(i, (addressCount * 5) + 4)). Nilai
Baris(i).Hapus
Lain
alamatJumlah = 0
End If
Selanjutnya saya

End Sub
Komentar ini diminimalkan oleh moderator di situs
Halo semua

Saya telah mencoba kode ini dan berhasil.

Pertanyaan saya adalah Bagaimana saya bisa melakukan hal yang sama menggunakan Ms Access untuk data yang lebih besar, bisakah saya membuat kueri berfungsi sama atau tidak?

Terima kasih banyak .
Belum ada komentar yang diposting di sini
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan