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)))

Hızlı bir dizedeki her karakter üzerin...
String karakter çıkarma listesi...
Nasıl bir karakter dizisine bir string...
JQuery '-' string karakter ç...
PHP string Unicode karakter...