繁体   English   中英

Excel中的父目录(无VBA)

[英]Parent directory in Excel (no VBA)

如何将单元格的值设置为文件所在目录的父目录?

我面临着繁琐而又重复的任务,并且我正在尝试尽可能多地实现自动化,但是不允许VBA。

我将拥有一个Excel电子表格的目录树,看起来像这样:

C:\…\Parent1\Dir2\File3.xlsx
   …\Parent4\Dir5\File6.xlsx
   …

我需要一个公式来提取目录, 例如在此示例中为Parent1Parent4

[ 注意文件名和目录名不遵循任何特定约定; 查找数字的建议将与该匿名示例匹配,但对我没有帮助。 ]


笔记:

我在网上的其他地方找到了以下公式,这也是我所需要的,并且可能指向解决方案。

  • 当前工作表名称:
    = RIGHT(CELL("filename",A1), LEN(CELL("filename",A1)) - FIND("]", CELL("filename",A1)))

  • 当前文件名:
    = MID(CELL("filename",A1), FIND("[", CELL("filename",A1)) + 1, FIND(".", CELL("filename",A1)) - (FIND("[", CELL("filename",A1)) + 1))

  • 当前目录名称(来自MrExcel.com ):
    = TRIM(RIGHT(SUBSTITUTE(LEFT(CELL("filename",A1), FIND("[", CELL("filename",A1), 1) - 2), "\\", REPT(" ",100)), 100))
    张贴者因此解释了他的方法:

    它通过获取DIR并将所有“ \\”替换为100个空格来工作。 然后,它将获取正确的100个字符,这些字符将是一堆空格,并且最终的DIR名称会修剪掉前面的空格。

最后一种感觉应该适合于提取父目录,但是我还没有弄清楚如何编写这种适应。

尝试这个。 不用说该公式仅适用于已saved文件。

=TRIM(LEFT(RIGHT(SUBSTITUTE(LEFT(CELL("filename",A1), FIND("[", CELL("filename",A1), 1) - 2),"\\",REPT(" ",100)),200),100))

屏幕截图

在此处输入图片说明

逻辑

要在两个字符之间找到一个字符串,请使用此字符串。 (在说“ \\”之间找到)

=TRIM(LEFT(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",100)),200),100))

下面给出了完整的路径

=LEFT(CELL("filename",A1), FIND("[", CELL("filename",A1), 1) - 2)

例如: C:\\Temp\\Folder 1

所以只需在第一个公式中插入第二个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM