我被困在一个非常 - 我认为 - 简单的问题上,现在已经不再适用于我了。我已经制定了一项衡量过去几年(从2014年开始)零售数量的措施:
Retails := CALCULATE(COUNT(fData[ProductionNumber);fData[OrderStatus]=50))
除此之外,我们的数据模型包括2014年1月1日至2018年12月31日的日历表。
为了进行年度比较,我已经定义了上一年的零售业'为:
PY Retails := CALCULATE([Retails];SAMEPERIODLASTYEAR('Date'[DateKey])
不知何故,这让我陷入了连续的日期选择 - 恐怖,我无法看到为什么或如何!使用此方法计算PY销售额始终有效。不知何故,在这种情况下,它并没有。我已经检查了我的事实表,每个日期都包含在日历日期键中。我认为这可能与2016年2月29日有一个零售这个事实有关,然后在转回时它在2015年没有找到相同的日期?
感谢您的帮助!
答案 0 :(得分:1)
你是对的 - 这是SAMEPERIODLASTYEAR函数的一个相当愚蠢的弱点。为了避免这种情况,我通常将其包装在IF ... SELECTEDVALUE测试中以避免跨越多年,例如
PY Retails := IF ( SELECTEDVALUE ( 'Date'[Year]; 0 ) = 0 ; BLANK() ; CALCULATE([Retails];SAMEPERIODLASTYEAR('Date'[DateKey]) )