Excel: bir dizedeki son karakter/string maç
Verimli bir şekilde son karakteri tanımlamak için bir dizi dize temel işlevleri kullanarak maç var mı? I. e. son karakter/dizesidize, ama bir karakterin konumunu/dizenin son oluşumubir dize. Search
find
uzun özyinelemeli algoritma olmadan nasıl uygulanacağını düşünemiyorum yani soldan sağa doğru çalışır. this solution artık modası geçmiş gibi görünüyor.
CEVAP
Ne demek istediğini anladım sanırım. Hadi şu dize A1 hücresini (saklanan) sağ en \ istiyorsun mesela diyelim ki:
:\\Alt Klasör\Dosyaadı Sürücü.ext
Son pozisyon almak için bu formülü kullanırsınız\,:
=FIND("@",SUBSTITUTE(A1,"\","@",(LEN(A1)-LEN(SUBSTITUTE(A1,"\","")))/LEN("\")))
-En \ karakter 24 yaşında olduğunu söyler. Bakarak bunu yapar "@" son yerine "bir" ile "@". \ Kullanarak sonuncusu belirler
(len(string)-len(substitute(string, substring, "")))\len(substring)
Bu senaryoda, alt sadece " sonunda bölümü kapalı bırakın ve sadece kullanmak:." \
=FIND("@",SUBSTITUTE(A1,"\","@",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))
Şimdi bu klasör yolunu almak için kullanabilirsiniz:
=LEFT(A1,FIND("@",SUBSTITUTE(A1,"\","@",LEN(A1)-LEN(SUBSTITUTE(A1,"\","")))))
İşte sonunda \ olmadan klasör yolu
=LEFT(A1,FIND("@",SUBSTITUTE(A1,"\","@",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))-1)
Ve sadece dosya adını almak için:
=MID(A1,FIND("@",SUBSTITUTE(A1,"\","@",LEN(A1)-LEN(SUBSTITUTE(A1,"\","")))) 1,LEN(A1))
Ancak, burada, kendine özgü bir karakteri son derece haklı için her şeyi almak için alternatif bir versiyon. Yani aynı örneği kullanırsak, bu da dosya adını döndürür:
=TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",LEN(A1))),LEN(A1)))
Bir std için bir karakter eklemek için...
Dizedeki her karakter için...
Javascript - string karakter çıkarın...
String karakter çıkarma listesi...
Swift String içinde karakter bulma diz...