Excel 从没有文件扩展名的路径中提取文件名的公式

Excel formula to extract file name from paths without file extension

我有这个 excel 公式,我希望可以对其进行修改以提取文件名 而不带文件扩展名 。我知道这可以通过两个公式来完成,但它会使我正在处理的过程变得更加容易。我也试图避免 VBA 因为我对此一无所知。

=IFERROR(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"\",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))+1,LEN(A1)),"")

谢谢!

您似乎希望 A1 包含文件名,但如果您愿意将 "A1" 的每个实例替换为 Cell("filename",A1),则可以一次完成所有这些操作.无论哪种方式,看起来您都在通过计算文件路径的数量来使情况过于复杂,而实际上您所需要的只是包含文件名的“[”&“]”。

如果 A1 是任何没有特殊内容的随机单元格,则公式如下所示:

=MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",CELL("filename",A1))-FIND("[",CELL("filename",A1))-1)

如果A1持有CELL("filename",B1),则公式如下:

=MID(A1,FIND("[",A1)+1,FIND("]",A1)-FIND("[",A1)-1)

CELL("filename",B1) 看B1,拉属性 "filename"。在这种情况下,使用 B1、Z10 等都没有关系——它只是不能成为循环引用。您还可以使用 CELL 来提取特定于单元格的信息,例如单元格地址等。

然后MID函数只看A1,从“[”之后的1开始,拾取到“]”的所有字符。

您已经有了查找字符串中最后一个“\”字符位置的逻辑。您可以使用相同的逻辑来查找最后一个“.”的位置。字符串中的字符。那么这两个数字减一的差就是不带文件扩展名的文件名的长度。将此长度用于 MID 函数的 num_chars 参数。例如...

=IFERROR(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"\",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))+1,FIND(CHAR(1),SUBSTITUTE(A1,".",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,".",""))))-FIND(CHAR(1),SUBSTITUTE(A1,"\",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))-1),"")

请注意,此公式假定所有文件名都有扩展名。如果某些文件没有扩展名,那么您需要在公式中添加额外的逻辑。