Vba: bir dizedeki karakterlerin oluşumlarını sayma


VBA kullanarak bir karakterin bir dizede tekrarlanma sayısını saymak için aşağıdaki temel sözdizimini kullanabilirsiniz:

 Sub CountOccurrences()
    Dim i As Integer
    
    'Specify character to look for
    my_char = "/"
    
    'Count occurrences in each string in B2:B12 and display results in C2:C12
    For i = 2 To 12
        Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
        Range(" C " & i) = Count
    Next i
End Sub

Bu özel örnek , B2:B12 aralığındaki her hücrede eğik çizginin ( / ) oluşum sayısını sayar ve sonuçları C2:C12 aralığında görüntüler.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: VBA Kullanarak Bir Dizedeki Karakterlerin Oluşumlarını Sayma

Diyelim ki Excel’de farklı basketbolcuların isimlerini ve bir oyunda oynayabilecekleri pozisyonları gösteren aşağıdaki veri setine sahibiz:

Konum sütunundaki her dizedeki eğik çizgilerin ( / ) sayısını saymak istediğimizi varsayalım.

Bunun için aşağıdaki makroyu oluşturabiliriz:

 Sub CountOccurrences()
    Dim i As Integer
    
    'Specify character to look for
    my_char = "/"
    
    'Count occurrences in each string in B2:B12 and display results in C2:C12
    For i = 2 To 12
        Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
        Range(" C " & i) = Count
    Next i
End Sub

Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:

C sütunundaki değerler, B sütunundaki eşleşen dizelerdeki eğik çizgilerin oluşum sayısını görüntüler.

Örneğin:

  • Guard/Forward dizesi 1 eğik çizgi içerir.
  • Koruma dizesi 0 eğik çizgi içerir.
  • Koruma dizesi 0 eğik çizgi içerir.
  • İleri/Orta dizesi 1 eğik çizgi içerir.

Ve benzeri.

Farklı bir karakterin oluşumlarını saymak için makrodaki my_char değişkeninin karakterini değiştirmeniz yeterlidir.

Ek kaynaklar

Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

VBA: bir dizenin başka bir dize içerip içermediği nasıl kontrol edilir
VBA: Aralıktaki satır sayısı nasıl sayılır?
VBA: COUNTIF ve COUNTIFS işlevleri nasıl yazılır?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir