DAX 在获取仅包含数字的单元格时计算列的平均值
DAX calculate an average of a column when taking cells that contain only numbers
使用 PowerPivot 功能创建度量。
列中有两种类型的值:整数和 NULL(字符串)。
试图弄清楚如何创建 DAX 公式来计算仅采用包含整数的单元格的列的平均值。
感觉下一个基本公式就可以了:
=CALCULATE (
AVERAGE ( tData[columnA]),
FILTER ( tData, [columnA] <> "NULL" )
)
但它会抛出一个错误:函数 AVERAGE 接受一个计算结果为数字或日期的参数,并且不能使用 String 类型的值。
我想知道是否有一种方法可以避免此错误而无需事先 removing/cleaning NULL 值?
Power BI 表不能在单个列中包含混合类型的值。如果列中有数字和文本,则列类型为文本。列中包含的数值实际上不是数字,它们只是由数字字符组成的文本。
因此,为了使其工作,您需要将数字字符串显式转换为实数。
= CALCULATE(
AVERAGEX( tData[columnA], VALUE(tData[columnA]) ),
tData[columnA] <> "NULL"
)
但是,我建议不要在一列中包含文本和数值。使用 Power Query 删除带有 "NULL" 的行,或将它们转换为空白。
最好的方法是将 NULL
(字符串)值替换为数据库 null
(无)值。这样你的行保持 null
但你的计算仍然有效。
转到 Edit Queries > Transform > Repalce Values
并将字符串 NULL
替换到数据库 null
。您的 table 将如下所示:
现在平均计算很简单:
数据库 null
值在每次计算中都会被忽略。这就是它的工作方式。
使用 PowerPivot 功能创建度量。
列中有两种类型的值:整数和 NULL(字符串)。
试图弄清楚如何创建 DAX 公式来计算仅采用包含整数的单元格的列的平均值。
感觉下一个基本公式就可以了:
=CALCULATE (
AVERAGE ( tData[columnA]),
FILTER ( tData, [columnA] <> "NULL" )
)
但它会抛出一个错误:函数 AVERAGE 接受一个计算结果为数字或日期的参数,并且不能使用 String 类型的值。
我想知道是否有一种方法可以避免此错误而无需事先 removing/cleaning NULL 值?
Power BI 表不能在单个列中包含混合类型的值。如果列中有数字和文本,则列类型为文本。列中包含的数值实际上不是数字,它们只是由数字字符组成的文本。
因此,为了使其工作,您需要将数字字符串显式转换为实数。
= CALCULATE(
AVERAGEX( tData[columnA], VALUE(tData[columnA]) ),
tData[columnA] <> "NULL"
)
但是,我建议不要在一列中包含文本和数值。使用 Power Query 删除带有 "NULL" 的行,或将它们转换为空白。
最好的方法是将 NULL
(字符串)值替换为数据库 null
(无)值。这样你的行保持 null
但你的计算仍然有效。
转到 Edit Queries > Transform > Repalce Values
并将字符串 NULL
替换到数据库 null
。您的 table 将如下所示:
现在平均计算很简单:
数据库 null
值在每次计算中都会被忽略。这就是它的工作方式。