Excel formülü: Belirli bir metni içeren kelimeyi ayıklayın -

Genel formül

=TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),MAX(1,FIND("@",SUBSTITUTE(A1," ",REPT(" ",99)))-50),99))

Özet

Belirli bir metni içeren bir kelimeyi çıkarmak için, KIRP, SOL, YEDEK, ORTA, MAKS ve TEKRAR dahil olmak üzere çeşitli işlevleri temel alan bir formül kullanabilirsiniz. Bu formülü, e-posta adresleri gibi şeyleri veya benzersiz bir kimliğe sahip diğer alt dizeleri çıkarmak için kullanabilirsiniz.

Gösterilen örnekte, C5'teki formül şöyledir:

=TRIM(MID(SUBSTITUTE(B5," ",REPT(" ",99)),MAX(1,FIND("@",SUBSTITUTE(B5," ",REPT(" ",99)))-50),99))

Açıklama

İşin özü: bu formül, çok sayıda boşluk içeren bir metin dizesindeki kelimeler arasındaki boşluğu "doldurur", ilgilenilen alt dizeyi bulur ve çıkarır ve karışıklığı temizlemek için KIRP işlevini kullanır.

Baştan sona çalışarak, B5'teki orijinal metin SUBSTITUTE kullanılarak boşluklarla doludur:

SUBSTITUTE(B5," ",REPT(" ",99))

Bu, her bir alanı 99 boşlukla değiştirir.

Not: 99, çıkarmanız gereken en uzun kelimeyi temsil eden rastgele bir sayıdır.

Ardından, FIND işlevi, taşan metnin içindeki belirli karakteri (bu durumda, "@") bulur:

FIND("@",SUBSTITUTE(B5," ",REPT(" ",99)))-50

FIND, 50'nin çıkarıldığı bu metindeki "@" konumunu döndürür. 50'nin çıkarılması, konumu etkin bir şekilde, ilgili alt dizeden önceki boşlukların ortasında bir yere "geri götürür". Gösterilen örnekte, hesaplanan konum 366'dır.

MAX işlevi, metinde ilk olarak görünen alt dizeyle ilgili sorunu çözmek için kullanılır. Bu durumda, konum negatif olacaktır ve MAX, 1'e sıfırlamak için kullanılır.

Bir başlangıç ​​konumlandırması oluşturulduktan sonra, MID, B5'teki metinden 366'dan başlayarak, yine boşlukla dolu 99 karakterlik metin çıkarmak için kullanılır:

MID(SUBSTITUTE(B5," ",REPT(" ",99)),366,99)

Bu, ilgilenilen alt dizeyi, öncesinde ve sonrasında çok sayıda boşluk karakteri ile çıkarır.

Son olarak, TRIM işlevi baştaki ve sondaki boşluğu kesmek için kullanılır ve özel karakteri içeren alt dizeyi döndürür.

Ilginç makaleler...