Loncat ke daftar isi utama

Bagaimana dengan mudah menggabungkan teks berdasarkan kriteria di Excel?

Misalkan saya memiliki kolom nomor ID yang berisi beberapa duplikat dan kolom nama, dan sekarang, saya ingin menggabungkan nama-nama berdasarkan nomor ID unik seperti yang ditunjukkan screenshot kiri, untuk dengan cepat menggabungkan teks berdasarkan kriteria, bagaimana kita bisa lakukan di Excel?

doc menggabungkan teks berdasarkan kriteria 1

Teks gabungan berdasarkan kriteria dengan User Defined Function

Teks gabungan berdasarkan kriteria dengan Kutools for Excel


Untuk menggabungkan teks dengan nomor ID unik, Anda dapat mengekstrak nilai unik terlebih dahulu, lalu membuat Fungsi Buatan Pengguna untuk menggabungkan nama berdasarkan ID unik.

1. Ambil data berikut sebagai contoh, Anda perlu mengekstrak nomor ID unik terlebih dahulu, silakan gunakan rumus array ini: =IFERROR(INDEX($A$2:$A$15, MATCH(0,COUNTIF($D$1:D1, $A$2:$A$15), 0)),""), Masukkan rumus ini ke dalam sel kosong, D2 misalnya, lalu tekan Ctrl + Shift + Enter kunci bersama, lihat tangkapan layar:

doc menggabungkan teks berdasarkan kriteria 2

jenis: Dalam rumus di atas, A2: A15 adalah rentang data daftar yang ingin Anda ekstrak nilai uniknya, D1 adalah sel pertama dari kolom yang ingin Anda masukkan hasil ekstraksi.

2. Dan kemudian seret gagang isian ke bawah untuk mengekstrak semua nilai unik sampai kosong ditampilkan, lihat tangkapan layar:

doc menggabungkan teks berdasarkan kriteria 3

3. Pada langkah ini, Anda harus membuat file Fungsi Buatan Pengguna untuk menggabungkan nama berdasarkan nomor ID unik, harap tahan ALT + F11 kunci, dan itu membuka Microsoft Visual Basic untuk Aplikasi jendela.

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

Kode VBA: menggabungkan teks berdasarkan kriteria

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
'Updateby Extendoffice
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If
For i = 1 To CriteriaRange.Count
    If CriteriaRange.Cells(i).Value = Condition Then
        xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
    End If
Next i
If xResult <> "" Then
    xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

5. Kemudian simpan dan tutup kode ini, kembali ke lembar kerja Anda, dan masukkan rumus ini ke dalam sel E2, = CONCATENATEIF ($ A $ 2: $ A $ 15, D2, $ B $ 2: $ B $ 15, ",") , lihat tangkapan layar:

doc menggabungkan teks berdasarkan kriteria 4

6. Kemudian seret gagang isian ke sel yang ingin Anda terapkan rumus ini, dan semua nama yang sesuai telah digabungkan berdasarkan nomor ID, lihat tangkapan layar:

doc menggabungkan teks berdasarkan kriteria 5

Tip:

1. Dalam rumus di atas, A2: A15 adalah data asli yang ingin Anda gabungkan berdasarkan, D2 adalah nilai unik yang telah Anda ekstrak, dan B2: B15 adalah kolom nama yang ingin Anda gabungkan.

2. Seperti yang Anda lihat, saya menggabungkan nilai yang dipisahkan dengan koma, Anda dapat menggunakan karakter lain dengan mengubah koma "," dari rumus yang Anda butuhkan.


Jika Anda memiliki Kutools untuk Excel, Dengan yang Lanjutan Gabungkan Baris utilitas, Anda dapat dengan cepat dan mudah menggabungkan teks berdasarkan kriteria.

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 sebagai langkah berikut:

1. Pilih rentang data yang ingin Anda gabungkan berdasarkan satu kolom.

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

3. di Gabungkan Baris Berdasarkan Kolom kotak dialog, klik kolom ID dan kemudian klik Kunci utama untuk menjadikan kolom ini sebagai kolom kunci yang menjadi dasar gabungan data Anda, lihat tangkapan layar:

doc menggabungkan teks berdasarkan kriteria 7

4. Dan kemudian klik Nama kolom yang ingin Anda gabungkan nilainya, lalu klik Menggabungkan opsi, dan pilih satu pemisah untuk data gabungan, lihat tangkapan layar:

doc menggabungkan teks berdasarkan kriteria 8

5. Setelah menyelesaikan pengaturan ini, klik OK untuk keluar dari dialog, dan data di kolom B telah digabungkan bersama berdasarkan kolom kunci A. Lihat tangkapan layar:

doc menggabungkan teks berdasarkan kriteria 9

Dengan fitur ini, masalah berikut akan diselesaikan secepatnya:

Bagaimana cara menggabungkan beberapa baris menjadi satu dan menjumlahkan duplikat di Excel?

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 AI Ajudan: Merevolusi analisis data berdasarkan: Eksekusi Cerdas   |  Hasilkan Kode  |  Buat Rumus Khusus  |  Analisis Data dan Hasilkan Grafik  |  Aktifkan Fungsi Kutools...
Fitur Populer: Temukan, Sorot, atau Identifikasi Duplikat   |  Hapus Baris Kosong   |  Gabungkan Kolom atau Sel tanpa Kehilangan Data   |   Putaran tanpa Formula ...
Pencarian Super: VLookup Beberapa Kriteria    VLookup Nilai Berganda  |   VLookup di Beberapa Lembar   |   Pencarian Fuzzy ....
Daftar Drop-down Lanjutan: Buat Daftar Drop Down dengan Cepat   |  Daftar Drop Down yang Bergantung   |  Multi-pilih Drop Down List ....
Manajer Kolom: Tambahkan Jumlah Kolom Tertentu  |  Pindahkan Kolom  |  Alihkan Status Visibilitas Kolom Tersembunyi  |  Bandingkan Rentang & Kolom ...
Fitur Unggulan: Fokus Kisi   |  Tampilan Desain   |   Bar Formula Besar    Manajer Buku Kerja & Lembar   |  Perpustakaan Sumberdaya (Teks otomatis)   |  Pemetik tanggal   |  Gabungkan Lembar Kerja   |  Enkripsi/Dekripsi Sel    Kirim Email berdasarkan Daftar   |  Filter Super   |   Filter Khusus (filter tebal/miring/coret...) ...
15 Perangkat Teratas12 Teks Tools (Tambahkan Teks, Hapus Karakter, ...)   |   50 + Grafik jenis (Gantt Chart, ...)   |   40+ Praktis Rumus (Hitung usia berdasarkan ulang tahun, ...)   |   19 Insersi Tools (Masukkan Kode QR, Sisipkan Gambar dari Jalur, ...)   |   12 Konversi Tools (Angka ke Kata, Konversi Mata Uang, ...)   |   7 Gabungkan & Pisahkan Tools (Lanjutan Gabungkan Baris, Pisahkan Sel, ...)   |   ... dan banyak lagi

Tingkatkan Keterampilan Excel Anda dengan Kutools for Excel, dan Rasakan Efisiensi yang Belum Pernah Ada Sebelumnya. Kutools for Excel Menawarkan Lebih dari 300 Fitur Lanjutan untuk Meningkatkan Produktivitas dan Menghemat Waktu.  Klik Di Sini untuk Mendapatkan Fitur yang Paling Anda Butuhkan...

Deskripsi Produk


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.
  • Meningkatkan produktivitas Anda sebesar 50%, dan mengurangi ratusan klik mouse untuk Anda setiap hari!
Comments (38)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Great function! Is there a way to maintain the format in the cell it's concatenating data from? i.e. $45.07, $555.34, $0.00, $0.25, -$12.25 I've figured out how to stack them with wrap text and CHAR(10) in place of "," but having trouble keeping the format. I will be using this for a mail merge in Word.
This comment was minimized by the moderator on the site
Hello, Laurie,If you want to keep the cell formatting when concatenating the data, you can apply the Advanced Combine Rows feature of Kutools for Excel, in the dialog box, after finishing the settings, you just need to check Use formatted values option, and all the data formatting will be kept as you need.
You can download Kutools for Excel and free trial 30-day.
This comment was minimized by the moderator on the site
Is there any way to add "and" instead of "," before the last data? (For example: D2355, D2273, D2397, D2600 and D2386)
This comment was minimized by the moderator on the site
Hi, Hossain,May be there is not a direct method for solving your problem, you can add another formula to convert the last comma to the text "and".=SUBSTITUTE(E2,","," and ",LEN(E2)-LEN(SUBSTITUTE(E2,",","")))
Please try, thank you!
This comment was minimized by the moderator on the site
It worked like a charm sir. Thank you so much.
This comment was minimized by the moderator on the site
Great function, exactly what I needed! Works like a charm
This comment was minimized by the moderator on the site
Hi,

Very helpful VBA solution. Thank you kindly! My question is: Is there a way to change the code or function for multiple criteria? Although the code works for me, I need it to show values corresponding to a timestamp-interval (>= timestamp A, <= timestamp B)


Thank you in advance. :)
This comment was minimized by the moderator on the site
Is there a way to assign this to a button? On large data ranges it takes a while, so ideally I only want it to start the concatenate process once I've finished doing everything else in the sheet. I tried adding a trigger myself but it stopped working completely
This comment was minimized by the moderator on the site
BTW i used the VBA solution
This comment was minimized by the moderator on the site
Extremely helpfull! After editing it for my sheet i have #VALUE! for some of the unique values.
I did a countif to see if it could be that there are too many names to concatenate. The two unique values that have the #VALUE! error have 13635 and 19810 results. Is there a way to overcome this?
This comment was minimized by the moderator on the site
How can I ignore blank cells? mine currently displays this:

";;;;;;;;;"

I'd like for the 1st, 3rd and last 3 semi colons not to there/show. TIA
This comment was minimized by the moderator on the site
Hello, Chantelle
When concatenating the cell values ignoring the blank cells, please apply the below User Defined Function:

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
ConcatenateIf = CVErr(xlErrRef)
Exit Function
End If
For i = 1 To CriteriaRange.Count
If CriteriaRange.Cells(i).Value = Condition Then
If ConcatenateRange.Cells(i).Value <> "" Then
xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
End If
End If
Next i
If xResult <> "" Then
xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

Please try it, hope it can help you!
This comment was minimized by the moderator on the site
thank you very much! This was so simple and helped a lot!!
This comment was minimized by the moderator on the site
Is it possible to replace the comma splitter with a line break, i.e. char(10)? Many thanks.
This comment was minimized by the moderator on the site
Hello, David,

To combine the cells with line break, the following User Defined Function may help you.

Function ConcatenateIf_LineBreak(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
ConcatenateIf = CVErr(xlErrRef)
Exit Function
End If
For I = 1 To CriteriaRange.Count
If CriteriaRange.Cells(I).Value = Condition Then
xResult = xResult & vbCrLf & ConcatenateRange.Cells(I).Value
End If
Next I
If xResult <> "" Then
xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf_LineBreak = xResult
Exit Function
End Function

After pasting this code, then apply this formula: =ConcatenateIf_LineBreak(A2:A13,F2,B2:B13,",").

After getting the results with this formula, you should click the Wrap Text to get the correct results you need.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations