Excel中的父目录(无VBA)
如何将单元格的值设置为文件所在目录的父级?
在我之前,我有一个冗长乏味的重复的任务,我试图尽可能地自动化,但是VBA是不允许的。
我将要有一个Excel电子表格的目录树,看起来像这样:
C:\…\Parent1\Dir2\File3.xlsx …\Parent4\Dir5\File6.xlsx …
我需要一个公式来提取父目录, 例如 ,在这个例子中, Parent1
或Parent4
。
[ 注 : 文件和目录名称不遵循任何特定的约定; build议寻找数字将匹配这个匿名的例子,但不会帮助我。 ]
笔记:
我在网上的其他地方find了以下的公式,我也需要这些公式,这些公式可能指向解决scheme。
-
当前表单名称:
= 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个空格replace所有“\”来工作。 然后抓取正确的100个字符,这将是一堆空格和最终的DIR名称,然后修剪掉前面的空格。
这最后感觉应该是适应提取父目录,但我还没有想出如何写这个适应。
尝试这个。 这个公式只会在saved
文件中起作用。
=TRIM(LEFT(RIGHT(SUBSTITUTE(LEFT(CELL("filename",A1), FIND("[", CELL("filename",A1), 1) - 2),"\",REPT(" ",100)),200),100))
截图 :
逻辑 :
要find两个字符之间的string,请使用此string。 (在“\”之间find)
=TRIM(LEFT(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",100)),200),100))
下面给出了完整的path
=LEFT(CELL("filename",A1), FIND("[", CELL("filename",A1), 1) - 2)
例如: C:\Temp\Folder 1
所以只需在第一个公式中插入第二个