我有一种措施,我将合同月份总数除以月份总数。我得到正确的结果,但底部的总数不正确。
第一列是唯一的ID,第三列和第四列是分子和分母,第二列是除法的结果,我要计算这些ID,除法在0.75和1.00之间
这是我的计算
Var Check = DIVIDE([订婚月],[L30合同月]) 返回 IF(HASONEVALUE('Fact-TABLE'[ID]),IF(Check> = 0.75 && Check <= 1.00,DISTINCTCOUNT(ID),0),SUMX('Fact-TABLE',IF(Check> = 0.75 && Check <= 1.00,DISTINCTCOUNT(ID),0)))
请让我知道如何解决此问题。
答案 0 :(得分:0)
对于Total,您应该将IF的第3个参数更改为:
CALCULATE (
SUMX (
CALCULATETABLE (
tab,
FILTER (
ALL ( tab ),
VAR __Check =
DIVIDE ( 'Tab'[Month of Engagement], Tab[Months In Contract L30] )
RETURN
__Check < 1
&& __Check > 0.75
)
),
1
)
)
在我的测试示例下面(仅用于测试,我在第一个IF中放入了检查变量 IF(Check> = 0.75 && Check <= 1.00,Check,0)以查看支票计算是否正确):
Measure =
VAR Check =
DIVIDE (
SUM ( 'Tab'[Month of Engagement] ),
SUM ( Tab[Months In Contract L30] )
)
RETURN
IF (
HASONEVALUE ( 'Tab'[ID] ),
IF ( Check >= 0.75 && Check <= 1.00, Check, 0 ),
CALCULATE (
SUMX (
CALCULATETABLE (
tab,
FILTER (
ALL ( tab ),
VAR __Check =
DIVIDE ( 'Tab'[Month of Engagement], Tab[Months In Contract L30] )
RETURN
__Check < 1
&& __Check > 0.75
)
),
1
)
)
)
答案 1 :(得分:0)
度量= VAR检查= 除( [订婚月], [L30合同中的月份] ) 返回 如果 HASONEVALUE('Tab'[ID]), IF(Check> = 0.75 && Check <= 1.00,Check,0), 计算 ( SUMX( 可计算( '标签', 过滤器( 全部('Tab'), VAR __Check = 除法([订婚月],[合同L30个月]) 返回 __检查> = 0.75 && __检查<= 1.00 ) ), 1个 ) ) )
以下是简要定义
参与度:= CALCULATE(COUNTROWS( SUMMARIZE('table','table'[MONTH_OF_ENGAGEMENT],“ Count”,DISTINCT('table'[MONTH_OF_ENGAGEMENT]))),'table'[FREQUENCY_FLAG] =“ Y”)+ 0
MONTH_OF_ENGAGEMENT是从日期中提取的值,即YYYYMM
合同L30的月数:= Var DBRefreshDate30 = [数据库刷新日期] -30 返回 DATEDIFF(DBRefreshDate30,[数据库刷新日期],MONTH)+1
现在将订婚月数与合同L30中的月数相除,我得出一个百分比,并检查该百分比是否介于0.75和1.00之间