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

Bagaimana cara membandingkan dua string untuk kesamaan atau menyoroti perbedaan di Excel?

Dalam beberapa kasus, Anda mungkin hanya perlu membandingkan dua sel string yang berdekatan dan menandai persamaan atau perbedaannya di Excel. Artikel ini memberikan dua metode bagi Anda untuk mencapainya.

Bandingkan dua string dengan rumus
Bandingkan dua string untuk persamaan atau soroti perbedaan dengan kode VBA


Bandingkan dua string dengan rumus

Seperti gambar di bawah ini, jika Anda hanya ingin tahu apakah string yang dibandingkan cocok atau tidak, Anda dapat menerapkan rumus berikut.

1. Pilih sel C2 kosong, masukkan rumus = PERSIS (A2, B2) ke dalam Formula Bar, lalu tekan tombol Enter. Lihat tangkapan layar:

Note: Dalam rumusnya, A2 dan B2 adalah sel yang berisi string pembanding.

2. Tetap pilih sel hasil, lalu seret Fill Handle ke sel sampai mendapatkan semua hasil yang dibandingkan.

Hasil FALSE berarti string yang dibandingkan berbeda, dan hasil TRUE menunjukkan dua string yang dibandingkan cocok. Lihat tangkapan layar:


Bandingkan dua string untuk persamaan atau soroti perbedaan dengan kode VBA

Jika Anda ingin membandingkan dua string dan menyoroti persamaan atau perbedaan di antara keduanya. Kode VBA berikut dapat membantu Anda.

1. tekan lain + F11 tombol secara bersamaan untuk membuka Microsoft Visual Basic untuk Aplikasi jendela.

2. Dalam Microsoft Visual Basic untuk Aplikasi window, klik Menyisipkan > Modul. Kemudian salin dan tempel kode berikut ke jendela Kode.

Kode VBA: Bandingkan dua string kolom untuk persamaan atau sorotan perbedaan

Sub highlight()
    Dim xRg1 As Range
    Dim xRg2 As Range
    Dim xTxt As String
    Dim xCell1 As Range
    Dim xCell2 As Range
    Dim I As Long
    Dim J As Integer
    Dim xLen As Integer
    Dim xDiffs As Boolean
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg1 = Application.InputBox("Range A:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg1 Is Nothing Then Exit Sub
    If xRg1.Columns.Count > 1 Or xRg1.Areas.Count > 1 Then
        MsgBox "Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lOne
    End If
lTwo:
    Set xRg2 = Application.InputBox("Range B:", "Kutools for Excel", "", , , , , 8)
    If xRg2 Is Nothing Then Exit Sub
    If xRg2.Columns.Count > 1 Or xRg2.Areas.Count > 1 Then
        MsgBox "Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lTwo
    End If
    If xRg1.CountLarge <> xRg2.CountLarge Then
       MsgBox "Two selected ranges must have the same numbers of cells ", vbInformation, "Kutools for Excel"
       GoTo lTwo
    End If
    xDiffs = (MsgBox("Click Yes to highlight similarities, click No to highlight differences ", vbYesNo + vbQuestion, "Kutools for Excel") = vbNo)
    Application.ScreenUpdating = False
    xRg2.Font.ColorIndex = xlAutomatic
    For I = 1 To xRg1.Count
        Set xCell1 = xRg1.Cells(I)
        Set xCell2 = xRg2.Cells(I)
        If xCell1.Value2 = xCell2.Value2 Then
            If Not xDiffs Then xCell2.Font.Color = vbRed
        Else
            xLen = Len(xCell1.Value2)
            For J = 1 To xLen
                If Not xCell1.Characters(J, 1).Text = xCell2.Characters(J, 1).Text Then Exit For
            Next J
            If Not xDiffs Then
                If J <= Len(xCell2.Value2) And J > 1 Then
                    xCell2.Characters(1, J - 1).Font.Color = vbRed
                End If
            Else
                If J <= Len(xCell2.Value2) Then
                    xCell2.Characters(J, Len(xCell2.Value2) - J + 1).Font.Color = vbRed
                End If
            End If
        End If
    Next
    Application.ScreenUpdating = True
End Sub

3. tekan F5 kunci untuk menjalankan kode. Di bagian pertama Kutools untuk Excel kotak dialog, pilih kolom pertama string teks yang perlu Anda bandingkan, lalu klik OK .

4. Lalu yang kedua Kutools untuk Excel kotak dialog muncul, pilih string kolom kedua, dan klik OK .

5. Terakhir Kutools untuk Excel kotak dialog, jika Anda ingin membandingkan string untuk kesamaan, klik Yes tombol. Dan untuk menyorot perbedaan dari string yang dibandingkan, klik Tidak tombol. Lihat tangkapan layar:

Kemudian Anda dapat melihat hasil perbandingan seperti gambar di bawah ini.


Artikel terkait:


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-2021 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.
  • Meningkatkan produktivitas Anda sebesar 50%, dan mengurangi ratusan klik mouse untuk Anda setiap hari!
officetab bawah
Urutkan komentar berdasarkan
komentar (17)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
Dear Sir, Terima kasih banyak atas kode VBA Anda. Hal ini sangat membantu. Sebenarnya saya tidak memiliki pengetahuan tentang coding. Jadi, bahkan untuk memodifikasi sebagian kecil dari pengkodean sesuai dengan kebutuhan saya, saya tidak berdaya. Saya punya satu permintaan tentang pengkodean ini agar lebih efisien dan ramah pengguna. Bisakah bantu saya?? Tujuan utama dari pengkodean di atas adalah untuk menemukan dan menyoroti perbedaan antara data dalam dua kolom untuk referensi yang mudah. Tapi, pengkodean ini sedikit rumit karena menyangkut tujuan. Karena, ini mempertimbangkan "spasi" antara konten dan menyorot seluruh data meskipun stringnya sama. Jadi, jika kita dapat membandingkan data tanpa spasi, maka kita dapat memfilter bagian dari data yang disorot. Selain itu, alih-alih hanya menyoroti string yang tidak serupa, ini menyoroti seluruh data langsung dari string pertama yang berbeda ke data hingga akhir sel. Oleh karena itu, saya ingin menyimpulkan permintaan saya seperti di bawah 2 poin. 1) harap edit pengkodean untuk membandingkan sel tanpa mempertimbangkan spasi 2) harap edit pengkodean sedemikian rupa sehingga hanya dapat menyorot string yang berbeda tetapi tidak menyorot seluruh para dari titik string pertama yang berbeda. Terima kasih banyak atas bantuan Anda. Salam, Surya
Komentar ini diminimalkan oleh moderator di situs
saya memiliki permintaan yang sama dengan suryateja.
2) harap edit pengkodean sedemikian rupa sehingga hanya dapat menyorot string yang berbeda tetapi tidak menyorot seluruh para dari titik string pertama yang berbeda.
Komentar ini diminimalkan oleh moderator di situs
Dosis kode di atas tidak berfungsi jika ada sel yang berisi formula.
Komentar ini diminimalkan oleh moderator di situs
Terima kasih!
Komentar ini diminimalkan oleh moderator di situs
Perlu tahu bagaimana saya dapat mengidentifikasi string dengan format teks yang sama sehingga saya dapat menautkan akun ke semua string tersebut. Misalnya, jika saya memiliki 1,000 sel dengan konten berbeda, saya ingin memisahkan sel yang memiliki format 042-XXX-XX-00 untuk menautkannya ke akun#.
Komentar ini diminimalkan oleh moderator di situs
Halo
Bagaimana cara menyalin Kolom1 di sebelah Kolom2 jika satu atau lebih item di Kolom 1 mirip/identik dengan satu atau lebih item di Kolom2?
Maaf tapi saya telah bekerja dengan Excel VBA untuk sementara waktu dan saya tidak dapat menemukan jawaban untuk pertanyaan ini.
Terima kasih sebelumnya atas jawaban Anda.
Komentar ini diminimalkan oleh moderator di situs
Halo
Bagaimana cara menyalin Kolom1 di sebelah Kolom2 jika satu atau lebih item di Kolom 1 mirip/identik dengan satu atau lebih item di Kolom2?
Maaf tapi saya telah bekerja dengan Excel VBA untuk sementara waktu dan saya tidak dapat menemukan jawaban untuk pertanyaan ini.
Terima kasih sebelumnya atas jawaban Anda.
Komentar ini diminimalkan oleh moderator di situs
Skrip yang sangat berguna! terima kasih
Komentar ini diminimalkan oleh moderator di situs
Bagaimana saya bisa mendapatkan nomor perbedaan antara dua string?

Contoh: "123456" dan "213456" ==> 2 perbedaan
Komentar ini diminimalkan oleh moderator di situs
hanya ingin mengucapkan terima kasih!
Komentar ini diminimalkan oleh moderator di situs
Saya sangat berharap ini akan berhasil. Tampaknya membandingkan seluruh sel dan bukan karakter di dalam sel. Cukup membandingkan Candy di satu sel dengan Andy di sel lain tidak menemukan kesamaan. Dan ketika saya membandingkan perbedaan, seluruh nama Andy disorot dengan warna merah.
Komentar ini diminimalkan oleh moderator di situs
Pertama..TERIMA KASIH Perpanjang orang-orang Kantor untuk kode yang bagus!!

Coba modifikasi ini. Ini hanya memperluas loop pemeriksaan per karakter untuk memasukkan pemformatan warna font, menambahkan "Hitam" default, dan juga membandingkan karakter dengan yang terpanjang dari dua sel yang dibandingkan.

Sub highlight()
    Dim xRg1 As Range
    Dim xRg2 As Range
    Dim xTxt As String
    Dim xCell1 As Range
    Dim xCell2 As Range
    Dim I As Long
    Dim J As Integer
    Dim xLen As Integer
    Dim xDiffs As Boolean
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg1 = Application.InputBox("Range A:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg1 Is Nothing Then Exit Sub
    If xRg1.Columns.Count > 1 Or xRg1.Areas.Count > 1 Then
        MsgBox "Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lOne
    End If
lTwo:
    Set xRg2 = Application.InputBox("Range B:", "Kutools for Excel", "", , , , , 8)
    If xRg2 Is Nothing Then Exit Sub
    If xRg2.Columns.Count > 1 Or xRg2.Areas.Count > 1 Then
        MsgBox "Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lTwo
    End If
    If xRg1.CountLarge <> xRg2.CountLarge Then
       MsgBox "Two selected ranges must have the same numbers of cells ", vbInformation, "Kutools for Excel"
       GoTo lTwo
    End If
    xDiffs = (MsgBox("Click Yes to highlight similarities, click No to highlight differences ", vbYesNo + vbQuestion, "Kutools for Excel") = vbNo)
    Application.ScreenUpdating = False
    xRg2.Font.ColorIndex = xlAutomatic
    For I = 1 To xRg1.Count
        Set xCell1 = xRg1.Cells(I)
        Set xCell2 = xRg2.Cells(I)
        If xCell1.Value2 = xCell2.Value2 Then
            If Not xDiffs Then xCell2.Font.Color = vbRed
        Else
            xLen = Application.WorksheetFunction.Max(Len(xCell1.Value2), Len(xCell2.Value2))
            For J = 1 To xLen
                xCell2.Characters(J, Len(xCell2.Value2) - J + 1).Font.Color = vbBlack
                If Not xCell1.Characters(J, 1).Text = xCell2.Characters(J, 1).Text Then
                    If Not xDiffs Then
                        If J <= Len(xCell2.Value2) And J > 1 Then
                            xCell2.Characters(1, J - 1).Font.Color = vbRed
                        End If
                    Else
                        If J <= Len(xCell2.Value2) Then
                            xCell2.Characters(J, Len(xCell2.Value2) - J + 1).Font.Color = vbRed
                        End If
                    End If
                End If
            Next J
        End If
    Next
    Application.ScreenUpdating = True
End Sub
Komentar ini diminimalkan oleh moderator di situs
TERIMA KASIH! ini hanya apa yang saya butuhkan!
Komentar ini diminimalkan oleh moderator di situs
Untuk menghindari masalah kode ini dengan spasi yang seharusnya dalam nilai ASCII 32 atau 160 (terutama jika string berasal dari HTML), Anda perlu memasukkan baris uji 46 dalam loop if endif seperti di bawah ini:
Jika Tidak ((Asc(xCell1.Characters(J, 1).Text) = 32 Atau Asc(xCell1.Characters(J, 1).Text) = 160) Dan (Asc(xCell2.Characters(J, 1).Text ) = 32 Atau Asc(xCell2.Characters(J, 1).Text) = 160)) Kemudian
( baris 46 Jika Tidak xCell1.Characters(J, 1).Text = xCell2.Characters(J, 1).Text Kemudian Keluar Untuk)
End If

Namun demikian terima kasih untuk kodenya.
Komentar ini diminimalkan oleh moderator di situs
Bagaimana cara menambahkan ini dengan benar? Saya mendapatkan kesalahan saat mencoba mengganti baris 46. Terima kasih
Komentar ini diminimalkan oleh moderator di situs
dalam contoh Anda, kata-kata "mari kita coba" serupa tetapi kode Anda tidak dapat menyorotnya.
Komentar ini diminimalkan oleh moderator di situs
Menghadapi sel VIA ROMA 1 dengan sel VIA RROMA 1 bukti program di rosso sia RROMA che 1. Non si può fare in modo che evidenzi solo la lettera diversa e quindi R? Terima kasih
Belum ada komentar yang diposting di sini
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan

Ikuti kami

Hak Cipta © 2009 - www.extendoffice.com. | Seluruh hak cipta. Dipersembahkan oleh ExtendOffice. | Peta Situs
Microsoft dan logo Office adalah merek dagang atau merek dagang terdaftar dari Microsoft Corporation di Amerika Serikat dan / atau negara lain.
Dilindungi oleh Sectigo SSL