Power Query自定义函数中的参数数量

时间:2016-08-18 06:09:21

标签: powerquery

人!

我尝试在Power Query中创建我的自定义函数,并且遇到了非常意外且完全不清楚的错误。

功能很简单 - 它从学生词典中检索学生姓名(从学生词典表中调用),然后检索发票表并计算向这个特定学生发出了多少次邀请。

该函数的代码如下:

    (FirstName as text) =>

let
    Source = XeroInvoices,
    #"Filtered Rows" = Table.SelectRows(Source, each Text.Contains([XeroContacts.Name], FirstName) ),
    #"Removed Other Columns" = Table.SelectColumns(#"Filtered Rows",{"XeroContacts.Name"}),
    #"Grouped Rows" = Table.Group(#"Removed Other Columns", {"XeroContacts.Name"}, {{"Result", each Table.RowCount(_), type number}}),
    Result = Record.Field(#"Grouped Rows", {0}, "Result")
in
    Result

然而,当我用一个参数调用函数时,它表示传递了 三个 参数,并且该函数需要 两个

http://shot.qip.ru/00Qqzx-4Vmk2GJfF/

请问你可以建议这个问题可能出现什么问题?

提前致谢。

2 个答案:

答案 0 :(得分:3)

导致错误消息的函数可能是上述函数的最后一步:

结果= Record.Field(#" Grouped Rows",{0},"结果")

它只需要2个参数:记录和要捕获的字段的名称。所以尝试将其更改为:

结果= Record.Field(#" Grouped Rows" {0}," Result")

查找有关如何轻松调试M-functions here的提示。

答案 1 :(得分:0)

你可以采用更简单的方式:

(FirstName as text) =>
    let
        Source = XeroInvoices,
        FilteredTable = Table.SelectRows(Source, each Text.Contains([XeroContacts.Name], FirstName) ),
        Result = List.Count(FilteredTable[XeroContacts.Name])
    in
        Result