Powerbi 如何在计算列中计算power bi中筛选表的行数
我想计算表中特定列的发生次数。我认为最好的方法是计算过滤表的行数。因此,我的WorkOrders表如下所示:Powerbi 如何在计算列中计算power bi中筛选表的行数,powerbi,dax,Powerbi,Dax,我想计算表中特定列的发生次数。我认为最好的方法是计算过滤表的行数。因此,我的WorkOrders表如下所示: WO# Date CompCode Serial# 001 1/1/2021 100 A 001 1/1/2021 101 A 002 1/2/2021 100 B 003 2/1/2021 100 A 004 2/2/2021 100 B 005 2/15/2021 101
WO# Date CompCode Serial#
001 1/1/2021 100 A
001 1/1/2021 101 A
002 1/2/2021 100 B
003 2/1/2021 100 A
004 2/2/2021 100 B
005 2/15/2021 101 A
006 3/1/2021 102 A
006 3/1/2021 100 A
WO# Date CompCode Serial# COMP_OCCURANCE
001 1/1/2021 100 A 1
001 1/1/2021 101 A 1
002 1/2/2021 100 B 1
003 2/1/2021 100 A 2
004 2/2/2021 100 B 2
005 2/15/2021 101 A 2
006 3/1/2021 102 A 1
006 3/1/2021 100 A 3
我想创建一个新列,用串行#计算CompCode上的发生次数。不存在按日期排序的数据。因此,我尝试使用以下公式计算筛选表的行数:
COMP_OCCURANCE =
CALCULATE(
COUNTROWS(WorkOrders),
Serial# = Serial#,
Date <= Date,
CompCode = CompCode
)
提前感谢您的帮助。试试这个:
COMP_OCCURANCE =
VAR CurrentSerial = WorkOrders[Serial #]
VAR CurrentDate = WorkOrders[Date]
VAR CurrentCode = WorkOrders[CompCode]
VAR Result =
CALCULATE (
COUNTROWS ( WorkOrders ),
WorkOrders[Serial #] = CurrentSerial,
WorkOrders[CompCode] = CurrentCode,
WorkOrders[Date] <= CurrentDate,
REMOVEFILTERS ( WorkOrders )
)
RETURN
Result
COMP\u发生率=
VAR CurrentSerial=工作顺序[序列号]
VAR CurrentDate=工作订单[日期]
VAR CurrentCode=工单[CompCode]
VAR结果=
算计(
计数行(工作顺序),
工单[序列号#]=当前序列号,
工单[CompCode]=当前代码,
WorkOrders[Date]对于这种类型的计算,您必须依赖一列来对数据进行排序/排序。在这种情况下,您不能使用Date,因此我认为您可以在这种情况下选择“WO#”列。如果这是可以接受的,您可以尝试以下方法来获得预期的输出-
COMP_OCCURANCE =
CALCULATE(
COUNT(your_table_name[WO#]),
FILTER(
ALL(your_table_name),
your_table_name[WO#] <= MIN(your_table_name[WO#])
&& your_table_name[CompCode] = MIN(your_table_name[CompCode])
&& your_table_name[Serial#] = MIN(your_table_name[Serial#])
)
)
COMP\u发生率=
算计(
计数(您的表名[WO]),
滤器(
全部(您的表格名称),
您的表格名称[WO]