Excel formülü: Bir hücredeki toplam kelimeleri sayma -

İçindekiler

Genel formül

=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1

Özet

Bir hücredeki toplam sözcükleri saymak için, KIRP işlevinin yardımıyla UZUNLUK ve YERİNEKOY işlevlerine dayalı bir formül kullanabilirsiniz. Gösterilen örnekte, aşağıya kopyalanan C5 hücresindeki formül şöyledir:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+1

Formül, B5 hücresindeki kelime sayısını döndürür.

Açıklama

Excel'in bir hücredeki kelimeleri saymak için özel bir işlevi yoktur. Bununla birlikte, biraz ustalıkla, örnekte gösterildiği gibi, TRIM'in yardımıyla, SUBSTITUTE ve LEN işlevlerini kullanarak böyle bir formül oluşturabilirsiniz. Yüksek düzeyde, bu formül hücredeki karakterlerin sayısını boşluklu ve boşluksuz saymak için UZUNLUK işlevini kullanır, ardından kelime sayısını bulmak için farkı kullanır. Bu işe yarar çünkü kelime sayısı, her kelime arasında bir boşluk olduğu sürece boşluk sayısı + 1'e eşittir.

Formülün ilk bölümü, fazladan boşluk kaldırıldıktan sonra B5 hücresindeki karakterleri sayar:

=LEN(TRIM(B5)) // normalize space, count characters

LEN içinde, KIRP işlevi önce sözcükler arasındaki veya metnin başında veya sonundaki fazladan boşlukları kaldırır. Bu önemlidir, çünkü fazladan boşluklar kelime sayımını kaybedecektir. Bu durumda, fazladan boşluk karakteri yoktur, bu nedenle KIRP, orijinal metni doğrudan 30 değerini döndüren UZUNLUK işlevine döndürür:

LEN("All Quiet on the Western Front") // returns 30

Bu noktada elimizde:

=30-LEN(SUBSTITUTE(B5," ",""))+1

Ardından, metinden tüm boşluk karakterlerini kaldırmak için SUBSTITUTE işlevini kullanıyoruz:

SUBSTITUTE(B5," ","") // strip all space

SUBSTITUTE, bir boşluk karakteri ("") arayacak ve boş bir dizeyle ("") değiştirecek şekilde yapılandırıldı. Varsayılan olarak, SUBSTITUTE tüm boşlukların yerini alacaktır. Sonuç doğrudan, sayımı döndüren UZUNLUK işlevine gönderilir:

LEN("AllQuietontheWesternFront") // returns 25

LEN, tüm boşluklar kaldırıldıktan sonra kalan karakter sayısı olan 25 değerini döndürür. Şimdi formülü şu şekilde basitleştirebiliriz:

=30-25+1 // returns 6

nihai sonuç olarak 6 döndürür, B5 hücresindeki kelime sayısı.

Boş hücrelerle uğraşmak

Örnekteki formül, hücre boş olsa veya yalnızca boşluk içeriyor olsa bile 1 değerini döndürür. Bu, kelimeler arasındaki boşluk karakterlerini saydıktan sonra koşulsuz olarak 1 eklediğimiz için olur. Bu soruna karşı korunmak için formülü aşağıda gösterildiği gibi uyarlayabilirsiniz:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+(LEN(TRIM(B5))>0)

1'i şu ifadeyle değiştirdiğimize dikkat edin:

LEN(TRIM(B5))>0

Bu kod önce B5'i kırpar, sonra uzunluğu kontrol eder. B5 metin içeriyorsa, UZUNLUK pozitif bir sayı verir ve ifade TRUE değerini döndürür. B5 boşsa veya yalnızca boşluk içeriyorsa, TRIM, LEN'e boş bir dize ("") döndürür. Bu durumda, UZUNLUK sıfır (0) döndürür ve ifade YANLIŞ döndürür. İşin püf noktası, herhangi bir matematik işleminde yer aldığında DOĞRU ve YANLIŞ'ın sırasıyla 1 ve sıfır olarak değerlendirilmesidir. Sonuç olarak, ifade yalnızca B5'te metin olduğunda 1 ekler. Aksi takdirde sıfır (0) ekler. Bu mantık, IF işlevi ifadesiyle de şu şekilde yazılabilir:

IF(LEN(TRIM(B5))>0,1,0)

ve sonuç aynı olacaktır. Yukarıdaki ifade daha derli topludur.

Ilginç makaleler...