Получить путь к родительской папке из пути к файлу, используя формулу ячейки - PullRequest
6 голосов
/ 31 марта 2011

В столбце A У меня 20000 строк с именем файла с путем к файлу

"C: \ person \ microsoft \ ygkyg \ mmddyy \ filename.xls"
"\ server-41\ performance \ mmddyy \ filename.doc "
.....
и т. д.

В столбце B Я просто хочу получить путь к родительской папке.

Может ли кто-нибудь помочь мне с формулой?Я пробовал это, но это дает мне имя файла.

=MID(a1,FIND(CHAR(1),
    SUBSTITUTE(a1,"\",CHAR(1),LEN(a1)-LEN(SUBSTITUTE(a1,"\",""))))+1,LEN(a1))

1 Ответ

23 голосов
/ 31 марта 2011

Это работает.

=MID(A1,1,LEN(A1)-LEN(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"\",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))+1,LEN(A1))))

Выше был мой оригинальный ответ. Нейл несколько упростил выражение и разместил его как комментарий ниже:

=LEFT(A1,FIND("?",SUBSTITUTE(A1,"\","?",LEN(A1)-LEN(SUBSTITUTE(A1,"\","")))))

Это использует тот факт, что ? - запрещенный символ в путяхтак что "?" можно безопасно использовать вместо CHAR(1) в качестве метки, тем самым немного улучшая читабельность.Кроме того, LEFT(A1,x) эквивалентно и короче MID(A1,1,x), поэтому имеет смысл использовать LEFT.Но самое главное, эта формула использует FIND вместо второго слоя подсчета символов с использованием LEN.Это делает его намного более читабельным.

...