excel - Power Query - 获取 Excel 电子表格文件名

标签 excel powerquery

我正在寻找一个 M-Function,它返回当前打开的 Excel 电子表格文件名,没有目录和扩展名。
即,如果打开的电子表格位于此处:
C:\HPCLMHSTLI_930.XLSX
我想:
HPCLMHSTLI_930
注意:我使用一个自定义 M 函数来完成这项工作,该函数读取一个设置表,其中定义了两个单元格,如下所示:
=MID(CELL("文件名"),SEARCH("[",CELL("文件名"))+1, SEARCH("]",CELL("文件名"))-SEARCH("[",CELL("文件名"))-1)
=LEFT(B3,(搜索(".",B3)-1))
所以我不是在寻找这个解决方案。这个解决方案看起来工作量很大,应该有一个更优雅的 M-Language 函数来返回当前打开的电子表格文件名。

最佳答案

我不太明白你是如何得到路径的——我猜那是 Cell("fileName"),但是稍微摆弄一下 M 代码,我想出了以下内容:

let
    x = "C:\HPCLMHSTLI_930.XLSX",
    y=Text.AfterDelimiter(x,"\"),
    z=Text.BeforeDelimiter(y,".")
in
    z
这似乎可以解决问题。由于文件名中可以​​有多个句点,这可能太简单了,但如果你的文件名足够简单,这可能会起作用。
但这可以通过以下方式将其包装在函数中来改进:
let
  ParseFileName = (x) => 
    let 
      y=Text.AfterDelimiter(x,"\"),
      z=Text.BeforeDelimiter(y,".")
    in z
in
  ParseFileName
然后使用这样的方法调用它:
let
    Source = ParseFileName("C:\HPCLMHSTLI_930.XLSX")
in
    Source

关于excel - Power Query - 获取 Excel 电子表格文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72078791/

相关文章:

excel - 自动保存上次打开 Excel 文件的日期

vba - ListBox 基于 ComboBox 填充 - 不同的数据结构

postgresql - 使用 PowerQuery 的动态变量

excel - 部分转置表

excel - 加载到 Power Pivot 数据模型后删除 Power Query 步骤

Excel 数字格式。将我的单元格视为数字,但保留其格式! (即尾随 0)

excel - 如果目标地址 - 我如何使用范围?

mysql - 将 Excel 表导入 MySQL 阿拉伯语数据

excel - 正则表达式函数将段落拆分为句子以进行 Power 查询

excel - PowerQuery 在 URL 中使用单元格值