在Excel中映射替换字符串

时间:2011-06-08 15:37:48

标签: excel excel-2007 excel-formula

我有一个包含2列的Excel工作表:绝对路径和相对路径 现在说数据格式如下:

 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
  • 如果第一列包含/a/b/c/d,则在第二列中应放置一些我在此处为ABCD_PATH的唯一字符串。

  • 如果第一列包含/x/y/z/,则在第二列中应放置一些我在此处为XYZ_PATH的唯一字符串。

  • 如果第一列包含/p/q/r/s/t/,则在第二列中应放置一些我在此处为PQRST_PATH的唯一字符串。

2 个答案:

答案 0 :(得分:3)

  1. 在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 /
     \______/  \______/  \______/
    
  2. 返回sheet1:

     ___________________________________________________
    |   |    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 /
     \______/  \______/  \______/
    
  3. relative path B2单元格放入此公式:

    =VLOOKUP(LEFT(A2,
                  MAX((MID(A2, ROW($1:$90), 1)="/")*ROW($1:$90))
                 ),
             Sheet2!$A$2:$B$4,
             2,
             FALSE)
    
  4. Ctrl + Shift + 输入:这是一个数组公式,也称为CSE formula。< / p>

  5. 复制B2单元格(不是公式)并将其粘贴到列B中的其余单元格中。

答案 1 :(得分:0)

怎么样

=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,"/","")))))