如何在Power Query中使用M语言获取当前Excel文件路径?
使用M语言获取当前Excel文件路径的方法
当然可以用M语言实现和你提到的Excel公式相同的效果,以下是具体实现方式:
方法1:通过内置函数快速提取
在Power Query编辑器中,直接用M语言的组合函数就能完成,代码如下:
= Text.BeforeDelimiter(CurrentWorkbook(){[Item="FileName"]}[Value], "[")
逻辑说明:
CurrentWorkbook(){[Item="FileName"]}[Value]:获取当前工作簿的完整标识(格式类似C:\Users\XXX\Documents\[工作簿1.xlsx],包含路径和文件名)Text.BeforeDelimiter(..., "["):截取[符号之前的内容,也就是文件所在的路径
方法2:复刻Excel公式的逻辑
如果想完全对应你给出的Excel公式思路,也可以用更分步的写法:
let FullFileName = CurrentWorkbook(){[Item="FileName"]}[Value], Path = Text.Range(FullFileName, 0, Text.PositionOf(FullFileName, "[")) in Path
这个逻辑和Excel公式完全一致:先获取完整文件名,找到[的位置,再截取该位置之前的文本。
其他非M语言替代方法
除了M语言,用VBA也能直接获取路径,代码示例:
Sub GetCurrentFilePath() MsgBox ThisWorkbook.Path End Sub
ThisWorkbook.Path会直接返回当前文件的所在路径,比公式更简洁直接。
注:你提到的Excel公式
=LEFT(CELL("filename");SEARCH("[";CELL("filename");1)-1)确实实用,以上方法仅作为好奇探索的补充。
内容的提问来源于stack exchange,提问作者050
相关产品推荐
相关产品推荐

