首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerQuery -动态数据参数

PowerQuery -动态数据参数
EN

Stack Overflow用户
提问于 2018-03-26 19:05:34
回答 1查看 4.6K关注 0票数 1

我在Excel中有以下PowerQuery

代码语言:javascript
复制
let
    Source = Excel.CurrentWorkbook(){[Name="Query1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Month Year", type date}}),
    #"Custom Step"  = Table.SelectRows(#"Changed Type", each [Month Year] = #date(2017, 12, 1))
in
    #"Custom Step"

我想把它设置为#date(2017,12,1)是一个参数。换句话说,我希望在工作表上有一个过滤器/下拉列表,以及用户选择的任何内容(2017年12月、2016年11月等)。我想要“自定义步骤”来过滤基于选择的表格。

是否有某种语法允许我使用参数?(有点像SQL中的@变量)

EN

回答 1

Stack Overflow用户

发布于 2018-03-26 20:36:02

获取查询参数的方法有很多种。您可以使用一个命名的范围并直接访问它,或者使用一个函数访问它,或者您甚至可以构建一个包含多个参数的表,并使用一个函数访问它们。Ken为参数表这里提供了一个很好的起点

只要使用一个参数,您就可以简单地使用一个命名范围。在下面的屏幕截图中,单元格F4的范围名为SelectedDate。使用行很容易获得此参数。

代码语言:javascript
复制
myDate = Excel.CurrentWorkbook(){[Name="SelectedDate"]}[Content]{0}[Column1]

但是结果将是文本,不能正确地过滤表。您需要将其转换为日期,例如将其包装为Date.From函数。

代码语言:javascript
复制
myDate = Date.From(Excel.CurrentWorkbook(){[Name="SelectedDate"]}[Content]{0}[Column1]),

现在可以使用变量myDate来筛选表。以下是完整的M代码:

代码语言:javascript
复制
let
    myDate = Date.From(Excel.CurrentWorkbook(){[Name="SelectedDate"]}[Content]{0}[Column1]),
    Source = Excel.CurrentWorkbook(){[Name="Query1"]}[Content],
    ChangedType = Table.TransformColumnTypes(Source,{{"Month Year", type date}}),
    Filtered  = Table.SelectRows(ChangedType, each [Month Year] = myDate )
in
    Filtered

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49498840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档