前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel: 提取路径中的文件名

Excel: 提取路径中的文件名

作者头像
Exploring
发布2022-09-20 14:20:47
2.4K0
发布2022-09-20 14:20:47
举报
文章被收录于专栏:数据处理与编程实践

文章背景:在日常工作中,有时需要从绝对路径中提取文件名。比如,已知某个文件的存储路径,想要获取最后的文件名称。下面介绍两种方法。

(1) Excel函数法

代码语言:javascript
复制
TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",99)),99))
  • REPT(text, number_times) 将文本重复一定次数。 A2的公式中,REPT函数将空格复制99次。
  • SUBSTITUTE(text, old_text, new_text, [instance_num]) 在文本字符串中用 new_text 替换 old_text。 A2的公式中,SUBSTITUTE函数将字符串中的斜杆\替换成99个空格。
  • Right (string, length) 返回一个 Variant (String) 值,其中包含从字符串右侧算起指定数量的字符。
  • TRIM(text) 除了单词之间的单个空格之外,移除文本中的所有空格。

思路分析:针对文件路径,先用99个空格替换掉路径中的斜杆\;再从字符串右侧起,获取99个字符(新字符串),此时,新字符串内既有文件名,也有空格;最后,通过trim函数,移除首尾的空格,从而得到所需要的文件名。

(2) VBA法(创建自定义函数)

代码语言:javascript
复制
Option Explicit

Function getFileName(path As String, Optional sep As String = "\") As String

    Dim arrSplitStrings() As String
    Dim num As Integer
    
    arrSplitStrings = Split(path, sep)
    
    num = UBound(arrSplitStrings)
    
    getFileName = arrSplitStrings(num)
    
End Function
  • Split(expression, [ delimiter, [ limit, [ compare ]]]) Returns a zero-based, one-dimensional array containing a specified number of substrings.
  • UBound(arrayname, [ dimension ]) Returns a Long data type containing the largest available subscript for the indicated dimension of an array.

思路分析:针对文件路径,使用Split函数,基于斜杆/,将路径分割成各个小块,保存在一个数组内;然后通过Ubound函数,获取数组的最后一个索引号,从而将文件名提取出来。

参考资料:

[1] 如何用excel提取路径中最后一个文件夹的名字(https://jingyan.baidu.com/article/a948d651aae9544a2ccd2e74.html)

[2] 字符串-如何从路径提取文件名(https://www.itranslater.com/qa/details/2582413335018865664)

[3] REPT 函数(https://support.microsoft.com/zh-cn/office/rept-%E5%87%BD%E6%95%B0-04c4d778-e712-43b4-9c15-d656582bb061)

[4] Right 函数(https://support.microsoft.com/zh-cn/office/right-%E5%87%BD%E6%95%B0-c02a18a8-b224-437e-aaba-1b785c6c61bf)

[5] Split function(https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/split-function)

[6] UBound function(https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/ubound-function)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与编程实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档