使用PowerPivot功能创建度量。
列中有两种类型的值:整数和NULL(字符串)。
试图弄清楚如何创建DAX公式以计算仅取包含整数的单元格的列的平均值。
感觉下一个基本公式会起作用:
=CALCULATE (
AVERAGE ( tData[columnA]),
FILTER ( tData, [columnA] <> "NULL" )
)
但会引发错误:函数AVERAGE带有一个参数,其结果为数字或日期,并且不能与String类型的值一起使用。
我想知道是否有一种避免这种错误的方法,而无需事先删除/清除NULL值?
答案 0 :(得分:1)
如果您将NULL
(字符串)值替换为数据库null
(什么都没有)值,这是最好的方法。这样,您的行将保留在null
,但您的计算仍然有效。
转到Edit Queries > Transform > Repalce Values
并将字符串NULL
替换为数据库null
。然后您的表将如下所示:
现在平均计算很简单:
数据库null
的值在每次计算中都会被忽略。这是它的工作方式。
答案 1 :(得分:0)
Power BI表不能在单个列中包含混合类型的值。如果一列中有数字和文本,则列类型为文本。列中包含的数字值实际上不是数字,它们只是由数字字符组成的文本。
因此,为了使其起作用,您需要将数字字符串显式转换为实数。
= CALCULATE(
AVERAGEX( tData[columnA], VALUE(tData[columnA]) ),
tData[columnA] <> "NULL"
)
但是,我建议不要在一列中包含文本和数字值。使用Power Query删除带有“ NULL”的行,或将其转换为BLANK。