[英]Parent directory in Excel (no VBA)
如何将单元格的值设置为文件所在目录的父目录?
我面临着繁琐而又重复的任务,并且我正在尝试尽可能多地实现自动化,但是不允许VBA。
我将拥有一个Excel电子表格的目录树,看起来像这样:
C:\…\Parent1\Dir2\File3.xlsx
…\Parent4\Dir5\File6.xlsx
…
我需要一个公式来提取父目录, 例如在此示例中为Parent1
或Parent4
。
[ 注意 : 文件名和目录名不遵循任何特定约定; 查找数字的建议将与该匿名示例匹配,但对我没有帮助。 ]
笔记:
我在网上的其他地方找到了以下公式,这也是我所需要的,并且可能指向解决方案。
当前工作表名称:
= 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.