У меня есть лист Excel с 2 столбцами: абсолютный путь и относительный путь. Теперь скажите, что данные представлены в следующем формате:
absolute path relative path ------------- ------------- /a/b/c/d/abc.dat /x/y/z/def.dat /p/q/r/s/t/test.dat /a/b/c/d/abc.dat /x/y/z/def.dat
Выходные данные должны быть
absolute path relative path ------------- ------------- /a/b/c/d/abc.dat ABCD_PATH /x/y/z/def.dat XYZ_PATH /p/q/r/s/t/test.dat PQRST_PATH /a/b/c/d/abc.dat ABCD_PATH /x/y/z/def.dat XYZ_PATH
Если в 1-м столбце содержится /a/b/c/d, то во 2-м столбце следует поместить некоторую уникальную строку, которую я приведу здесь как ABCD_PATH.
/a/b/c/d
ABCD_PATH
Если1-й столбец содержит /x/y/z/, затем во 2-й столбец следует поместить некоторую уникальную строку, которую я привожу здесь как XYZ_PATH.
/x/y/z/
XYZ_PATH
Если в 1-м столбце содержится /p/q/r/s/t/, тово 2-м столбце он должен поместить некоторую уникальную строку, которую я привожу здесь как PQRST_PATH.
/p/q/r/s/t/
PQRST_PATH
Создайте таблицу сопоставления на листе в файле Excel (например, sheet2):
______________________________________ | | A | B |___|____________|_____________________ | 1 | Absolute | ReplaceBy | |------------|--------------------- | 2 |/a/b/c/d/ | ABCD_PATH | 3 |/x/y/z/ | XYZ_PATH | 4 |/p/q/r/s/t/ | PQRST_PATH | |_________ ___________________ \ sheet1 /\ sheet2 /\ sheet3 / \______/ \______/ \______/
Вернуться на лист1:
___________________________________________________ | | A | B |___|____________________|__________________________ | 1 | absolute path | relative path | |--------------------|-------------------------- | 2 |/a/b/c/d/abc.dat | =VLOOKUP(LEFT(A2... --(hit)-> Ctrl+Shift+Enter | 3 |/x/y/z/def.dat | | | 4 |/p/q/r/s/t/test.dat | V (copy cell) | | __________________________________________ \ sheet1 /\ sheet2 /\ sheet3 / \______/ \______/ \______/
Поместите в ячейку relative path B2 эту формулу:
relative path
B2
=VLOOKUP(LEFT(A2, MAX((MID(A2, ROW($1:$90), 1)="/")*ROW($1:$90)) ), Sheet2!$A$2:$B$4, 2, FALSE)
Hit Ctrl + Shift + Enter : это формула массива, также известная как CSE формула .
Скопируйте B2 ячейку (не формула) и вставьте ее в оставшиеся ячейки в столбце B.
B
Как насчет
=TRIM(SUBSTITUTE(UPPER(LEFT(A1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/","")))))),"/",""))&"_PATH" для пути
=TRIM(SUBSTITUTE(UPPER(LEFT(A1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/","")))))),"/",""))&"_PATH"
и =RIGHT(A1,LEN(A1)-FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))) для файла и расширения
=RIGHT(A1,LEN(A1)-FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/","")))))