excel - 编辑 excel 查询以与 powerbi 查询配合使用
问题描述
我有需要在 powerbi 中制作的 excel 报告。现在我对最后一个查询还有 1 个问题。在 excel 中有一个“列表”表,其中包含各种随机数据(例如文档路径、计算日期等,它们都是非常随机的)。
在查询中,我有一行:
#"Filtered Rows1" = Table.SelectRows(#"Added Items", each Cube.AttributeMemberId([#"Date - Time.Year"]) = Text.Combine({"[Time].[Time].[Calendar Year].&[", Number.ToText(Date.Year(Excel.CurrentWorkbook(){[Name="Request"]}[Content]{0}[end])),"]"}) meta [DisplayName = Number.ToText(Date.Year(Excel.CurrentWorkbook(){[Name="Request"]}[Content]{0}[end]))]),
#"Changed Type1" = Table.TransformColumnTypes(#"Filtered Rows1",{{"Date - Time.Days", type date}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type1", each [#"Date - Time.Days"] >= #date(Date.Year(Excel.CurrentWorkbook(){[Name="Request"]}[Content]{5}[start]),Date.Month(Excel.CurrentWorkbook(){[Name="Request"]}[Content]{5}[start]),Date.Day(Excel.CurrentWorkbook(){[Name="Request"]}[Content]{5}[start])) and [#"Date - Time.Days"] <= #date(Date.Year(Excel.CurrentWorkbook(){[Name="Request"]}[Content]{0}[end]),Date.Month(Excel.CurrentWorkbook(){[Name="Request"]}[Content]{0}[end]),Date.Day(Excel.CurrentWorkbook(){[Name="Request"]}[Content]{0}[end]))),
在该代码第一行部分:
Number.ToText(Date.Year(Excel.CurrentWorkbook(){[Name="Request"]}[Content]{0}[end]))
我发现这段代码连接到 excel 文件表“列表”(从 A1 到 F7 的表格) - 如下所示:
+--------------+------------------+------------+------------+-----------------+----------+
| NameOfSource | httpaddress | start | end | Path | File |
+--------------+------------------+------------+------------+-----------------+----------+
| Data 1 | http:.... | 09.03.2020 | 11.03.2020 | http:.... | |
| Data 2 | http:.... | | | http:.... | |
| Data 3 | X:\....\.. .txt | | | X:\....\.. .txt | |
| Data 4 | X:\....\.. 2.txt | | | X:\....\.. .txt | |
| Data 5 | X:\....\.. 3.txt | 01.03.2020 | 08.03.2020 | X:\....\.. .txt | xxx.json |
+--------------+------------------+------------+------------+-----------------+----------+
所以我的猜测是代码部分[Content]{0}
是指end
value 所在的列11.03.2020
。现在这11.03.2020
是用代码计算的=DATE(YEAR(NOW());MONTH(NOW());DAY(NOW())-1)
。
在 PowerBI 中,我不想使用这种方法来获取数据,如果可能的话,我希望以某种方式将这些数据放入原始查询代码中。因此,Number.ToText(Date.Year(Excel.CurrentWorkbook(){[Name="Request"]}[Content]{0}[end]))
我不想让代码在不指向另一张纸或其他地方的情况下进行相同的计算。
与
Date.Year(Excel.CurrentWorkbook(){[Name="Request"]}[Content]{5}[start])
[Content]{5}[start]
这里使用代码而不是指向工作表行=EOMONTH([@end];-1)+1
希望我解释得足够好:)
或者,由于这不是从“列表”表中提取的唯一数据查询,也许在 powerbi 中创建这样的表更容易?在那种情况下,是否有任何文档可以解释如何执行此操作?因为我不认为 PowerBI 使用(Excel.CurrentWorkbook)
或类似的东西。
解决方案
强大的查询 M 语言具有非常好的内置日期功能。
而不是DATE(YEAR(NOW());MONTH(NOW());DAY(NOW())-1)
,你可以写
Date.AddDays(DateTime.Date(DateTime.LocalNow()),-1)
而不是EOMONTH([@end];-1)+1
,你可以写
Date.StartOfMonth(DateTime.Date(DateTime.LocalNow()))
如果您首先将今天的日期定义为
Today = DateTime.Date(DateTime.LocalNow())
然后写
Date.AddDays(Today,-1)
Date.StartOfMonth(Today)
推荐阅读
- docusignapi - 在 Docusign 中创建信封/草稿信封时附加 pdf/其他文件
- php - 排序和过滤多维数组
- usb - 通过 Python 控制 USB Thorlabs 相机 - OpenCV
- javascript - 如何使用 JavaScript 获取 HTML 表格的条目?
- mysql - 如何检查用户是否喜欢 React、Node 和 MySQL 中的帖子?
- excel - Excel:查找 B 列中特定单词的日期相关(A 列)和 C 列的返回值。如何?
- python - 无法导入模型 Django
- python - 使用 pd.melt() 取消透视 MultiIndex DataFrame
- node.js - 在 Mongoose 中间件中检索登录用户
- core-data - CoreData:使用 NSCKImportOperation 删除传播预取失败