Milyonlarca satır içeren 2 sütunu nasıl karşılaştıracağınızı ve her iki sütun arasındaki benzersiz değerleri nasıl çıkaracağınızı merak ediyorsanız, bu makaleyi okumalısınız. İki veri sütununu karşılaştırmak ve sonraki iki sütunda farkı göstermek için VBA kodunu kullanacağız.
Soru: A ve B sütunlarında birden fazla değer var. Bir makronun her iki sütunda da 40 binden fazla veri satırını kontrol etmesini ve ardından her bir sütundan benzersiz girişlerin listesini bir sonraki sütuna, yani C sütunlarına çıkarmasını istiyorum. & D sırasıyla. Bu örnekte, yalnızca 40 satırlık örnek veri alıyorum.
Orijinal soruyu burada bulabilirsiniz
Verilerin anlık görüntüsü aşağıdadır:
İki sütun listesini karşılaştırmak için VB düzenleyiciyi başlatmak için aşağıdaki adımları izlememiz gerekiyor:
- Geliştirici sekmesine tıklayın
- Kod grubundan Visual Basic'i seçin
- Aşağıdaki kodu standart modüle kopyalayın
Sub PullUniques() Dim rngCell As Range In Range("A2:A40") If WorksheetFunction.CountIf(Range("B2:B40"), rngCell) = 0 Sonra Range("C" & Rows.Count). End(xlUp).Offset(1) = rngCell End If Next If For Range In Range("B2:B40") If WorksheetFunction.CountIf(Range("A2:A40"), rngCell) = 0 Sonra Range("D" & Rows.Count).End(xlUp).Offset(1) = rngCell End If Next End Sub
- Yukarıdaki makro çalışacak şekilde ayarlanmıştır; ya F5 tuşuna basabiliriz -eğer şu anda Visual Basic Editör Ekranındaysanız -ya da “ALT + F8” kısayol tuşlarını kullanabiliriz, makronuzu seçin ve çalıştır düğmesine tıklayın
- A ve B sütunlarındaki benzersiz liste, C ve D sütunlarında otomatik olarak oluşturulacaktır.
Kod Açıklaması:
Yukarıdaki kodda, sonucu almak için For döngüsü ile birlikte IF işlevini kullanacağız.
- Dim rngCell As Range'i; rngCell As Range ilan etmenin amacı, "A2:A40" örnek aralığını belirli bir adla, yani örneğimizde "rngCell" ile atamak istiyoruz.
- Menzildeki Her rngCell için("A2:A40"); "rngCell" içindeki her hücreyi bir koşulla kontrol edeceğiz
- If WorksheetFunction.CountIf(Range("B2:B40"), rngCell) = 0 Sonra; bu kod satırı, B2:B40 ölçüt aralığını kontrol etmek için COUNTIF VBA işlevini kullanıyor rngCell sıfıra eşittir, ardından C sütununda rngCell'de saklanan değer kaydedilecektir
- Benzer şekilde, B sütunu için Her Döngü İçin'i çalıştıracağız ve D sütunundaki benzersiz değerleri çıkaracağız.
Çözüm: Her bir sütundan benzersiz metin veya değer listesi alabiliriz; C sütununun başlık adı (Sonuçlar - Liste 1'de var ama Liste 2'de yok) ve sütun D (Sonuçlar - Liste 2'de var ama Liste 1'de yok). Benzer bir gereksinimimiz varsa ancak sütun sayısı ikiden fazlaysa, sonucu elde etmek için kodu değiştirmemiz gerekir.
Bloglarımızı beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.
Sizden haber almayı çok isteriz, işimizi nasıl iyileştirebileceğimizi, tamamlayabileceğimizi veya yenileyebileceğimizi ve sizin için daha iyi hale getirebileceğimizi bize bildirin. bize yazın e-posta sitesi