Два вида вычислений DAX в сводных таблицах Excel 2010
Ранее уже рассматривался пример использования функции DAX для объявления вычисляемого столбца в таблице, которая отображается в окне PowerPivot. Для создания вычисляемых столбцов используется 81 функция, большинство из которых копируются непосредственно из Excel. При создании вычисляемых столбцов также использовалась функция related, предназначенная для передачи значений из другой таблицы.
В языке DAX появились 54 новые функции, предназначенные не для вычисления единственного значения ячейки, а для определения значений отфильтрованных строк, связанных с ячейками сводной таблицы (агрегирующие функции). Реальная мощь PowerPivol заключается именно в этих функциях.
Использование функций DAX в вычисляемых столбцах
Пример вычисляемого столбца уже рассматривался ранее. Используемые при этом функции весьма напоминают обычные функции Excel. Поэтому для большинства из них не требуются дополнительные объяснения.
В категории Дата и время (Dale & Time) находится 17 функций. Первые 16 функций идентичны функциям Excel. Редко упоминаемая функция Excel DATEDIF переименована в yearfrac, а ее код был переписан.
- DATE(
, <месяц>, <день>) - DATEVALUE(дата в текстовом формате)
- DAY(<дата>)
- EDATE(<начальная_дата>, <месяцы>)
- EOMONTH(<начальна я_дата>. <месяцы>)
- HOUR(<дата/время>)
- MINUTE(<дата/время>)
- MONTH(<дата/время>)
- NOW ()
- SECOND(<время>)
- Т1МЕ(час, минута, секунда)
- TIMEVALUE(время в текстовом формате)
- TODAY()
- WEEKDAY(<дата>, <тип_воэвращаемого_эначения>)
- WEEKNUM(<дата>, <тип воэврашаемого_эначения>)
- YЕАR(<дата>)
- YEP&FPAC{<нзчальная_дата>, <конечная дата>, <базис>)
В категории Информационные (Information) находится 6 функций Excel.
- ISBLANK(<значение>)
- ISERROR(<значение>
- ISLOGICAL(<значение>)
- ISNOHTEXT{<значение>)
- ISNUMBER(<значение>)
- ISTEXT(<значение>)
В категории Логические (Logical Functions) находится 7 функций Excel. Вопреки ожиданиям, в этом списке отсутствует функция SUMIFS. Об этом мы поговорим при рассмотрении функции CALCULATE.
- АND(<логическое_значение1>, <логическое_значение2>, …)
- FALSE ()
- IF{<логическое_выражение>, <значение, если истина>, <значение, если ложь>)
- IFERROR(значение, если ложь)
- NOT<логическое_выражение>)
- OR( <логическое _выражение1>, <логическое_выражеиие2>, …)
- TRUE()
В категории Арифметические и тригонометрические (Math and Trig) вы найдете 22 знакомые функции.
- ABS (<число>)
- CEILING (<число>, значимость_разряда>)
- EXP (<число>)
- FACT (<число>)
- FLOOR(<число>, <значимость_разряда>)
- INT (<число>)
- LN (<число>)
- LOG(<число>, <основание>)
- LOG10{<число>)
- MOD(<число>, <делитель>)
- MROUND(<число, <ыножитель>)
- РI ()
- POWER(<число>, <степень>)
- QUOTLENT(<числитель>, <знаменатель>)
- RAND ()
- RANDBETWEEN(<нижняя_граница>, <верхняя_границa>)
- ROUND(<число>, <количество_цифр>)
- ROUNDDOWN(<число>, <количество_цифр>)
- ROUNDUP (<число>, <количестшо_цифр>)
- SIGN(<число>)
- SQRT(<число>)
- TRUNC(<число>, <количество_цифр>)
В категорию Статистические (Statistical) входят 10 функций.
- AVERAGE (<столбец >)
- AVEPAGEA(<столбец>
- COUNT(<столбец>)
- COUNTA(<столбец>)
- COUNTBLANK (<столбец>)
- MAX (<столбец>)
- МАХА (<столбец>)
- MIN(<столбец>)
- MINA(<столбец>)
- SUM(<столбец>)
А теперь немного о функциях, относящихся к категории Текстовые (Text). Функция CONCATENATE позволяет объединять только два элемента. В целях объединения элементов можно также использовать оператор &. Поскольку средствами PowerPivot невозможно объединить две таблицы на основе двух полей, находящихся в каждой таблице, для этого используется оператор конкатенации.
Функция Excel TEXT была переименована в FORMAT, хотя суть самой функции не изменилась. Вероятно, переименование было вызвано тем, что команда разработчиков PowerPivot полагала, будто название функции text не отражает ее назначение.
- CODE(<текст>)
- CONCATENATE(<текст>, <текст2>, …)
- EXACT{<текст1>, <текст2>)
- FIND(<раэыскиваемый_текст>, <в_пределах_текста>, <начальный_номер>)
- FIXED{<число>, <десятичные_значения>, <6ез_запятых>)
- FORMAT(<значение>, <строка_форматирования>)
- LEFT(<текст>, <число_символов>)
- LEN(<текст>)
- LOWER(<текст>)
- МЮ(<текст>, <начальный_номер>, <количество_символов>)
- REPLACE(<старый_текст>, <начальный_номер>, <количество_символов>, <новый_текст>)
- REPT(<текст>, <количество_повторений>)
- RIGHT(<текст>, <количество_символов>)
- SEARCH{<разыскиваемый_текст>, <в_тексте>, [начальный_номер])
- SUBSTITUTE(<текст>, <старый_текст>, <новый_текст>, <номер_экземпляра>)
- TRIM(<текст>)
- UPPER(<текст>)
- VALUE (<текст>)
Большинство функций из категории Фильтр (Filter and Value Functions) предназначено для создания новых мер. Ниже указаны две подобные функции.
- В языке формул DAX появилась новая функция BLANK. Поскольку ряд агрегирующих функций может применяться в качестве основы для вычислений С ПОМОЩЬЮ функций ALLNONBLANKROW ИЛИ FIRSTNONBLANK, можно воспользоваться функцией BLANK внутри функции IF для исключения определенных строк из алгоритма, применяемого при создании мер.
В распоряжении пользователей появилась функция related, которая подробнее описана в следующей статье.