Учебники

Excel DAX — ошибки формулы

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

Ошибки формулы DAX могут быть синтаксическими или семантическими ошибками. Ошибки могут возникать либо во время разработки, либо во время выполнения.

В этой главе вы узнаете о некоторых распространенных ошибках DAX, их причинах и о том, как их исправить.

Ошибка DAX: расчет прерван

Следующая ошибка может возникнуть при попытке создать (во время разработки) или использовать (во время выполнения) вычисляемое поле с функцией анализа времени DAX. В каждом случае несмежный диапазон дат передается функции анализа времени.

«Ошибка DAX: ВЫЧИСЛЕНО ВЫЧИСЛЕНИЕ: MdxScript (экземпляр) (00, 0) Функция« DATEADD »работает только с непрерывным выбором даты».

Причина во время выполнения

Эта ошибка может отображаться, когда вычисляемое поле с функцией анализа времени DAX помещается в область VALUES сводной таблицы и поля даты, такие как месяц или квартал, выбираются в качестве срезов или фильтров перед выбором года. Например, если у вас есть данные за три года — 2014, 2015 и 2016, и вы пытаетесь использовать только месяц Март без выбора поля Год, тогда эти значения не являются непрерывными значениями данных, и вы получите ошибку.

Как исправить ошибку во время выполнения?

В приведенном выше примере

  • Сначала добавьте год в качестве среза или фильтра и выберите год.

  • Затем добавьте месяц или квартал в качестве среза или фильтра.

  • Затем выберите один или несколько месяцев или кварталов для нарезки или фильтрации для выбранного года.

Сначала добавьте год в качестве среза или фильтра и выберите год.

Затем добавьте месяц или квартал в качестве среза или фильтра.

Затем выберите один или несколько месяцев или кварталов для нарезки или фильтрации для выбранного года.

Причина во время разработки

Для функций анализа времени DAX требуется столбец даты, указанный для аргумента даты. Столбец даты должен иметь непрерывный диапазон дат. Эта ошибка может быть возвращена, если в одной или нескольких строках столбца даты есть значение даты, которое не смежно со значениями данных в предыдущей и последующих строках.

Если вы импортировали свою таблицу, содержащую даты, из источника данных, помните, что во многих организациях запускаются специальные процессы, которые сканируют таблицы в базах данных на наличие недопустимых значений и заменяют их определенным значением. То есть, если найдена недопустимая дата, ей присваивается конкретное значение даты, которое может не совпадать с другими значениями данных в столбце.

Как исправить эту ошибку во время разработки?

Чтобы исправить ошибку во время разработки, сделайте следующее:

  • Если ваша таблица дат импортирована из источника данных, используйте «Обновить в окне Power Pivot», чтобы повторно импортировать любые изменения, найденные в источнике.

  • Проверьте значения в столбце даты, чтобы убедиться, что они находятся в непрерывном порядке. Если будет обнаружено, что какое-либо значение отсутствует, оно должно быть исправлено в источнике, а таблица дат должна быть обновлена.

  • Создайте отдельную таблицу дат и столбец дат в вашей модели данных. Укажите новый столбец даты в качестве аргумента даты в формуле, вызывающей ошибку. Таблицы дат легко создавать и добавлять в модель данных.

Если ваша таблица дат импортирована из источника данных, используйте «Обновить в окне Power Pivot», чтобы повторно импортировать любые изменения, найденные в источнике.

Проверьте значения в столбце даты, чтобы убедиться, что они находятся в непрерывном порядке. Если будет обнаружено, что какое-либо значение отсутствует, оно должно быть исправлено в источнике, а таблица дат должна быть обновлена.

Создайте отдельную таблицу дат и столбец дат в вашей модели данных. Укажите новый столбец даты в качестве аргумента даты в формуле, вызывающей ошибку. Таблицы дат легко создавать и добавлять в модель данных.

Семантическая ошибка DAX — пример

Следующая ошибка DAX является семантической ошибкой —

«Функция« CALCULATE »была использована в выражении« истина-ложь », которое используется в качестве выражения фильтра таблицы. Это запрещено ».

причина

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

В большинстве случаев эта ошибка вызвана выражением фильтра, заданным в качестве аргумента функции DAX CALCULATE. Для функции CALCULATE требуются фильтры, определенные как логическое выражение или табличное выражение.

Как исправить такие ошибки?

Такие ошибки можно исправить, используя функцию DAX FILTER, чтобы определить фильтры как табличное выражение, которое затем можно использовать в качестве аргумента функции DAX CALCULATE.