基于F1列分组的F2列的不同计数
我有一个表格Table1:
F1 | F2 ------- a | 1 a | 2 b | 1 c | 2
我想定义一个度量MyMeasure,这将允许我生成一个表:
F2 | Count ---------- 1 | 2 2 | 1
Count中的值将来自CUBEVALUE函数,如:
=CUBEVALUE("ThisWorkbookDataModel","[Measures].[MyMeasure]","[Table1].[F2].&[1]") =CUBEVALUE("ThisWorkbookDataModel","[Measures].[MyMeasure]","[Table1].[F2].&[2]").
MyMeasure的逻辑应该是:
1)在F1中find每个组的最小值F2(a – > 1,b – > 1,c – > 2)。
2)对于前一个点的指定值,F1中的计数项不同。
我能够在数据模型中使用帮助列来实现,但我希望通过一个单一的措施来实现它。
最近的尝试是:
=COUNTROWS( GENERATE( all(Table1[F2]) ,SUMMARIZE( all(Table1),Table1[F1],"sth",min(Table1[F2]) ) ) )
据我了解,我弄乱了上下文,结果我得到:
F2 | Count ---------- 1 | 6 2 | 6
在T-SQL中,我可以使用查询生成输出:
select distinct t1.F2 ,count(*) over (partition by t1.F2) from (select distinct F2 from Table1) t1 right join (select F1, min(F2) as MyMin from Table1 group by F1) t2 on t1.F2 = t2.MyMin
我把我的两分钱,你可以创build一个计算表,返回不同的[F2]
价值观和他们的最低出现次数的两列。 我不确定你只能从一个测量中得到最小值。
CalculatedTable = GROUPBY ( GROUPBY ( Table, Table[F1], "Minimum", MINX ( CURRENTGROUP (), Table[F2] ) ), [Minimum], "MinCount", COUNTAX ( CURRENTGROUP (), [Minimum] ) )
让我知道这是否有帮助。
我可能误解了你的问题,但是我会用Table1的第三列中的一个数组公式将它作为数据模型的一部分,
{=IF([@F2]=MIN(IF([F1]=[@F1],[F2])),1,0)}