簡體   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