Excel公式(不是VBA)来计算文件路径的基本名称?

Excel公式(不是VBA)来计算文件路径的基本名称?,excel,excel-formula,Excel,Excel Formula,是否可以在不定义自定义VBA函数的情况下确定basename,即Excel中文件路径的最后一个路径组件 例如,如果单元格A1具有 C:\Some\deep\directory\structure\file.txt B1中的公式应使用A1返回 file.txt 有什么想法吗?要在最后一个反斜杠后获得所有内容,请尝试以下公式 =RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1,"\","|",LEN(A1)-LEN(SUBSTITUTE(A1,"\","")))))

是否可以在不定义自定义VBA函数的情况下确定basename,即Excel中文件路径的最后一个路径组件

例如,如果单元格
A1
具有

C:\Some\deep\directory\structure\file.txt
B1
中的公式应使用
A1
返回

file.txt

有什么想法吗?

要在最后一个反斜杠后获得所有内容,请尝试以下公式

=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1,"\","|",LEN(A1)-LEN(SUBSTITUTE(A1,"\","")))))

=REPLACE(A1,1,LOOKUP(2^15,FIND(“\”),A1,ROW(INDIRECT('1:“&LEN(A1)”)),”)

您为什么反对使用VBA?有很多更可靠的方法可以做到这一点,而不是简单地去掉你假设的路径分隔符;另外,我喜欢无VBA工作簿,因此无需用户交互(激活宏)。@CodyGray不幸的是,在从工作表调用VBA函数的情况下,宏正在执行,更改工作表上的值并导致公式重新计算,特别是在循环中,Excel会进入某种灰色区域。函数可能会正确执行,或者它们可能会毫无原因地返回错误(例如,
#VALUE
)(当缓慢执行代码时,不可再现!);执行流程可以在例程中间意外停止;或者Excel可能会因执行无效操作而崩溃。我受够了,所以现在我尽量避免在工作表上使用VBA。我注意到,如果文件路径中有空间,这是行不通的。这是因为使用空格作为外部替换字符,但在字符串的前面找到了空格。将空格替换为其他字符:“例如!”。我不确定您建议替换的位置。我想你(和@Karsten)可能想知道解决方案中的这个不足。如果使用替换字符,则应使用非法文件名字符,如:?:<>|@Douglancy我已经相应地修改了.aa和Linux路径:
=RIGHT(A1,LEN(A1)-FIND(“|”),SUBSTITUTE(A1,“/”,“|”,LEN(A1)-LEN(SUBSTITUTE(A1,“/”,”)
+1我不知道我是否还记得这个模式。如果不是的话,我至少每次看到它时都会充满同样的孩子气般的惊奇。转换每个用户文件空间的HTML链接本地路径的关键部分(即打开电子表格查找每台计算机上的不同本地路径)。谢谢