Date/time

реклама
Некоторые сценарии
практического использования
DAX в PowerPivot
Андрей Коршиков
Компания Портал-Юг, Краснодар, Россия
Содержание
 Знакомство с PowerPivot и DAX
(если кто-то ещё с ними не знаком)
 Решение некоторых практических задач
Введение в PowerPivot
Какие проблемы при создании
отчётов?
 …
Какие проблемы при
использовании Excel?
 …
Назначение PowerPivot
 Обработка больших объемов данных на обычном
компьютере
 Поддержка обработки данных на стороне клиента
 Подключение ко многим источникам данных
 Надстройка для Excel и SharePoint
Системные требования
 Поддерживаемые операционные
системы:
Windows 7, Windows Server 2008 R2 (64-bit),
Windows XP with SP3 (32-bit),
Windows Vista with SP2 (32-bit or 64-bit) и т.д.
 32 или 64-разрядный процессор с
тактовой частотой 500 МГц или быстрее
 Как минимум 1 Гб ОЗУ (рекомендуется
2 Гб или более).
 3,5 Гб свободного места на жестком
диске
Источники данных для
PowerPivot
Базы данных
(SQL, Access, SSAS)
Каналы
данных (RSS)
Файлы
(текст, Excel)
Рабочее пространство
PowerPivot
 Набор таблиц и связи между ними
Data Analysis Expressions (DAX)
 Язык выражения для работы с данными в PowerPivot
 Набор функций, операторов и констант для построения
формул и выражений в PowerPivot
 С помощью DAX пользователи выполняют многомерный
анализ владея базовыми знаниями о многомерном
анализе
Синтаксис DAX
 Выражение всегда начинается со знака «=»
 Аргументы функций (название таблицы, столбца,
значение, выражение) заключаются в скобки
 Название таблицы заключается в кавычки, если содержит
пробел
 Название столбца или меры заключается в квадратные
скобки
 Если не требует аргумента, все равно нужны парные
скобки. Например: PI()
Синтаксис DAX
 Например:
=(‘Sales’[SalesAmount]*0,05)
Таблица
Столбец
=RELATED('SalesTerritory'[SalesRegion])
ссылка на столбец в связанной таблице
Синтаксис DAX
=3
=Sales[Column1]
=(0.03 *[Amount])
=PI()
=(FALSE=0)
=TRUE+1
=[Sales] / [Quantity]
Типы данных
 Стандартные:






Integer (целое, 8 байт)
Real (вещественное, 8 байт)
Boolean (true/false)
String
Date (дата после 1 марта 1900)
Currency (валюта)
Типы данных
 Новые:
 BLANK (аналог NULL в SQL)
 Table (используется в функциях агрегирования и фильтрации)
Преобразование типов данных




=12 & 34
="22"+22
=TRUE+1
=NOW()+1
Обработка пустых значений
Выражение
BLANK + BLANK
BLANK +5
BLANK * 5
5/BLANK
0/BLANK
BLANK/BLANK
FALSE OR BLANK
FALSE AND BLANK
TRUE OR BLANK
TRUE AND BLANK
BLANK OR BLANK
BLANK AND BLANK
DAX
BLANK
5
BLANK
Бесконечность
NaN
BLANK
FALSE
FALSE
TRUE
FALSE
BLANK
BLANK
Excel
0 (ноль)
5
0 (ноль)
Ошибка
Ошибка
Ошибка
FALSE
FALSE
TRUE
TRUE
Ошибка
Ошибка
http://msdn.microsoft.com/ru-ru/library/ff452238.aspx
Операторы





Скобки ()
Арифметические +, -, *, /, Сравнение =, <>, >, >=, <, <=
Слияние текста &
Логические &&, ||, !
Приоритет операторов
Оператор
Описание
^
Возведение в степень
–
Отрицание (как в числе –1)
*и/
Умножение и деление
!
NOT (унарный оператор)
+и–
Сложение и вычитание
&
Объединяет две строки текста
=< ><=>=<>
Сравнение
Вычисляемые столбцы и меры
 Вычисляемые столбцы
 Меры
 Выбор между вычисляемыми столбцами и мерами
 использование
 хранение
 производительность
Обработка ошибок
 Ошибки преобразования типов
=SalesOrders[VatCode]+100
=“1+1”+0
 Арифметические операции
=10/0
=0/0
=(10/0)/(7/0)
=9954/(7/0)
=SQRT(-1)
бесконечность
бесконечность
NaN
0
#ERROR
Обработка ошибок
 =IFERROR(Sales[Quantity]*Sales[Price],BLANK())
 =IFERROR(SQRT(Test[Omega]),BLANK())
 =IF(ISNUMBER(Sales[Price]),
Sales[Quantity]*Sales[Price],BLANC())
 =IF(Test[Omega]>=0,SQRT(Test[Omega]),BLANK())
Группы функций
Дата и время
DATE
DATEVALUE
DAY
EDATE
EOMONTH
HOUR
MINUTE
MONTH
NOW
SECOND
TIME
TIMEVALUE
TODAY
WEEKDAY
WEEKNUM
YEAR
YEARFRAC
Информационные Математические
ISBLANK
ABS
ISERROR
CEILING, ISO.CEILING
ISLOGICAL
EXP
ISNONTEXT
FACT
ISNUMBER
FLOOR
ISTEXT
INT
LN
LOG
Logical
AND
LOG10
IF
MOD
IFERROR
MROUND
NOT
PI
OR
POWER
FALSE
QUOTIENT
TRUE
RAND
RANDBETWEEN
ROUND
ROUNDDOWN
ROUNDUP
SIGN
SQRT
SUM
SUMSQ
TRUNC
Статистические
AVERAGE
AVERAGEA
COUNT
COUNTA
COUNTBLANK
MAX
MAXA
MIN
MINA
Строковые
CHAR
CODE
CONCATENATE
EXACT
FIND
FIXED
LEFT
LEN
LOWER
MID
REPLACE
REPT
RIGHT
SEARCH
SUBSTITUTE
TRIM
UPPER
VALUE
Демонстрация
Пример использования DAX
Контекст в формулах DAX
 Контекст строки
=[Freight] + [Tax]
=[Freight] + RELATED('Region'[TaxRate])
 Контекст запроса
=SUM('Sales'[Profit])
 Контекст фильтра
=MAXX(FILTER(Sales,[ProdKey]=EARLIER(
[ProdKey])),Sales[OrderQty])
Контекст в формулах DAX
Некоторые сценарии
Рабочие дни
Есть:
 Таблица заказов
 Таблица праздников
Нужно:
 Сколько рабочих дней прошло с момента заказа до
поставки товара?
Ещё немного о времени
 Группируем по времени
 за месяц
 за квартал
 за год
 За аналогичный период…
Без вычисления
 Проценты
 Суммирование
 Среднее арифметическое
Процентное отношение
𝑉𝑎𝑙𝑢𝑒
𝑃𝑒𝑟𝑐𝑒𝑛𝑡𝑎𝑔𝑒 =
𝑇𝑜𝑡𝑎𝑙
(посмотрим два варианта)
ABC-анализ
Классификация ресурсов по степени важности:
 A – наиболее ценные
 B – промежуточные
 C – наименее ценные
Подсчёт количеств оригинальных
Заказчиков/Продуктов
(distinct count)
= COUNTROWS(DISTINCT(Orders[CustomerID]))
Организация между таблицами
отношений многие-ко-многим
Связи в таблицах а-ля 1С
Демонстрация
Сценарии использования DAX
Ресурсы




http://powerpivot.com
http://powerpivotfaq.com
http://blogs.msdn.com/powerpivot
http://msdn.microsoft.com/enus/library/ee634556(SQL.105).aspx
 http://www.gotdotnet.ru/blogs/korshikov/tag
s/?powerpivot
 http://sqlbi.ineta.ru
 http://www.microsoftbi.ru
Ресурсы
Обратная связь
Ваше мнение очень важно для нас. Пожалуйста, оцените
доклад, заполните анкету и сдайте ее при выходе из зала
Спасибо!
Вопросы
 Андрей Коршиков
 Компания Портал-Юг, Краснодар, Россия
 korshikov@portal-ug.ru, korshikov@mail.ru
 http://sqlbi.ineta.ru и www.gotdotnet.ru
 Вы сможете задать вопросы докладчику в зоне «Спроси
эксперта» в течение часа после завершения этого
доклада
Скачать