Excel'de kelime sayısını almak ister misiniz? İster inanın ister inanmayın, Excel'de yerleşik bir sözcük sayacı yoktur.
Ama endişelenme.
Bir dizi harika excel işlevi (veya kendinizi iyi hissediyorsanız biraz VBA) bunu sizin için kolayca yapabilir.
Bu derste, basit formüller kullanarak Excel'de kelimeleri saymanın birkaç yolunu göstereceğim. Ve sonunda, VBA kullanarak herhangi bir hücredeki herhangi bir metnin kelime sayısını hızlı bir şekilde verecek özel bir formül oluşturma tekniğini de kapsayacaktır.
Excel'de Kelime Sayısı Alma Formülü
Size tam formülü vermeden önce, kelime sayısını almak için mantığı hızlıca ele alalım.
Diyelim ki, aşağıda gösterildiği gibi, kelime sayısını almak istediğim bir cümlem var.
Excel kelime sayısını sayamazken, bir cümledeki boşluk sayısını sayabilir.
Yani kelime sayısını elde etmek için, kelimeler yerine bu boşlukları sayabilir ve toplama 1 ekleyebiliriz (boşluk sayısı kelime sayısından bir eksik olacağından).
Şimdi iki olasılık olabilir:
- Her kelime arasında tek bir boşluk var
- Kelimeler arasında birden fazla boşluk var.
Öyleyse, her durumda toplam kelime sayısını nasıl sayacağımızı görelim.
Örnek 1 - Kelimeler arasında tek boşluk olduğunda
Diyelim ki A1 hücresinde şu metin var: Kediyi çantadan çıkaralım
Kelime sayısını saymak için kullanacağım formül şu:
=UZUNLUK(A1)-UZUNLUK(YEDEK(A1," ",""))+1
Bu, sonuç olarak '7' döndürür.
İşte bu formül nasıl çalışır:
- UZUNLUK(A1) - Formülün bu kısmı, A1 hücresindeki metindeki toplam karakter sayısı olan 26'yı döndürür. Metin karakterlerinin yanı sıra boşluk karakterlerini de içerir.
- SUBSTITUTE(A1,” “,””) - Formülün bu kısmı metindeki tüm boşlukları kaldırır. Yani bu durumda sonuç, Kedinin çantadan çıkmasına izin ver.
- UZUNLUK(YEDEK(A1),",“”) - Formülün bu kısmı, boşluk içermeyen metindeki toplam karakter sayısını sayar. Yani bunun sonucu 20 olur.
- UZUNLUK(A1)-UZUNLUK(YEDEK(A1,” “,“”)) - Bu, boşluksuz metin uzunluğunu boşluklu metin uzunluğundan çıkarır. Yukarıdaki örnekte 26-20 yani 6 olur.
- =UZUNLUK(A1)-UZUNLUK(YEDEK(A1,” “,“”))+1 - Toplam boşluk sayısı toplam kelime sayısından bir eksik olduğu için genel sonuca 1 ekleriz. Örneğin, iki kelimede bir boşluk ve üç kelimede iki boşluk vardır.
Şimdi, kelimeler arasında yalnızca bir boşluk karakteriniz varsa bu iyi çalışır. Ancak kelimeler arasında birden fazla boşluk varsa bu işe yaramaz.
Bu durumda, sonraki örnekteki formülü kullanın.
Örnek 2: Kelimeler arasında birden fazla boşluk olduğunda
Diyelim ki aşağıdaki metne sahipsiniz: Kediyi çantadan çıkarın
Bu durumda, kelimeler arasında birden çok boşluk karakteri vardır.
Kelime sayısını elde etmek için, önce tüm fazla boşlukları (iki kelime arasında yalnızca bir boşluk karakteri olacak şekilde) kaldırmamız ve ardından toplam boşluk sayısını saymamız gerekir.
İşte bize doğru sayıda kelime verecek formül:
=UZUNLUK(KES(A1))-UZUNLUK(YEDEK(A1," ",""))+1
Bu, yukarıdaki örnekte küçük bir değişiklikle kullanılan benzer bir formüldür - burada TRIM işlevini de kullandık.
Excel TRIM işlevi, baştaki, sondaki ve fazladan boşlukları (kelimeler arasındaki tek boşluklar hariç) kaldırır.
Formülün geri kalanı aynı şekilde çalışır (Örnek 1'de açıklandığı gibi).
Not: Kelimeler arasında boşluk yoksa tek kelime olarak kabul edilir.
Excel'de Kelimeleri Saymak için VBA Özel İşlevini Kullanma
Yukarıdaki formüller harika çalışıyor olsa da, kelime sayısını sık sık hesaplamanız gerekiyorsa, özel bir işlev (Kullanıcı Tanımlı İşlev olarak da adlandırılır) oluşturmak için VBA'yı kullanabilirsiniz.
Özel bir işlev kullanmanın yararı, onu bir kez oluşturup diğer normal Excel işlevleri gibi kullanabilmenizdir. Yani yukarıdaki iki örnekte yaptığımız gibi uzun karmaşık bir formül oluşturmak yerine, hücre referansını alan ve size anında kelime sayısını veren basit bir formülünüz var.
İşte Excel'de kelime sayısını almak için bu özel işlevi oluşturacak kod.
İşlev WordCount(CellRef As Range) Dim TextStrng As String Dim Result() As String Result = Split(WorksheetFunction.Trim(CellRef.Text), " ") WordCount = UBound(Result()) + 1 End Function
Oluşturulduktan sonra, WordCount işlevini diğer normal Excel işlevleri gibi kullanabilirsiniz.
Özel işlev için yukarıdaki kodda, sözcükler arasındaki baştaki, sondaki ve çift boşlukları kaldırmak için çalışma sayfasını TRIM işlevini kullandım. Bu, çift boşluklar değil, yalnızca sözcükler sayıldığından, üç hücrenin de aynı sonucu vermesini sağlar.
Bu formül nasıl çalışır:
Yukarıdaki VBA kodu, başvurulan hücredeki metin dizesindeki tüm baştaki, sondaki ve çift boşlukları kaldırmak için önce TRIM işlevini kullanır.
Temizlenmiş dizeye sahip olduktan sonra, metin dizesini boşluk karakteri olarak belirlediğimiz sınırlayıcıya göre bölmek için VBA'daki SPLIT işlevini kullanır. Böylece her kelime, Sonuç değişkeninde ayrı bir öğe olarak saklanarak ayrılır.
Ardından, Sonuç değişkenlerinde depolanan toplam öğe sayısını saymak için UBOUND işlevini kullanırız. VBA'nın tabanı 0 olduğundan, toplam kelime sayısını elde etmek için 1 eklememiz gerekiyor.
Bu, Result(0)'ın ilk kelimeyi, Result(1)'in ikinci kelimeyi vb. depoladığı anlamına gelir. Bu sayma 0'dan başladığı için gerçek kelime sayısını elde etmek için 1 eklememiz gerekiyor.
Bu Kodu Nereye Koymalı?
Özel bir işlev oluştururken, kodu çalışma kitabının VB Düzenleyicisine (çalışma kitabının görevleri otomatikleştirmek ve özel işlevler oluşturmak için kod yazabileceğiniz arka ucudur) koymanız gerekir.
Aşağıda, çalışma kitabına 'GetNumeric' işlevinin kodunu yerleştirme adımları verilmiştir.
- Geliştirici sekmesine gidin.
- Visual Basic seçeneğine tıklayın. Bu, arka uçta VB düzenleyicisini açacaktır.
- VB Düzenleyicisi'ndeki Proje Gezgini bölmesinde, kodu eklemek istediğiniz çalışma kitabı için herhangi bir nesneye sağ tıklayın. Proje Gezgini'ni görmüyorsanız, Görünüm sekmesine gidin ve Proje Gezgini'ne tıklayın.
- Ekle'ye gidin ve Modül'e tıklayın. Bu, çalışma kitabınız için bir modül nesnesi ekleyecektir.
- Modül penceresindeki kodu kopyalayıp yapıştırın.
Kodu kod penceresinde kopyaladıktan sonra, çalışma sayfanıza geri dönebilir ve bu işlevi diğer normal Excel işlevleri gibi kullanabilirsiniz.
Sadece yaz =Kelime ve size listedeki formülü gösterecektir.
Hücre referansı olan bir argüman alır ve size anında içindeki kelime sayısını verir.