You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel拆分路径列后,如何提取路径最后部分至新列?

在Excel中提取拆分路径的最后部分(.doc/.pdf文件名)

以下是几种实用的操作方法:

方法一:公式法(适配列数不固定的情况)

假设路径拆分在A到E列,要在F列提取目标文件名,在F2单元格输入以下公式后下拉填充:

=LOOKUP(2,1/(A2:E2<>""),A2:E2)

这个公式会自动定位每行最后一个非空单元格的内容(即路径的最后部分)。如果需要仅保留.doc或.pdf格式的文件,可使用带判断的版本:

=IF(OR(RIGHT(LOOKUP(2,1/(A2:E2<>""),A2:E2),4)=".doc",RIGHT(LOOKUP(2,1/(A2:E2<>""),A2:E2),4)=".pdf"),LOOKUP(2,1/(A2:E2<>""),A2:E2),"")
  • 逻辑说明:LOOKUP(2,1/(A2:E2<>""),A2:E2) 通过非空单元格的数组定位最后一个有效内容;RIGHT 提取后缀,OR 判断是否符合目标格式。

方法二:公式法(列数固定的情况)

如果路径拆分后的最后一列固定(比如E列),直接提取该列内容并验证格式:

=IF(OR(RIGHT(E2,4)=".doc",RIGHT(E2,4)=".pdf"),E2,"")

方法三:VBA宏批量处理

如果数据量较大,可通过宏自动完成:

  1. 按 Alt + F11 打开VBA编辑器
  2. 右键当前工作表 → 插入 → 模块
  3. 粘贴以下代码并运行:
Sub ExtractTargetFileName()
    Dim ws As Worksheet
    Dim lastRow As Long, lastCol As Long
    Dim i As Long
    
    Set ws = ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row '获取数据最后一行
    
    For i = 2 To lastRow '假设第1行是表头,从第2行开始处理
        lastCol = ws.Cells(i, ws.Columns.Count).End(xlToLeft).Column '找到该行最后有内容的列
        Dim fileName As String
        fileName = ws.Cells(i, lastCol).Value
        
        '判断是否为目标格式
        If Right(fileName, 4) = ".doc" Or Right(fileName, 4) = ".pdf" Then
            ws.Cells(i, "F").Value = fileName '将文件名写入F列,可自行修改列号
        End If
    Next i
End Sub

内容的提问来源于stack exchange,提问作者isayoyo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 04:55:30