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

 Bagaimana cara mengubah urutan sel dalam satu kolom berdasarkan nilai unik di kolom lain?

Misalkan, Anda memiliki rentang data yang berisi dua kolom, sekarang, Anda ingin mengubah urutan sel dalam satu kolom menjadi baris horizontal berdasarkan nilai unik di kolom lain untuk mendapatkan hasil berikut. Apakah Anda punya ide bagus untuk mengatasi masalah ini di Excel?

doc mengubah nilai unik 1

Ubah urutan sel dalam satu kolom berdasarkan nilai unik dengan rumus

Ubah urutan sel dalam satu kolom berdasarkan nilai unik dengan kode VBA

Ubah urutan sel dalam satu kolom berdasarkan nilai unik dengan Kutools for Excel


Dengan rumus array berikut, Anda dapat mengekstrak nilai unik dan mengubah urutan data yang sesuai menjadi baris horizontal, lakukan hal berikut:

1. Masukkan rumus array ini: = INDEKS ($ A $ 2: $ A $ 16, MATCH (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) ke dalam sel kosong, D2, misalnya, dan tekan Shift + Ctrl + Enter kunci bersama untuk mendapatkan hasil yang benar, lihat tangkapan layar:

doc mengubah nilai unik 2

Note: Dalam rumus di atas, A2: A16 adalah kolom tempat Anda ingin mencantumkan nilai unik, dan D1 adalah sel di atas sel formula ini.

2. Kemudian seret gagang isian ke sel untuk mengekstrak semua nilai unik, lihat tangkapan layar:

doc mengubah nilai unik 3

3. Dan kemudian masukkan rumus ini ke dalam sel E2: =IFERROR(INDEX($B$2:$B$16, MATCH(0, COUNTIF($D2:D2,$B$2:$B$16)+IF($A$2:$A$16<>$D2, 1, 0), 0)), 0), dan ingat untuk menekan Shift + Ctrl + Enter kunci untuk mendapatkan hasilnya, lihat tangkapan layar:

doc mengubah nilai unik 4

Note: Dalam rumus di atas: B2: B16 adalah data kolom yang ingin Anda ubah urutannya, A2: A16 adalah kolom tempat Anda ingin mengubah urutan nilai berdasarkan, dan D2 berisi nilai unik yang telah Anda ekstrak pada Langkah 1.

4. Kemudian seret gagang isian ke kanan sel yang ingin Anda daftar data yang dialihkan sampai menampilkan 0, lihat tangkapan layar:

doc mengubah nilai unik 5

5. Dan kemudian lanjutkan menyeret gagang isian ke kisaran sel untuk mendapatkan data yang dialihkan seperti gambar berikut yang ditunjukkan:

doc mengubah nilai unik 6


Mungkin rumusnya rumit untuk Anda pahami, di sini, Anda dapat menjalankan kode VBA berikut untuk mendapatkan hasil yang diinginkan.

1. Tahan ALT + F11 kunci untuk membuka Microsoft Visual Basic untuk Aplikasi jendela.

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

Kode VBA: Mengubah urutan sel dalam satu kolom berdasarkan nilai unik di kolom lain:

Sub transposeunique()
'updateby Extendoffice
    Dim xLRow As Long
    Dim i As Long
    Dim xCrit As String
    Dim xCol  As New Collection
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String
    Dim xCount As Long
    Dim xVRg As Range
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("please select data range(only two columns):", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count <> 2) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "the used range is only one area with two columns ", , "Kutools for Excel"
        Exit Sub
    End If
    Set xOutRg = Application.InputBox("please select output range(specify one cell):", "Kutools for Excel", xTxt, , , , , 8)
    If xOutRg Is Nothing Then Exit Sub
    Set xOutRg = xOutRg.Range(1)
    xLRow = xRg.Rows.Count
    For i = 2 To xLRow
        xCol.Add xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value
    Next
    Application.ScreenUpdating = False
    For i = 1 To xCol.Count
        xCrit = xCol.Item(i)
        xOutRg.Offset(i, 0) = xCrit
        xRg.AutoFilter Field:=1, Criteria1:=xCrit
        Set xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)
        If xVRg.Count > xCount Then xCount = xVRg.Count
        xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible).Copy
        xOutRg.Offset(i, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        Application.CutCopyMode = False
    Next
    xOutRg = xRg.Cells(1, 1)
    xOutRg.Offset(0, 1).Resize(1, xCount) = xRg.Cells(1, 2)
    xRg.Rows(1).Copy
    xOutRg.Resize(1, xCount + 1).PasteSpecial Paste:=xlPasteFormats
    xRg.AutoFilter
    Application.ScreenUpdating = True
End Sub

3. Lalu tekan F5 kunci untuk menjalankan kode ini, dan kotak prompt akan muncul untuk mengingatkan Anda memilih rentang data yang ingin Anda gunakan, lihat tangkapan layar:

doc mengubah nilai unik 7

4. Dan kemudian klik OK tombol, kotak prompt lain akan muncul untuk mengingatkan Anda untuk memilih sel untuk meletakkan hasilnya, lihat tangkapan layar:

doc mengubah nilai unik 8

6. Klik OK tombol, dan data di kolom B telah dialihkan berdasarkan nilai unik di kolom A, lihat tangkapan layar:

doc mengubah nilai unik 9


Jika Anda memiliki Kutools untuk Excel, menggabungkan Lanjutan Gabungkan Baris serta Pisahkan Sel utilitas, Anda dapat dengan cepat menyelesaikan tugas ini tanpa rumus atau kode apa pun.

Kutools untuk Excel : dengan lebih dari 300 add-in Excel yang praktis, gratis untuk dicoba tanpa batasan dalam 30 hari.

Setelah menginstal Kutools untuk Excel, lakukan hal berikut:

1. Pilih rentang data yang ingin Anda gunakan. (Jika Anda ingin menyimpan data asli, silakan salin dan tempel data ke lokasi lain terlebih dahulu.)

2. Lalu klik Kutools > Gabungkan & Pisahkan > Lanjutan Gabungkan Baris, lihat tangkapan layar:

3. di Gabungkan Baris Berdasarkan Kolom kotak dialog, lakukan operasi berikut:

(1.) Klik nama kolom yang datanya ingin Anda ubah, lalu pilih Kunci utama;

(2.) Klik kolom lain yang ingin Anda ubah urutannya, dan klik Menggabungkan lalu pilih satu pemisah untuk memisahkan data gabungan, seperti spasi, koma, titik koma.

doc mengubah nilai unik 11

4. Lalu klik Ok tombol, data di kolom B telah digabungkan menjadi satu sel berdasarkan kolom A, lihat tangkapan layar:

doc mengubah nilai unik 12

5. Dan kemudian pilih sel gabungan, dan klik Kutools > Gabungkan & Pisahkan > Pisahkan Sel, lihat tangkapan layar:

6. di Pisahkan Sel kotak dialog, pilih Pisahkan ke Kolom bawah Tipe pilihan, dan kemudian pilih pemisah yang memisahkan data gabungan Anda, lihat tangkapan layar:

doc mengubah nilai unik 14 14

7. Lalu klik Ok tombol, dan pilih sel untuk meletakkan hasil pemisahan di kotak dialog yang muncul, lihat tangkapan layar:

doc mengubah nilai unik 15

8. Klik OK, dan Anda akan mendapatkan hasil yang Anda butuhkan. Lihat tangkapan layar:

doc mengubah nilai unik 16

Unduh dan uji coba gratis Kutools untuk Excel Sekarang!


Kutools untuk Excel: dengan lebih dari 300 add-in Excel yang praktis, gratis untuk dicoba tanpa batasan dalam 30 hari. Unduh dan uji coba gratis Sekarang!

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 (56)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
Bagaimana saya akan pergi ke arah yang berlawanan? Dari beberapa kolom menjadi satu kolom? Terima kasih sebelumnya! Tim
Komentar ini diminimalkan oleh moderator di situs
Ini fantastis. Saya memiliki excel dengan sekitar 2000 nilai unik di baris A dan tidak dapat mengelola latihan ini tanpa bantuan Anda. Banyak banyak terima kasih.
Komentar ini diminimalkan oleh moderator di situs
Langkah pertama itu sendiri gagal =INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) memberikan kesalahan Nilai Tidak Tersedia
Komentar ini diminimalkan oleh moderator di situs
Saya hanya ingin melakukan yang sebaliknya. Seperti saya sudah mendapatkan hasil akhirnya, dan saya ingin mencapai langkah pertama.
Komentar ini diminimalkan oleh moderator di situs
Saya mencari hal yang sama
Komentar ini diminimalkan oleh moderator di situs
Apakah Anda menemukan solusi untuk skenario sebaliknya? Terima kasih!
Komentar ini diminimalkan oleh moderator di situs
Saya ingin melakukan yang sebaliknya juga. Ada solusi agan-agan sekalian?
Komentar ini diminimalkan oleh moderator di situs
Hallo teman-teman,
Untuk mendapatkan hasil sebaliknya berdasarkan contoh artikel ini, Anda dapat menerapkan kode VBA berikut: (Catatan: Saat memilih rentang data yang ingin Anda transpos, harap kecualikan baris header)

Sub TransposeUnique_2()
Redupkan xLow, xLHitung Selama
Redupkan xRg Sebagai Rentang
Redupkan xOutRg Sebagai Rentang
Redupkan xObjRRg Sebagai Rentang
Redupkan xTxt Sebagai String
Redupkan x Hitung Selamanya
Redupkan xVRg Sebagai Rentang
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("silakan pilih rentang data:", "Kutools for Excel", xTxt, , , , , 8)
Tetapkan xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Jika xRg Bukan Apa-apa Kemudian Keluar Sub
Jika (xRg.Rows.count < 2) Atau _
(xRg.Area.count > 1) Lalu
MsgBox "Pilihan salah", , "Kutools for Excel"
Keluar dari Sub
End If
Set xOutRg = Application.InputBox("silakan pilih rentang keluaran (tentukan satu sel):", "Kutools for Excel", xTxt, , , , , 8)
Jika xOutRg Bukan Apa-apa Kemudian Keluar dari Sub
Application.ScreenUpdating = Salah
xLCount = xRg.Columns.count
Untuk xLRow = 1 Ke xRg.Rows.count
Tetapkan xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operasi:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = Salah
Rentang(Sel(xOutRg.Row, xOutRg.Column), Sel(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Nilai = xRg.Sel(xLRow, 1).Nilai
Tetapkan xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
Next
Application.ScreenUpdating = Benar
End Sub
Komentar ini diminimalkan oleh moderator di situs
Bagaimana cara melakukan transpos jika kolom B tidak memiliki nilai unik tetapi masih membutuhkan nilai tersebut?
KT 100
KT 100
Dengan asumsi bahwa mereka adalah dua transaksi yang berbeda
Komentar ini diminimalkan oleh moderator di situs
Hai, Didin,

Bisakah Anda memberikan masalah Anda lebih jelas atau rinci?
Anda dapat menyisipkan contoh tangkapan layar untuk masalah Anda.
Terima kasih!
Komentar ini diminimalkan oleh moderator di situs
Halo,
Bisakah Anda membantu saya dengan persyaratan di bawah ini.
Produk ----- pesan
KTE ------ 100KTE ------ 200KTO ------ 300KTO ------ 300
keluaran yang diharapkan
Produk ----- pesan ----- pesan ------ pesan
KTE ------ 100 ------ 200
KTO ------ 300 ------ 300







Komentar ini diminimalkan oleh moderator di situs
Saya juga membutuhkan hal yang sama. Saya ingin menampilkan 100 dua kali jika ada di data
Komentar ini diminimalkan oleh moderator di situs
Bisakah Anda menyarankan formula untuk itu?
Komentar ini diminimalkan oleh moderator di situs
Apakah Anda pernah mendapatkan respon/resolusi untuk tantangan ini? Saya memiliki yang sama.
Komentar ini diminimalkan oleh moderator di situs
Apakah ada cara untuk melakukan ini secara terbalik? Yaitu data dalam baris dengan panjang yang bervariasi dan menyortirnya menjadi dua kolom? Lihat Lampiran.
Komentar ini diminimalkan oleh moderator di situs
saya ingin mentranspos nilai duplikat juga (semua nilai - unik + duplikat) dan bukan hanya nilai unik. Bisakah Anda memberikan rumus untuk itu juga.
Komentar ini diminimalkan oleh moderator di situs
Saya membutuhkan hal yang sama
Komentar ini diminimalkan oleh moderator di situs
Apakah Anda pernah mendapatkan respon/resolusi untuk tantangan ini? Saya memiliki yang sama.
Komentar ini diminimalkan oleh moderator di situs
Dengan rumus di bawah ini:

=IFERROR(INDEX($B$2:$B$45, MATCH(0, COUNTIF($D2:D2,$B$2:$B$45)+IF($A$2:$A$10<>$D2, 1, 0), 0)), 0)

Bagaimana saya bisa mentranspos data menggunakan perkiraan kecocokan? Katakanlah, saya ingin mengekstrak semua nilai dari Kolom B yang cocok dengan 9 karakter/digit pertama dari Kolom A? Kolom B memiliki 11 karakter sedangkan A hanya 9. terima kasih!
Komentar ini diminimalkan oleh moderator di situs
Saya harus melakukan kebalikan dari ini. Saya memiliki banyak kolom yang terkait dengan id baris dan saya ingin menempelkannya ke dalam dua kolom
misalnya saya punya
rowid, nilai, nilai1, nilai2, nilai3, nilai4, nilai..225
100, Lumba-lumba, 255, 9--, sarah, jameson, ....
179, Router, banjir, jason, 89, hidung



Saya ingin terlihat seperti ini
100, Lumba-lumba
100, 255
100, 9--
100, sar
100, jaemeson
179, Router
179, banjir
179, jason
179, 89
179, hidung
Komentar ini diminimalkan oleh moderator di situs
Halo, Dave,
Untuk mengatasi masalah Anda, silakan gunakan kode VBA di bawah ini: (Catatan: Saat Anda memilih rentang data yang ingin Anda transpos, harap kecualikan baris header.)

Sub TransposeUnique_2()
Redupkan xLow, xLHitung Selama
Redupkan xRg Sebagai Rentang
Redupkan xOutRg Sebagai Rentang
Redupkan xObjRRg Sebagai Rentang
Redupkan xTxt Sebagai String
Redupkan x Hitung Selamanya
Redupkan xVRg Sebagai Rentang
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("silakan pilih rentang data:", "Kutools for Excel", xTxt, , , , , 8)
Tetapkan xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Jika xRg Bukan Apa-apa Kemudian Keluar Sub
Jika (xRg.Rows.count < 2) Atau _
(xRg.Area.count > 1) Lalu
MsgBox "Pilihan salah", , "Kutools for Excel"
Keluar dari Sub
End If
Set xOutRg = Application.InputBox("silakan pilih rentang keluaran (tentukan satu sel):", "Kutools for Excel", xTxt, , , , , 8)
Jika xOutRg Bukan Apa-apa Kemudian Keluar dari Sub
Application.ScreenUpdating = Salah
xLCount = xRg.Columns.count
Untuk xLRow = 1 Ke xRg.Rows.count
Tetapkan xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operasi:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = Salah
Rentang(Sel(xOutRg.Row, xOutRg.Column), Sel(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Nilai = xRg.Sel(xLRow, 1).Nilai
Tetapkan xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
Next
Application.ScreenUpdating = Benar
End Sub
Komentar ini diminimalkan oleh moderator di situs
Terima kasih, ini bekerja dengan sempurna, Anda menyelamatkan saya 2 hari! :)
Komentar ini diminimalkan oleh moderator di situs
Halo Skyyang,
tolong bagikan kode untuk 3 kolom. Di bawah ini adalah contohnya:
Saya ingin data seperti: komunitas yogesh@gmail.com 1 hanya melihat komunitas 2 hanya melihat ...... goyal@gmail.com komunitas 1 hanya melihat komunitas 2 melihat saja........

Komentar ini diminimalkan oleh moderator di situs
Halo, ygoyal,

Untuk mengatasi masalah Anda, silakan terapkan kode di bawah ini:

Sub TransposeUnique_2()

Redupkan xLow, xLHitung Selama

Redupkan xRg Sebagai Rentang

Redupkan xOutRg Sebagai Rentang

Redupkan xObjRRg Sebagai Rentang

Redupkan xTxt Sebagai String

Redupkan x Hitung Selamanya

Redupkan xVRg Sebagai Rentang

Redupkan xC, xI, xI1, xI2 Sebagai Bilangan Bulat

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox("silakan pilih rentang data:", "Kutools for Excel", xTxt, , , , , 8)

Tetapkan xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Jika xRg Bukan Apa-apa Kemudian Keluar Sub

Jika (xRg.Rows.Count < 2) Atau _

(xRg.Areas.Count > 1) Lalu

MsgBox "Pilihan salah", , "Kutools for Excel"

Keluar dari Sub

End If

Set xOutRg = Application.InputBox("silakan pilih rentang keluaran (tentukan satu sel):", "Kutools for Excel", xTxt, , , , , 8)

Jika xOutRg Bukan Apa-apa Kemudian Keluar dari Sub

Application.ScreenUpdating = Salah

xLCount = xRg.Columns.Count

Untuk xLRow = 1 Ke xRg.Rows.Count

Tetapkan xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)

On Error Resume Next

xC = (xObjRRg.Count Mod 2)

Jika xC <> 0 Maka

xC = Int(xObjRRg.Hitung / 2) + 1

Lain

xC = Int(xObjRRg.Hitung / 2)

End If

xI1 = 1

xI2 = 2

Untuk xI = 1 Untuk xC

Rentang(xObjRRg.Item(xI1), xObjRRg.Item(xI2)).Salin

xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operasi:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = Salah

xOutRg.Value = xRg.Sel(xLRow, 1).Nilai

Tetapkan xOutRg = xOutRg.Offset(RowOffset:=1)

xI1 = xI1 + (2)

xI2 = xI2 + (2)

Next

Next

Application.ScreenUpdating = Benar

End Sub



Silakan dicoba, semoga bisa membantu Anda!
Komentar ini diminimalkan oleh moderator di situs
Halo Bro, Kode ini bekerja sebaliknya. Silakan lihat tangkapan layar terlampir dari persyaratan. Data yang tersedia berdasarkan baris dan ingin mentranspos data dalam kolom .
Komentar ini diminimalkan oleh moderator di situs
Hai, ygoyal,
Maaf terlambat membalas, silakan terapkan kode berikut, silakan coba!

Sub transposeunik()

'updateby Extendoffice

Redupkan xLow Selamanya

Redupkan Aku Selamanya

Redupkan xCrit Sebagai String

Redupkan xCol Sebagai Koleksi Baru

Redupkan xRg Sebagai Rentang

Redupkan xOutRg Sebagai Rentang

Redupkan xTxt Sebagai String

Redupkan x Hitung Selamanya

Redupkan xVRg Sebagai Rentang

Redupkan xFRg, xSRg, xCRg Sebagai Rentang

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox("silakan pilih rentang data(hanya 3 kolom):", "Kutools for Excel", xTxt, , , , , 8)

Tetapkan xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Jika xRg Bukan Apa-apa Kemudian Keluar Sub

Jika (xRg.Columns.Count <> 3) Atau _

(xRg.Areas.Count > 1) Lalu

MsgBox "rentang yang digunakan hanya satu area dengan dua kolom", , "Kutools for Excel"

Keluar dari Sub

End If

Set xOutRg = Application.InputBox("silakan pilih rentang keluaran (tentukan satu sel):", "Kutools for Excel", xTxt, , , , , 8)

Jika xOutRg Bukan Apa-apa Kemudian Keluar dari Sub

Tetapkan xOutRg = xOutRg.Range(1)

xLrow = xRg.Rows.Count

Untuk i = 2 Ke xLrow

xCol.Tambahkan xRg.Sel(i, 1).Nilai, xRg.Sel(i, 1).Nilai

Next

Application.ScreenUpdating = Salah

Application.ScreenUpdating = Salah

Untuk i = 1 Ke xCol.Count

xCrit = xCol.Item(i)

xOutRg.Offset(i, 0) = xKrit

Bidang xRg.AutoFilter:=1, Kriteria1:=xCrit

Tetapkan xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

Jika xVRg.Count > xCount Maka xVRg.Count = xVRg.Count

Tetapkan xSRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

Tetapkan xCRg = xOutRg.Offset(i, 1)

Untuk Setiap xFRg Dalam xSRg

xFRg.Salin

xCRg.PasteSpesial

xRg.Range("B1").Copy

xCRg.Offset(-(i), 0).PasteSpecial

xFRg.Offset(0, 1).Salin

Tetapkan xCRg = xCRg.Offset(0, 1)

xCRg.PasteSpesial

xRg.Range("c1").Copy

xCRg.Offset(-(i), 0).PasteSpecial

Tetapkan xCRg = xCRg.Offset(0, 1)

Next

Application.CutCopyMode = Salah

Next

xRg.Item(1).Salin

xOutRg.PasteSpecial

xRg.Filter Otomatis

Application.ScreenUpdating = Benar

End Sub
Komentar ini diminimalkan oleh moderator di situs
Hai Bro saya mencoba menggunakan kode ini tetapi excel hang ketika saya menjalankan kode ini dan tidak dapat melihat output dari kode di atas. tolong sarankan apa yang harus dilakukan dalam kasus ini.
Komentar ini diminimalkan oleh moderator di situs
Hai,
Kode berfungsi dengan baik di buku kerja saya, versi Excel mana yang Anda gunakan?
Komentar ini diminimalkan oleh moderator di situs
ms.excel 2016
Komentar ini diminimalkan oleh moderator di situs
Kode berfungsi dengan baik di Excel 2016 saya juga, silakan coba dengan beberapa data rentang kecil terlebih dahulu.
Komentar ini diminimalkan oleh moderator di situs
Telah diuji pada 160 catatan tetapi masih ada duplikatnya.
Komentar ini diminimalkan oleh moderator di situs
Hai Skyyang, Suka ini, apakah Anda bisa membuatnya berfungsi untuk empat kolom? lagi hanya menggunakan dua yang pertama sebagai pembanding, atau lebih baik lagi kemampuan untuk memilih jumlah kolom sebelum memilihnya? Saya melihat skrip Anda, tidak akan memiliki petunjuk tentang cara mencapai ini ...
Komentar ini diminimalkan oleh moderator di situs
Hai Skyyang, Suka ini, apakah Anda bisa membuatnya berfungsi untuk empat kolom? lagi hanya menggunakan dua yang pertama sebagai pembanding, atau lebih baik lagi kemampuan untuk memilih jumlah kolom sebelum memilihnya? Saya melihat skrip Anda, tidak akan memiliki petunjuk tentang cara mencapai ini ...
Komentar ini diminimalkan oleh moderator di situs
Bro, tolong bantu ini.
Komentar ini diminimalkan oleh moderator di situs
Halo gan, masih ditunggu bantuannya
Komentar ini diminimalkan oleh moderator di situs
Halo
Komentar ini diminimalkan oleh moderator di situs
Sama seperti Dave, saya harus melakukan kebalikan dari ini. Tabel 2 untuk transpose ke Tabel 1. Input Tabel 2, Output Tabel 1.
Komentar ini diminimalkan oleh moderator di situs
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) bekerja untuk saya untuk mengubah nilai unik kolom menjadi yang baru kolom TAPI ... apakah ada cara untuk mengiklankan dalam fungsi pengurutan sehingga kolom baru yang dibuat dialihkan dalam urutan menaik?


Terima kasih!
Komentar ini diminimalkan oleh moderator di situs
Perlu mendapatkan output yang sama tetapi untuk kolom yang telah ditentukan sebelumnya akan dipilih ($A,$B) dan membutuhkan kolom output Posisi pada $D$1.
Jika ada yang punya ide itu akan sangat membantu!!!!
Komentar ini diminimalkan oleh moderator di situs
Hai, bisakah kita menambahkan setiap baris dan memberikan output dalam satu kolom, dengan fungsi di atas.
Komentar ini diminimalkan oleh moderator di situs
Jadi saya bekerja untuk sebuah perusahaan. Kami memiliki kolom untuk info seperti Nama belakang, nama depan, pangkat, bagian, nomor telepon, alamat. Apakah ada cara saya bisa menggunakan rumus serupa untuk mengubah urutan seluruh baris info ke kolom dengan nama?
Komentar ini diminimalkan oleh moderator di situs
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) bekerja untuk saya untuk mengubah nilai unik kolom A menjadi yang baru kolom TETAPI ... apakah ada cara untuk mendapatkan semua nilai di kolom B untuk ditransposisikan seperti yang diberikan di bawah ini:

Tanggal Pesanan Produk Pesanan Produk Pesanan Pesanan Pesanan Pesanan Pesanan Pesanan
KTE 100 3/3/2019 KTE 100 100 100 200 100 150 100
KTO 150 3/3/2019 KTO 150 100 200 100 150 200
KTE 100 3/4/2019 BOT 150 100 200 150 100 200
KTO 100 3/4/2019 COD 200 150 100 150
KTO 200 3/5/2019
KTE 100 3/5/2019
BOT 150 3/5/2019
BOT 100 3/6/2019
KTO 100 3/6/2019
KTE 200 3/6/2019
BOT 200 3/7/2019
COD 200 3/7/2019
KTE 100 3/7/2019
KTO 150 3/7/2019
BOT 150 3/8/2019
KTE 150 3/8/2019
COD 150 3/8/2019
BOT 100 3/9/2019
BOT 200 3/10/2019
COD 100 3/10/2019
KTO 200 3/10/2019
COD 150 3/11/2019
KTE 100 3/11/2019
Komentar ini diminimalkan oleh moderator di situs
Makro tidak berfungsi. Itu hanya menyalin konten di sel A1.
Komentar ini diminimalkan oleh moderator di situs
Saya memiliki kumpulan data di Kolom A (ID Unik) - E. Setiap baris memiliki data berdasarkan ID#, ada beberapa baris untuk setiap ID# tetapi saya ingin satu baris per ID# dengan semua data lainnya di kolom ( panjangnya minimal 5 kolom dan maksimal 25 tergantung pada berapa banyak setiap ID unik yang dimiliki). Saya menemukan kode tetapi hanya berfungsi untuk dua kolom. Saya harus menggabungkan empat kolom (tidak termasuk ID) kemudian membatasi setelah menjalankan makro (banyak pekerjaan). Untuk 15,000 baris data, ini memakan waktu ekstra. Apakah ada makro kolom tanpa akhir yang berfungsi? Terima kasih sebelumnya semua orang atas bantuan Anda!
KODE ID KODE ST# TANGGAL
Komentar ini diminimalkan oleh moderator di situs
Saya memiliki kumpulan data yang memiliki beberapa ID di kolom A, dan telah menghubungkan data di kolom B. Saya menggunakan rumus di atas dan mengubahnya sedikit sehingga saya memindahkan sel di kolom B menjadi baris berdasarkan ID unik terikat padanya di kolom A. Rumus yang digunakan untuk mengidentifikasi ID unik adalah: =INDEX($A$2:$A$13409, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$13409), 0)). Rumus yang digunakan untuk melakukan transpos adalah: =IFERROR(INDEX($B$2:$B$13409, MATCH(0, IF($A$2:$A$13409<>$D2, 1, 0)+COUNTIF($D2: D2,$B$2:$B$13409), 0), "T/A"). Keduanya diberikan dalam artikel, hanya sedikit diubah.

Masalahnya adalah kumpulan data saya di kolom B memiliki duplikat, terkadang muncul satu demi satu, dan saya membutuhkan semua nilai di kolom untuk disajikan dalam baris.

Gambar terlampir adalah apa yang saya ingin tabel untuk menunjukkan (ini adalah ukuran sampel kecil, dataset yang benar memiliki lebih dari 13,000 entri). Apa yang terjadi sekarang adalah ketika nilai berulang ditemukan, itu tidak akan menghitungnya.
yaitu Baris 9 untuk ID 11980 sekarang hanya menunjukkan 0 -31.79 -0.19 -0.74 N/AN/A .... padahal yang saya butuhkan untuk menunjukkannya adalah 0 0 -31.79 -0.19 -0.74 0 0 N/AN/A . ...

Apakah ada cara untuk mengatasi masalah ini dan menyelesaikannya?

Terima kasih sebelumnya!
Komentar ini diminimalkan oleh moderator di situs
Apakah Anda pernah mendapatkan respon/resolusi untuk tantangan ini? Saya memiliki yang sama.
Komentar ini diminimalkan oleh moderator di situs
Saya memiliki kumpulan data yang memiliki 3 kolom yang disajikan di bawah ini:



Kolom A Kolom B Kolom C



Negara1 Tahun1 Nilai1

Negara1 Tahun2 Nilai2

Negara1 Tahun3 Nilai3,



Negara2 Tahun1 Nilai1

Negara2 Tahun3 Nilai3,

...........



Saya perlu menggabungkan 3 kolom ini dalam tabel seperti ini:

Tahun1 Tahun2 Tahun3 ................................... TahunX



Negara1 Nilai1 Nilai2 Nilai3

Negara2 Nilai1 #Nilai yang Hilang3

.....
.....
.....

CountryX Valuex ..................





Masalah yang saya hadapi adalah bahwa untuk beberapa data di kolom A saya tidak memiliki nilai untuk setiap tahun hanya untuk beberapa. (Misalnya negara 2 memiliki nilai yang hilang untuk Tahun 2)





Apakah ada cara untuk mengatasi masalah ini dan menyelesaikannya?



Terima kasih sebelumnya!
Komentar ini diminimalkan oleh moderator di situs
dapatkah Anda membagikan kode jika ada 2 kolom yang akan disalin, bukan 1. di bawah ini adalah contohnya.
Belum ada komentar yang diposting di sini
Muat Lebih
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan