![](/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.