excel Power Query -添加一个自定义列,并将文件名作为列中的数据?

23c0lvtd  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(477)

我想在Power Query中添加源文件的名称作为新自定义列中每一行的值,作为文件名作为相关的唯一标识符。这可能吗?我已经浏览了自定义列公式中的所有函数,但我找不到一个返回源路径的函数。路径只是一个本地windows文件夹和文件名。理想情况下,我只需要文件名,但完整的路径也会工作。谢谢!
我尝试添加以下代码:

“Added Custom”= Table.AddColumn(#“Changed Type 1”,“Filename”,each????),但找不到将返回???所在的文件名的值。

djmepvbi

djmepvbi1#

你可能需要更好地解释,但这可能会有所帮助
正常的代码可能看起来像这样阅读文件

let Source = Excel.Workbook(File.Contents("Z:\Temp\list.xlsx"), null, true),
FPT_Sheet = Source{[Item="FPT",Kind="Sheet"]}[Data],
#"Promoted Headers" = Table.PromoteHeaders(FPT_Sheet, [PromoteAllScalars=true])
in #"Promoted Headers"

你可以把它改成这样

let filename="Z:\Temp\list.xlsx",
Source = Excel.Workbook(File.Contents(filename), null, true),
FPT_Sheet = Source{[Item="FPT",Kind="Sheet"]}[Data],
#"Promoted Headers" = Table.PromoteHeaders(FPT_Sheet, [PromoteAllScalars=true]),
#"Added Custom" = Table.AddColumn(#"Promoted Headers", "filename", each filename)
in #"Added Custom"

也许你的另一个问题是你正在阅读一个范围,想知道源范围的文件名?
用公式在文件中创建单元格

=MID(CELL("filename"),SEARCH("[",CELL("filename"))+1,SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-1)

并为单元格指定一个范围名称,如filename
使用以下命令将其读入powerquery

filenamehere = Excel.CurrentWorkbook(){[Name="filename"]}[Content]{0}[Column1]

然后添加带有公式的自定义列

= filenamehere

相关问题