Power Query - 在组函数中计算列中的非空白

Posted

技术标签:

【中文标题】Power Query - 在组函数中计算列中的非空白【英文标题】:Power Query - Counting non blanks in column in Group function 【发布时间】:2018-10-05 12:04:57 【问题描述】:

我不是在 Power Query 中从头开始编写代码的专业人士,而是单击它并仅根据我的需要进行调整,并且在使用 Group 功能时我被卡住了。只有计算行数的选项,我想计算特定列中的非空白单元格。

代码如下:

= Table.Group(#"Replaced Value", 
     "Company Name", "Policy Number", "Division", "Date", 
         "Count", each Table.RowCount(_), type number, 
         "Sum", each List.Sum([Claim Amount]), type number
         
     )

它必须按四个字段(公司名称、保单编号、部门、日期)对数据进行分组,并返回索赔数量和索赔总和。

我尝试将其更改为使用 Counta 函数:https://msdn.microsoft.com/en-us/query-bi/dax/counta-function-dax 下面的示例:

= Table.Group(#"Replaced Value", 
     "Company Name", "Policy Number", "Division", "Date", 
         "Count", each List.Counta([Claim Amount]), type number, 
         "Sum", each List.Sum([Claim Amount]), type number
         
     )    

和上面的许多其他变体,但没有任何运气。你能帮我看看我在这里做错了什么吗?

编辑:我已经考虑在分组之前删除空值,但我实际上需要在某个组中特定月份有 0 个索赔的信息。

提前感谢您的帮助

【问题讨论】:

【参考方案1】:

假设您的“空白”字段实际上为空(听起来它们是基于您所说的),您可以使用 List.NonNullCount 来计算字段中不为空的项目.

= Table.Group(#"Replaced Value", 
     "Company Name", "Policy Number", "Division", "Date", 
         "Count", each List.NonNullCount([Claim Amount]), type number             
     )    

【讨论】:

完美,成功唤醒!这正是我一直在寻找的。谢谢。【参考方案2】:

试试这个:

=List.NonNullCount(Record.FieldValues(_))

【讨论】:

虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。【参考方案3】:

为什么不过滤空白然后分组?

let Source = Excel.CurrentWorkbook()[Name="Table1"][Content],
#"Filtered Rows" = Table.SelectRows(Source, each ([Claim Amount] <> null)),
#"Grouped Rows" = Table.Group(#"Filtered Rows", "Company Name", "Policy Number", "Division", "Date", "Count", each Table.RowCount(_), type number, "Sum", each List.Sum([Claim Amount]), type number)
in #"Grouped Rows"

【讨论】:

感谢您的回答。这是一个好主意,不幸的是我已经考虑过进一步使用我还需要哪些月份没有索赔的信息。当我过滤掉空白时,这会消失并在接下来的分析部分中产生更多问题。我太绝望了,我什至考虑过两个单独的查询,一个来做这些计数,另一个来计算总和,然后合并它们,但听起来应该有更好的解决方案来做到这一点......

以上是关于Power Query - 在组函数中计算列中的非空白的主要内容,如果未能解决你的问题,请参考以下文章

Power Query - 替换新列中的文本

Power Query / Power BI - 用另一列中的值替换空值

如何从 Power Query 的不同表中的 2 列中获取数据以汇总为 1 列?

powerquery的sum公式

从 Power Query 中的单元格值中提取数据类型?

Power Query 表中的网络流数据库