如果获取了从SSAS返回的数据集,其中某些记录可能是infinity或-infinity (在SSAS中计算,而不是在报告中计算)。
我想计算这一列的平均值,但忽略那些正无穷大或负无穷大的记录。
我的想法是创建一个逻辑上可以做到这一点的计算字段:
= IIF(IsInfinity(Fields!ASP.Value) or IsNegativeInfinity(Fields!ASP.Value), 0 Fields!ASP.Value)我搞不懂的是怎么做IsInfinity或IsNegativeInfinity。
发布于 2011-12-22 18:16:11
只是偶然发现了这个问题,并找到了一个简单的解决方案来确定一个数值字段是否为无穷大。
=iif((Fields!Amount.Value+1).Equals(Fields!Amount.Value), false,true)发布于 2012-01-13 09:28:12
我假设您使用的是商业智能工作室,而不是报表生成器工具。
也许您正在尝试一个公式,因为您不能更改SSAS MDX查询,但如果可以,那么无穷大很可能是由除以零引起的。NaN很可能是由尝试使用空值进行数学运算造成的。
理想情况下,改变多维数据集本身,这样度量就不会被零除了(例如,如果度量= 0,不要做除法只返回"",否则就做除法)。第二种选择是在MDX查询中创建一个执行类似操作的计算度量。
至于公式,没有IsInfinity函数,所以您必须查看字段的值,看看它是1.#IND、1.#INF还是NaN。
https://stackoverflow.com/questions/6866543
复制相似问题