1

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

我面临着一项乏味且重复的任务,我正在尝试尽可能多地自动化这些任务——但不允许使用 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 名称,然后它会修剪掉前面的空格。

最后这个感觉应该可以适配提取父目录了,但是我还没想好这个适配怎么写。

4

1 回答 1

2

尝试这个。没有说这个公式只能在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

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

于 2013-04-19T00:23:00.507 回答