2016-02-25 6 views
1

Мне было интересно, что не так по следующей формуле.Почему эта Формула для Alteryx возвращает 0 вместо средних значений

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

То, что я пытаюсь сделать «Если ячейка является пустым, то заполнить ячейку в среднем всех других клеток, называемых [Возраст].

Большое спасибо всем!

ответ

1

Мы делаем много вменений, чтобы исправить нулевые значения во время нашего процесса ETL, и есть действительно два способа его выполнения .

Первый способ: инструмент для расчета. Вы можете использовать инструмент «Вменение» в категории «Подготовка». В параметрах инструмента выберите поля, которые вы хотите ввести, нажмите переключатель для «Null» на «Входящее значение для замены», а затем нажмите переключатель «Средний» в разделе «Заменить значение». Преимущества использования инструмента напрямую заключаются в том, что он намного менее сложный, чем другой способ его выполнения. Недостатки: 1) если вы пытаетесь исправить большое количество строк по сравнению с машинной спецификацией, это может быть невероятно медленным (гораздо медленнее, чем следующий), и 2) иногда случаются ошибки, когда мы используем его в нашем процессе без особого объяснения ,

Второй способ: рассчитать средние значения и использовать формулы. Вы также можете использовать инструмент «Summarize» в категории Transform для создания среднего поля для каждого столбца. После создания средних значений используйте инструмент «Добавить» в категории «Присоединиться», чтобы присоединиться к ним обратно в поток. У вас будут одинаковые средние значения для каждой строки в вашей базе данных. В этот момент вы можете использовать инструмент «Формула», как вы пытались в своем вопросе. Например. IF [Возраст] = Null() THEN [Ave_Age] ELSE [Возраст] ENDIF

Второй способ значительно быстрее запускается для чрезвычайно больших наборов данных (например, исправление возможных нулей в нескольких десятках столбцов более 70 миллионов строк) но требуется гораздо больше времени для настройки и должна создаваться для каждого столбца.

+0

Благодарим за помощь! Это сработало отлично, мне пришлось немного поработать, но в конце концов очень полезно. –

+0

Конечно, рад помочь. Если вы отметите это как ответ, это будет мой первый ответ на StackExchange! –

0

Это не как функция «Средняя» работает. Вам нужно передать ей весь список значений, а не только один.

 Смежные вопросы

  • Нет связанных вопросов^_^