[已解决] Power Query如何使用相对路径

  [复制链接]
查看235053 | 回复175 | 2020-11-5 21:25:13 | 显示全部楼层 |阅读模式
各位老司机,我们在用power query做数据整理的时候,比如整理一个文件夹下所有得文件,这个时候,power query都是用得绝对路径,可是当我们移动了这个文件和它相对应的子文件夹和文件到其他路径下的时候,就需要更改路径,可否又办法能够指定相对路径或者动态路径?我想把这个黄颜色部分的路径可以用相对路径下面这个帖子看不懂,

https://pqfans.com/944.html/comment-page-1


路径表做好后,将其导入PQ,创建一个新的查询为"路径表",当然名字你可以随便起,那么其他表的路径只需要深化出"路径表"中对应的路径,即为相对路径。比如常规导入excel文件生成的公式为= Excel.Workbook(File.Contents("C:\Users\Admin\Desktop\表3.xlsx"), null, true)
那么我们只需要把绝对路径替换为"路径表"中对应的相对路径即可,"表3"的路径在"路径表"中[路径]字段下的第3行,也就是路径表[路径]{2},替换得到= Excel.Workbook(File.Contents(路径表[路径]{2}), null, true)

谢谢了



10547102110541.png
回复

使用道具 举报

dgyys | 2020-11-5 21:30:13 | 显示全部楼层
这有啥看不懂的。就是借用了excel函数cell生成相对路径。power query需要通过表的方式才能引入函数计算出来的路径结果。
回复

使用道具 举报

hifang | 2020-11-5 21:38:13 | 显示全部楼层
这有啥看不懂的。就是借用了excel函数cell生成相对路径。power query需要通过表的方式才能引入函数计算出来 ...


power query需要通过表的方式才能引入函数计算出来的路径结果
这一步咋操作啊?
回复

使用道具 举报

小枫 | 2020-11-5 21:44:14 | 显示全部楼层
power query需要通过表的方式才能引入函数计算出来的路径结果
这一步咋操作啊?


https://blog.csdn.net/qq_24499417/article/details/84674231
路径变成表格,然后加载到表格里面,然后深化就可以得到路径的文本。我这里有一个小栗子展示,你可以理解下。
回复

使用道具 举报

sari | 2020-11-5 21:46:14 | 显示全部楼层
期待高手解答,这个问题也困扰我很长时间了,还专门买了本书看,也研究了很多网上资料最后还是失败了。。。。。。
回复

使用道具 举报

mandarin2003 | 2020-11-5 21:54:14 | 显示全部楼层
4楼高手的帖子说得还还不够详细吗?
回复

使用道具 举报

wujizh | 2020-11-5 21:58:14 | 显示全部楼层
https://blog.csdn.net/qq_24499417/article/details/84674231
路径变成表格,然后加载到表格里面,然后 ...


非常感谢,读了几遍后,开始有眉目了。:)
回复

使用道具 举报

changgun | 2020-11-5 22:01:15 | 显示全部楼层
https://blog.csdn.net/qq_24499417/article/details/84674231
路径变成表格,然后加载到表格里面,然后 ...


请问,我在M函数中经常看到有“#”出现,我也不知道这个是什么意思,请问你能给解释一下#的用法吗?谢谢
回复

使用道具 举报

忘记密码 | 2020-11-5 22:07:15 | 显示全部楼层
请问,我在M函数中经常看到有“#”出现,我也不知道这个是什么意思,请问你能给解释一下#的用法吗?谢谢


#是占位符,起到修饰转义的作用。能使字符串实例化。比如在字符串面前#“table_1”用于表示变量了。用“#(cr)”,"#(lf)"起到换行效果。而不是我们看到的一个简单的字符串字面量。
回复

使用道具 举报

穷疯了 | 2020-11-5 22:12:15 | 显示全部楼层
#是占位符,起到修饰转义的作用。能使字符串实例化。比如在字符串面前#“table_1”用于表示变量了。用“# ...


这是用Power Query向导弄的一段代码。我点“高级编辑器”后形成的M代码

let
Spath= Excel.CurrentWorkbook(){[Name="表1"]}[Content]{0}[路径],
  源 = Folder.Files(Spath),
  删除的列 = Table.RemoveColumns(源,{"Name", "Extension", "Date accessed", "Date modified", "Date created", "Folder Path"}),
  已添加自定义 = Table.AddColumn(删除的列, "Custom", each Excel.Workbook([Content])),
  #"展开的“Custom”" = Table.ExpandTableColumn(已添加自定义, "Custom", {"Name", "Data", "Item", "Kind", "Hidden"}, {"Custom.Name", "Custom.Data", "Custom.Item", "Custom.Kind", "Custom.Hidden"}),
  筛选的行 = Table.SelectRows(#"展开的“Custom”", each ([Custom.Name] = "专项个税扣除")),
  删除的其他列 = Table.SelectColumns(筛选的行,{"Custom.Data"}),
  #"展开的“Custom.Data”" = Table.ExpandTableColumn(删除的其他列, "Custom.Data", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10"}, {"Custom.Data.Column1", "Custom.Data.Column2", "Custom.Data.Column3", "Custom.Data.Column4", "Custom.Data.Column5", "Custom.Data.Column6", "Custom.Data.Column7", "Custom.Data.Column8", "Custom.Data.Column9", "Custom.Data.Column10"}),
  提升的标题 = Table.PromoteHeaders(#"展开的“Custom.Data”"),
  筛选的行1 = Table.SelectRows(提升的标题, each ([纳税人姓名]  "纳税人姓名"))
in
  筛选的行1


在这里面就会出现 #"展开的“Custom”"和#"展开的“Custom.Data”" ,我就是看不懂这个加#有什么意义,或者区别。
请指教,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则