![](/img/trans.png)
[英]Power BI - DAX List.Select syntax to return specific records
[英]Power BI M Language List.Select How to filter by Date
当我使用这个: List.Select({[Date1], [Date2], [Date3]}, each _ < [Date4]) 它返回错误。 但是当我使用这个代码时: List.Select({"2020-01-01", "2020-02-01", "2020-03-01"}, each _ < "2020-04-01") 它返回值列表。
首先,我假设这是在 Table.AddColumn 之类的函数的上下文中 - 如果是这样,那么您的错误原因是:您正在引用内部函数的列表项参数而不是外部函数的表记录参数[Date4]”参考。
一旦您在所涉及的语法糖下公开完整代码,就更容易看到修复:只需为您的内部参数使用不同的标识符。
List.Select(
{[Date1],[Date2],[Date3]},
(ListItem)=> ListItem < [Date4]
)
以上是如何工作的? 查看原始的完整 M 代码以获得一个想法,再次假设我们正在使用 Table.AddColumn 之类的函数:
= Table.AddColumn(
Table1,
"New Column Name",
each List.Select(
{[Date1],[Date2],[Date3]},
each _ < [Date4]
)
)
我们可以看到实际上有两个在玩。 三点帮助我们理解问题:
有了以上几点,我们可以将代码改写如下
= Table.AddColumn(
Table1,
"New Column Name",
(_)=> List.Select(
{_[Date1],_[Date2],_[Date3]},
(_)=> _ < _[Date4]
)
)
现在您可以看到有一个外部“_”将表的每一行作为记录引用,它允许我们访问带有例如“_[Date1]”的字段。 另一方面,内部“_”正在访问输入列表的每个值。 因此,在最内层函数“_ < _[Date4]”的上下文中,“_”仅指内部的“_” - 即您试图从日期值访问记录字段,从而导致错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.