Excel formülü: Son kelimeyi kaldır -

İçindekiler

Genel formül

=MID(A1,1,FIND("~",SUBSTITUTE(A1," ","~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)

Özet

Metin dizisindeki son kelimeyi kaldırmak için, SUBSTITUTE, LEN ve FIND yardımıyla MID işlevine dayalı bir formül kullanabilirsiniz. Gösterilen örnekte, B5 hücresindeki formül şöyledir:

=MID(B5,1,FIND("~",SUBSTITUTE(B5," ","~",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))))-1)

Açıklama

Bu formül, son kelimeyi bir metin dizesinden kaldırmak için ORTA işlevini kullanır. Asıl zorluk, son kelimenin nerede başladığını bulmaktır.

Formül biraz kıvrımlı, ancak adımlar basit. Önce LEN ve SUBSTITUTE kullanarak metinde kaç boşluk olduğunu sayarız. Sonra, son boşluğu tilde (~) ile değiştirmek için SUBSTITUTE işlevinde biraz belirsiz "örnek" argümanını kullanırız. Son olarak, yaklaşık işaretinin nerede olduğunu bulmak için FIND'ı ve yaklaşık işaretinden sonraki her şeyi atmak için MID işlevini kullanırız.

İçten dışa doğru çalışarak, bir sonraki boşlukta kaç boşluk göründüğünü saymak için UZUNLUK ve YERİNEKOY işlevlerini kullanıyoruz:

LEN(B5)-LEN(SUBSTITUTE(B5," ","")) // returns 6

B5'teki metin için bu, 6 değerini döndürür. Bu sayfa, formülün bu bölümünü daha ayrıntılı olarak açıklamaktadır. Bu bize metni 6. boşluk karakterinden kesmek istediğimizi söyler.

Not: Kelimeler birden fazla boşlukla ayrılmışsa, önce KIRP işleviyle boşlukları normalleştirmek isteyeceksiniz.

6 rakamı daha sonra başka bir SUBSTITUTE'a "örnek numarası" olarak takılır:

SUBSTITUTE(B5," ","~",6) // insert tilde

Burada, boşluğun 6. örneğini ("") tilde (~) ile değiştiriyoruz. SUBSTITUTE çalıştırıldıktan sonra şu dizeyi döndürür:

"It's been seven hours and fifteen~days"

Not: tilde (~) kullanırız çünkü nadiren ortaya çıkan bir karakterdir. Kaynak metinde görünmediği sürece istediğiniz herhangi bir karakteri kullanabilirsiniz.

Ardından, tilde'ı bulmak için FIND işlevini kullanıyoruz:

FIND("~","It's been seven hours and fifteen~days")-1

Tilde 34. karakter olduğundan FIND 34 değerini döndürür. Bu sayıdan 1 çıkarıyoruz çünkü nihai sonuca son boşluğu dahil etmek istemiyoruz. Şimdi formülü şu şekilde basitleştirebiliriz:

=MID(B5,1,33) // extract final text

MID işlevi daha sonra 1-33 arasındaki karakterleri döndürür:

"It's been seven hours and fifteen"

Özel bir sınırlayıcı ile

Aynı formül farklı bir sınırlayıcıyla kullanılabilir. Örneğin, son eğik çizgiden "/" sonraki tüm metni kaldırmak için şunu kullanabilirsiniz:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-1)

Son n kelimeyi kaldır

Formülü, son 2 kelimeyi, son 3 kelimeyi vb. Kaldıracak şekilde uyarlayabilirsiniz. Genel biçim şöyledir:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,d,"~",LEN(A1)-LEN(SUBSTITUTE(A1,d,""))-(n-1)))-1)

burada d , sınırlayıcıdır ve n , kaldırılacak kelime sayısıdır.

Ilginç makaleler...