为什么这个Alteryx公式会返回0而不是平均值

时间:2016-02-25 03:52:24

标签: analytics formula formulas alteryx

我想知道以下公式有什么问题。

IF [Age] = Null() THEN Average([Age]) ELSE [Age] ENDIF

我正在尝试做什么"如果细胞是空白的,那么用称为[年龄]的所有其他细胞的平均值填充细胞。

非常感谢所有人!

2 个答案:

答案 0 :(得分:1)

我们在ETL过程中做了很多纠正空值的插补,实际上有两种方法可以实现它。

第一种方式:估算工具。您可以使用“准备”类别中的“插补”工具。在工具选项中,选择要插入的字段,单击要替换的传入值上的“空”单选按钮,然后在“替换为值”部分中单击“平均”单选按钮。直接使用该工具的优点是它比其他方式复杂得多。缺点是1)如果你试图修复相对于机器规格的大量行,它可能会非常慢(比下一种方式慢得多),2)当我们在我们的过程中使用它时偶尔会出现错误而没有太多解释

第二种方式:计算平均值并使用公式。您还可以使用“变换”类别中的“汇总”工具为每列生成平均字段。生成平均值后,使用“连接”类别中的“附加”工具将它们连接回流中。数据库中的每一行都有相同的平均值。此时,您可以在问题中尝试使用公式工具。例如。     IF [年龄] =空()然后[Ave_Age] ELSE [年龄] ENDIF

对于非常大的数据集,第二种方式运行速度明显更快(例如,在超过7000万行的几十列中修复可能的空值),但设置时间要长得多,必须为每列创建。

答案 1 :(得分:0)

这不是Average函数的工作方式。您需要将整个值列表传递给它,而不仅仅是一个。