Вычисляемые столбцы (табличные службы SSAS)
Вычисляемые столбцы в табличной модели позволяют добавлять новые данные в модель. Вместо вставки или импорта значений в столбец создается формула DAX, которая определяет значения уровня строк для столбца. Вычисляемый столбец впоследствии может использоваться в отчете, сводной таблице или сводной диаграмме, как и любой другой столбец.
Примечание |
---|
Вычисляемые столбцы не поддерживаются для табличных моделей в режиме DirectQuery. Дополнительные сведения см. в разделе Режим DirectQuery (табличные службы SSAS). |
Разделы данной темы:
Преимущества
Именование вычисляемых столбцов
Производительность вычисляемых столбцов
Связанные задачи
Преимущества
Формулы в вычисляемых столбцах очень похожи на формулы, применяемые в Excel. Однако в отличие от Excel невозможно создать разные формулы для разных строк таблицы, вместо этого формула DAX автоматически применяется ко всему столбцу.
Если столбец содержит формулу, значение вычисляется для каждой строки. Результаты вычисляются для столбца, как только будет введена допустимая формула. Значения столбца затем повторно вычисляются по мере необходимости, например при обновлении базовых данных.
Можно создавать вычисляемые столбцы на основе мер и других вычисляемых столбцов. Например, можно создать один вычисляемый столбец для извлечения номера из текстовой строки, а затем использовать это число в другом вычисляемом столбце.
Вычисляемый столбец создается на основе данных, которые уже присутствуют в существующей таблице, или создается с помощью формулы DAX. Например, можно выполнять объединение, сложение, извлечение подстрок и сравнение значений в других полях. Для добавления вычисляемого столбца в модели должна быть хотя бы одна таблица.
В этом примере демонстрируется простая формула в вычисляемом столбце:
=EOMONTH([StartDate],0])
Эта формула извлекает месяц из столбца StartDate. Затем для каждой строки в таблице вычисляется значение конца месяца. Второй параметр задает число месяцев до или после месяца в дате StartDate. В этом случае 0 означает тот же самый месяц. Например, если столбец StartDate имеет 6/1/2001, то значение в вычисляемом столбце будет также 6/30/2001.
Именование вычисляемых столбцов
По умолчанию новый вычисляемый столбец добавляется справа от других столбцов в таблице, и столбцу автоматически присваивается имя по умолчанию: CalculatedColumn1, CalculatedColumn2 и т. д. Чтобы создать новый столбец между двумя существующими, можно также щелкнуть столбец правой кнопкой мыши и выбрать команду «Вставить столбец». Столбцы в одной таблице можно переупорядочить перетаскиванием, а также переименовать после создания, однако необходимо учитывать следующие ограничения на внесение изменений в вычисляемые столбцы.
Имя каждого столбца должно быть уникальным в пределах таблицы.
Не следует использовать имена, которые уже использовались для мер внутри одной модели. Допускается наличие одинаковых имен у меры и вычисляемого столбца, но если они будут неуникальными, то возможно появление ошибок при вычислениях. Чтобы исключить случайный вызов меры при обращении к столбцу, всегда используйте полную ссылку на столбец.
Если меняется имя вычисляемого столбца, необходимо также вручную обновить все зависящие от него формулы. Обновление результатов формул происходит автоматически, если не включен режим ручного обновления. Однако эта операция может занять некоторое время.
Некоторые символы нельзя использовать в именах столбцов. Дополнительные сведения см. в подразделе «Требования к именам» раздела Спецификация синтаксиса DAX для PowerPivot.
Производительность вычисляемых столбцов
Формула для вычисляемого столбца может потреблять больше ресурсов, чем формулы, используемые для мер. Одна из причин этого заключается в том, что результат вычисляемого столбца всегда вычисляется для каждой строки таблицы, а мера вычисляется только для ячеек, указанных в фильтре отчета, сводной таблице или сводной диаграмме. Например, вычисляемый столбец в таблице из миллиона строк всегда будет содержать миллион строк, что соответствующим образом отразится на производительности. Однако в сводной таблице обычно производится фильтрация данных, применяются заголовки строк и столбцы, поэтому мера вычисляется только для подмножества данных в каждой ячейке сводной таблицы.
Формула имеет зависимости от объектов, на которые в ней существуют ссылки, например от других столбцов и выражений, вычисляющих значения. Например, вычисляемый столбец, основанный на другом столбце, или вычисление, содержащее выражение со ссылкой на столбец, не могут быть вычислены до тех пор, пока не будет вычислен этот столбец. По умолчанию автоматическое обновление в книгах включено, поэтому все такие зависимости могут влиять на производительность при обновлении значений и формул.
Чтобы избежать проблем с производительностью, при создании вычисляемых столбцов необходимо придерживаться следующих рекомендаций.
Вместо того чтобы включать в одну формулу множество сложных зависимостей, создавайте формулы последовательно, сохраняя результаты в столбцах. Это позволит проверить результаты и оценить производительность.
Изменение данных часто приводит к необходимости повторного вычисления вычисляемых столбцов. Это можно изменить, выбрав режим повторного вычисления вручную. Но при этом в том случае, если какие-либо значения в вычисляемом столбце окажутся неверными, столбец будет выделен серым и станет неактивным до того момента, пока данные не будут обновлены и повторно рассчитаны.
Если изменить или удалить связи между таблицами, то формулы, в которых используются столбцы из этих таблиц, могут стать неверными.
При создании формулы, содержащей циклическую зависимость или зависимость со ссылкой на себя, возникнет ошибка.
Связанные задачи
Раздел |
Описание |
---|---|
Задачи в данном разделе описывают добавление нового вычисляемого столбца в таблицу. |
См. также
Основные понятия
Таблицы и столбцы (табличные службы SSAS)