Excel formülü: Sayısal olmayan karakterleri çıkarın -

Genel formül

(=TEXTJOIN("",TRUE,IFERROR(MID(A1,ROW(INDIRECT("1:100")),1)+0,"")))

Özet

Bir metin dizesinden sayısal olmayan karakterleri kaldırmak için, Excel 2019'daki yeni bir işlev olan METİNBİRLEŞTİR işlevine dayalı bu deneysel formülü deneyebilirsiniz. Gösterilen örnekte, C5'teki formül:

(=TEXTJOIN("",TRUE,IFERROR(MID(B5,ROW(INDIRECT("1:100")),1)+0,"")))

Not: Bu bir dizi formülüdür ve kontrol + shift + enter ile girilmelidir.

Açıklama

İçten dışa doğru çalışarak MID formülü, B5'teki metni her seferinde bir karakter olmak üzere çıkarmak için kullanılır. Anahtar, SATIR / DOLAYLI parçadır:

ROW(INDIRECT("1:100"))

100 sayı içeren bir diziyi şöyle döndürür:

(1,2,3,4,5,6,7,8… .99,100)

Not: 100, işlenecek maksimum karakteri temsil eder. Verilerinize uyacak şekilde değiştirin.

Bu dizi, MID işlevine başlangıç_sayısı bağımsız değişkeni olarak gider . İçin karakter_sayısı , biz 1 kullanıyoruz.

MID işlevi şöyle bir dizi döndürür:

("1"; "0"; "0"; ""; "a"; "p"; "p"; "l"; "e"; "s"; ""; ""; ""; " "…)

(dizideki ekstra öğeler okunabilirlik için kaldırıldı)

Bu diziye sıfır ekliyoruz. Bu, Excel'i metni bir sayıya zorlamaya zorlayan basit bir numaradır. "1", "2", "3", "4" vb. Gibi sayısal metin değerleri dönüştürülürken sayısal olmayan değerler başarısız olur ve # DEĞER hatası verir. Bu hataları yakalamak ve sayısal değerler diziye geçerken boş bir dizge ("") döndürmek için EĞERHATA işlevini kullanırız. Sonuç, yalnızca sayıları ve boş dizeleri içeren bir dizidir:

(1; 0; 0; ""; ""; ""; ""; "";….)

Son olarak, bu dizi sonucunun olarak TEXTJOIN fonksiyonuna girer metni1 argüman. İçin sınırlayıcı , biz boş bir dize kullanın ( "") ve için ignore_empty biz DOĞRU kaynağı. TEXTJOIN daha sonra dizideki boş olmayan tüm değerleri birleştirir ve sonucu döndürür.

Not: METİNBİRLEŞTİR, sayıları metin olarak döndürecektir, örneğin "100," 500 ", vb. Gerçek bir sayısal sonuç istiyorsanız, sıfır ekleyin veya DEĞER işlevinde tüm formülü kaydırın.

Ilginç makaleler...