[已解决] Powerbi desk 问题

  [复制链接]
网飞鸿 | 2020-9-25 01:47:47 | 显示全部楼层
谢谢版主。还有一个问题向你请教:想用附件后面五张表中数据在Powerbi desk中做一个表格,当切片器选择水耗时表中预算显示的是水耗预算,当切片器选择热耗时表中预算显示的是热耗预算。
10225101631374.png
10225101631379.rar (52.83 KB, 下载次数: 0)
回复

使用道具 举报

wsy682401 | 2020-9-25 01:53:47 | 显示全部楼层
在pq中给各表增加一个字段用来区分水耗,热耗,然后用追加查询将数据集中到一张表里
剩下的就和现在没区别了.
回复

使用道具 举报

赤豆糊 | 2020-9-25 01:56:47 | 显示全部楼层
还是不会呀
回复

使用道具 举报

石龙肥锋 | 2020-9-25 02:01:48 | 显示全部楼层
附件供参考
102251016313710.rar (267.92 KB, 下载次数: 0)
回复

使用道具 举报

胡熊 | 2020-9-25 02:10:48 | 显示全部楼层
版主辛苦了,谢谢,我看看
回复

使用道具 举报

w.s.hui | 2020-9-25 02:13:48 | 显示全部楼层
在版主的附件的基础上增加了一页,达到了如下效果。不知能否把”实际“字段改成度量值,根据水耗、热耗原始数据计算自动更新?
10225101631375.png
102251016313711.rar (278.31 KB, 下载次数: 0)
回复

使用道具 举报

超越改 | 2020-9-25 02:17:48 | 显示全部楼层
在版主的附件的基础上增加了一页,达到了如下效果。不知能否把”实际“字段改成度量值,根据水耗、热耗原始 ...


14楼的附件中,用来绘图的表就是通过查询从原始文件里取到的值啊.
你可以通过编辑查询看到具体的语句.
回复

使用道具 举报

bjgame | 2020-9-25 02:21:49 | 显示全部楼层
你的文件中数据源设置 更改源是灰色的,不可用
回复

使用道具 举报

蓝精灵 | 2020-9-25 02:30:49 | 显示全部楼层
已更改数据源地址,版主能说一说输出数据这张表的生成步骤吗?先谢谢了。
回复

使用道具 举报

乔峰 | 2020-9-25 02:34:49 | 显示全部楼层
已更改数据源地址,版主能说一说输出数据这张表的生成步骤吗?先谢谢了。


先看数据表let
  源=Excel.Workbook(File.Contents("Z:\周度例子1.xlsx"), null, true), '这步用来获取文件中所有的sheet,
  预算0=源{[Item=分类 &"耗预算",Kind="Sheet"]}[Data],'这两步从上面的源里获取相应sheet的数据.其中的"分类"是一个自定义的参数,因为处理水,热的步骤是相同的,所以这里用参数代替,便于批处理
  实际=源{[Item=分类,Kind="Sheet"]}[Data], 同上
  预算 = Table.PromoteHeaders(预算0, [PromoteAllScalars=true]),'增加标题行
  标题行 = Table.PromoteHeaders(实际, [PromoteAllScalars=true]),'同上
  获取年周 = Table.AddColumn(标题行, "年周", each Date.Year([日期])*100 +Date.WeekOfYear([日期]),Int64.Type),
  重命名的列 = Table.RenameColumns(获取年周,{{"合计热耗", "合计"},{"合计水耗", "合计"}},MissingField.Ignore),'这步将 列名 合计水耗,合计电耗统一成合计,便于进一步处理
  汇总 = Table.Group(重命名的列, {"年周"}, {{"实耗", each List.Sum([合计]), type number}}),'这步根据年周汇总实际消耗
  合并的查询 = Table.NestedJoin(汇总, {"年周"}, 产量, {"年周"}, "产量", JoinKind.LeftOuter),'这步从产量表获取年周对应的产量
  #"展开的“产量”" = Table.ExpandTableColumn(合并的查询, "产量", {"产量"}),
  已添加自定义 = Table.AddColumn(#"展开的“产量”", "实际", each [实耗]/[产量]),'计算出耗率
  合并的查询1 = Table.NestedJoin(已添加自定义, {"年周"}, 预算, {"年周"}, "预算", JoinKind.LeftOuter),'从预算表获取对应年周的预算
  #"展开的“预算”" = Table.ExpandTableColumn(合并的查询1, "预算", {"预算"}),
  删除的列 = Table.RemoveColumns(#"展开的“预算”",{"实耗", "产量"})
in
  删除的列


然后根据这个带参数的表生成一个自定义函数

再从输出数据表调用这个自定义函数,就可以生成最终需要的数据了.
let
  源 = {"热","水"},
  转换为表 = Table.FromList(源, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
  已调用自定义函数 = Table.AddColumn(转换为表, "获取数据", each 获取数据([Column1])),
  #"展开的“获取数据”" = Table.ExpandTableColumn(已调用自定义函数, "获取数据", {"年周", "实际", "预算"}, {"年周", "实际", "预算"}),
  重命名的列 = Table.RenameColumns(#"展开的“获取数据”",{{"Column1", "分类"}}),
  已添加条件列 = Table.AddColumn(重命名的列, "是否超预算", each if [实际] > [预算] then "超预算" else "预算内"),
  更改的类型 = Table.TransformColumnTypes(已添加条件列,{{"实际", type number}, {"预算", type number}})
in
  更改的类型
回复

使用道具 举报

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

本版积分规则