Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Подробное руководство по DAX: бизнес-аналитика с Microsoft Power Bl, SQLServer Analysis Services и Excel

Покупка
Артикул: 751479.01.99
Доступ онлайн
1 999 ₽
В корзину
Расширенная и дополненная с учетом современных требований и техник, эта книга представляет собой наиболее полное руководство по языку DAX, применяемому в области бизнес-аналитики, моделирования данных и анализа. Эксперты Microsoft BI Марко Руссо и Альберто Феррари излагают как основы, так и отдельные нюансы работы с DAX: от простых табличных функций до продвинутых техник программирования и оптимизации моделей. Вы узнаете, что происходит под капотом движка DAX при запуске выражений; полученные знания пригодятся при написании быстрого и надежного кода. В книге используются примеры, которые можно запустить в бесплатной версии Power BI Desktop и разобраться во всех тонкостях синтаксиса создания переменных (VAR) в Power BI, Excel или Analysis Services. Издание предназначено для опытных пользователей и профессионалов в сфере бизнес-аналитики, использующих в своей работе DAX и аналитические инструменты от Microsoft.
Руссо, М. Подробное руководство по DAX : бизнес-аналитика с Microsoft Power BI, SOL Server Analysis Services и Excel / Марко Руссо, Альберто Феррари ; пер. с англ. А. Ю. Гинько. - Москва : ДМК Пресс, 2021. - 776 с. - ISBN 978-5-97060-859-3. - Текст : электронный. - URL: https://znanium.com/catalog/product/1225370 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Марко Руссо и Альберто Феррари

Подробное руководство по DAX:  
бизнес-аналитика с Microsoft Power BI, 
SQL Server Analysis Services и Excel

The Definitive Guide to DAX: 
Business intelligence 
with Microsoft Power BI, 
SQL Server Analysis Services, 
and Excel

Marco Russo and Alberto Ferrari

Подробное руководство 
по DAX: бизнес-аналитика 
с Microsoft Power BI, 
SQL Server Analysis Services 
и Excel

Марко Руссо и Альберто Феррари

Москва, 2021

УДК 004.42DAX
ББК 32.97
Р89

Руссо М., Феррари А.
Р89 
Подробное руководство по DAX: бизнес-аналитика с Microsoft Power BI, 
SQL Server Analysis Services и Excel / пер. с англ. А. Ю. Гинько. – М.: ДМК 
Пресс, 2021. – 776 с.: ил. 

ISBN 978-5-97060-859-3

Расширенная и дополненная с учетом современных требований и техник, эта 
книга представляет собой наиболее полное руководство по языку DAX, применяемому в области бизнес-аналитики, моделирования данных и анализа. Эксперты 
Microsoft BI Марко Руссо и Альберто Феррари излагают как основы, так и отдельные 
нюансы работы с DAX: от простых табличных функций до продвинутых техник 
программирования и оптимизации моделей. Вы узнаете, что происходит под 
капотом движка DAX при запуске выражений; полученные знания пригодятся 
при написании быстрого и надежного кода.
В книге используются примеры, которые можно запустить в бесплатной версии 
Power BI Desktop и разобраться во всех тонкостях синтаксиса создания переменных 
(VAR) в Power BI, Excel или Analysis Services.
Издание предназначено для опытных пользователей и профессионалов в сфере 
бизнес-аналитики, использующих в своей работе DAX и аналитические инструменты от Microsoft.

УДК 004.42DAX
ББК 32.97

Authorized Translation from the English language edition, entitled DEFINITIVE GUIDE TO 
DAX, THE: BUSINESS INTELLIGENCE FOR MICROSOFT POWER BI, SQL SERVER ANALYSIS 
SERVICES, AND EXCEL, 2nd Edition by MARCO RUSSO; ALBERTO FERRARI, published by Pearson 
Education, Inc, publishing as Microsoft Press. Russian-language edition copyright © 2021 by DMK 
Press. All rights reserved. 
No part of this book may be reproduced or transmitted in any form or by any means, electronic 
or mechanical, including photocopying, recording or by any information storage retrieval system, 
without permission from Pearson Education, Inc. 
Electronic RUSSIAN language edition publiched by DMK PRESS PUBLISHING LTD. Copyright 
© 2021.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.

ISBN 978-1-5093-0697-8 (англ.) 
 Copyright © 2020 by Alberto Ferrari 
and Marco Russo
ISBN 978-5-97060-859-3 (рус.) 
 © Оформление, издание, перевод, 
ДМК Пресс, 2021

Содержание 5

Содержание

Рецензия ..................................................................................................... 14
Об авторах .................................................................................................. 15
От команды разработчиков.................................................................... 16
Благодарности ........................................................................................... 17
От издательства ......................................................................................... 19
Предисловие ко второму изданию ....................................................... 20
Предисловие к первому изданию ......................................................... 21

Глава 1 
Что такое DAX? .................................................................................... 27
Введение в модель данных ..................................................................... 27
Введение в направление связи ........................................................ 29
DAX для пользователей Excel ................................................................. 31
Ячейки против таблиц ....................................................................... 32
Excel и DAX: два функциональных языка ..................................... 34
Итерационные функции в DAX........................................................ 34
DAX требует изучения теории .......................................................... 35
DAX для разработчиков SQL ................................................................... 35
Работа со связями ............................................................................... 35
DAX как функциональный язык ...................................................... 36
DAX как язык программирования и язык запросов ................... 37
Подзапросы и условия в DAX и SQL ................................................ 37
DAX для разработчиков MDX ................................................................. 38
Многомерность против табличности ............................................. 39
DAX как язык программирования и язык запросов ................... 39
Иерархии ............................................................................................... 40
Вычисления на конечном уровне.................................................... 41
DAX для пользователей Power BI ........................................................... 41

Глава 2 
Знакомство с DAX .............................................................................. 43
Введение в вычисления DAX .................................................................. 43
Типы данных DAX ............................................................................... 45
Операторы DAX ................................................................................... 48
Конструкторы таблиц ......................................................................... 49
Условные операторы .......................................................................... 50
Введение в вычисляемые столбцы и меры......................................... 51
Вычисляемые столбцы ....................................................................... 51
Меры ....................................................................................................... 52
Введение в переменные .......................................................................... 56
Обработка ошибок в выражениях DAX ................................................ 57
Ошибки преобразования .................................................................. 57
Ошибки арифметических операций .............................................. 58

Содержание

Перехват ошибок ................................................................................. 61
Генерирование ошибок ..................................................................... 64
Форматирование кода на DAX ............................................................... 65
Введение в агрегаторы и итераторы .................................................... 68
Использование распространенных функций DAX ........................... 71
Функции агрегирования .................................................................... 71
Логические функции .......................................................................... 73
Информационные функции ............................................................. 74
Математические функции ................................................................ 75
Тригонометрические функции ........................................................ 76
Текстовые функции ............................................................................ 76
Функции преобразования ................................................................. 77
Функции для работы с датой и временем ..................................... 78
Функции отношений .......................................................................... 79
Заключение ................................................................................................ 81

Глава 3 
Использование основных табличных функций ............. 83
Введение в табличные функции ........................................................... 83
Введение в синтаксис EVALUATE .......................................................... 86
Введение в функцию FILTER .................................................................. 87
Введение в функции ALL и ALLEXCEPT ............................................... 90
Введение в функции VALUES, DISTINCT и пустые строки .............. 94
Использование таблиц в качестве скалярных значений ...............100
Введение в функцию ALLSELECTED ....................................................102
Заключение ...............................................................................................104

Глава 4 
Введение в контексты вычисления .......................................105
Введение в контексты вычисления .....................................................106
Знакомство с контекстом фильтра ................................................106
Знакомство с контекстом строки ...................................................112
Тест на понимание контекстов вычисления .....................................114
Использование функции SUM в вычисляемых столбцах .........114
Использование ссылок на столбцы в мерах ................................115
Использование контекста строки с итераторами ............................116
Вложенные контексты строки в разных таблицах .....................117
Вложенные контексты строки в одной таблице .........................119
Использование функции EARLIER .................................................123
Функции FILTER, ALL и взаимодействие между контекстами .....125
Работа с несколькими таблицами ........................................................128
Контексты строки и связи ................................................................129
Контекст фильтра и связи ................................................................132
Использование функций DISTINCT и SUMMARIZE  
в контекстах фильтра ..............................................................................136
Заключение ...............................................................................................140

Глава 5 
Функции CALCULATE и CALCULATETABLE ..........................142
Введение в функции CALCULATE и CALCULATETABLE ...................142
Создание контекста фильтра ..........................................................143

Содержание 7

Знакомство с функцией CALCULATE .............................................147
Использование функции CALCULATE для расчета  
процентов ............................................................................................152
Введение в функцию KEEPFILTERS ................................................163
Фильтрация по одному столбцу .....................................................167
Фильтрация по сложным условиям ...............................................168
Порядок вычислений в функции CALCULATE .............................172
Преобразование контекста ....................................................................177
Повторение темы контекста строки и контекста фильтра ......177
Введение в преобразование контекста .........................................179
Преобразование контекста в вычисляемых столбцах ..............183
Преобразование контекста в мерах ...............................................186
Циклические зависимости ....................................................................190
Модификаторы функции CALCULATE ................................................194
Модификатор USERELATIONSHIP ..................................................195
Модификатор CROSSFILTER ............................................................198
Модификатор KEEPFILTERS .............................................................199
Использование модификатора ALL в функции CALCULATE ...200
Использование ALL и ALLSELECTED без параметров ...............202
Правила вычисления в функции CALCULATE ...................................203

Глава 6 
Переменные .........................................................................................206
Введение в синтаксис переменных VAR ............................................206
Переменные – это константы ...............................................................208
Области видимости переменных.........................................................209
Использование табличных переменных ............................................212
Отложенное вычисление переменных ...............................................214
Распространенные шаблоны использования переменных ...........215
Заключение ...............................................................................................217

Глава 7 
Работа с итераторами и функцией CALCULATE ..............219
Использование итерационных функций ...........................................219
Кратность итератора .........................................................................220
Использование преобразования контекста в итераторах .......223
Использование функции CONCATENATEX ..................................226
Итераторы, возвращающие таблицы  ...........................................228
Решение распространенных сценариев при помощи  
итераторов .................................................................................................232
Расчет среднего и скользящего среднего .....................................232
Использование функции RANKX ....................................................235
Изменение гранулярности вычисления .......................................243
Заключение ...............................................................................................247

Глава 8 
Логика операций со временем ................................................249
Введение в логику операций со временем ........................................249
Автоматические дата и время в Power BI .....................................250
Автоматические столбцы с датами в Power Pivot для Excel .....251

Содержание

Шаблон таблицы дат в Power Pivot для Excel ...............................251
Создание таблицы дат ............................................................................253
Использование функций CALENDAR и CALENDARAUTO .........254
Работа со множественными датами ..............................................257
Поддержка множественных связей с таблицей дат ...................257
Поддержка нескольких таблиц дат ................................................259
Знакомство с базовыми вычислениями в работе со временем ...260
Пометка календарей как таблиц дат .............................................265
Знакомство с базовыми функциями логики операций  
со временем ..............................................................................................266
Нарастающие итоги с начала года, квартала, месяца ...............268
Сравнение временных интервалов ...............................................270
Сочетание функций логики операций со временем .................273
Расчет разницы по сравнению с предыдущим периодом .......275
Расчет скользящей годовой суммы ...............................................276
Выбор порядка вложенности функций логики операций 
со временем .........................................................................................278
Знакомство с полуаддитивными вычислениями ............................280
Использование функций LASTDATE и LASTNONBLANK ..........282
Работа с остатками на начало и конец периода .........................288
Усовершенствованные методы работы с датой и временем ........292
Вычисления нарастающим итогом ................................................293
Функция DATEADD ............................................................................296
Функции FIRSTDATE, LASTDATE, FIRSTNONBLANK  
и LASTNONBLANK ..............................................................................303
Использование детализации с функциями логики  
операций со временем......................................................................305
Работа с пользовательскими календарями .......................................306
Работа с неделями ..............................................................................307
Пользовательские вычисления нарастающим итогом .............309
Заключение ...............................................................................................312

Глава 9 
Группы вычислений .........................................................................313
Знакомство с группами вычислений ..................................................313
Создание групп вычислений.................................................................316
Знакомство с группами вычислений ..................................................322
Применение элемента вычисления ...............................................325
Очередность применения групп вычислений ............................334
Включение и исключение мер из элементов вычисления .......339
Косвенная рекурсия ................................................................................341
Два основных правила ...........................................................................346
Заключение ...............................................................................................347

Глава 10 Работа с контекстом фильтра ...................................................348
Использование функций HASONEVALUE и SELECTEDVALUE .......349
Использование функций ISFILTERED и ISCROSSFILTERED ...........354
Понимание разницы между функциями VALUES и FILTERS .........357

Содержание 9

Понимание разницы между ALLEXCEPT и ALL/VALUES ................359
Использование функции ALL для предотвращения  
преобразования контекста ....................................................................364
Использование функции ISEMPTY ......................................................366
Привязка данных и функция TREATAS ...............................................368
Фильтры произвольной формы ...........................................................372
Заключение ...............................................................................................379

Глава 11 Работа с иерархиями......................................................................381
Вычисление процентов внутри иерархии .........................................381
Работа с иерархиями типа родитель/потомок .................................386
Заключение ...............................................................................................398

Глава 12 Работа с таблицами .........................................................................399
Функция CALCULATETABLE ...................................................................399
Манипулирование таблицами ..............................................................402
Функция ADDCOLUMNS ....................................................................402
Функция SUMMARIZE .......................................................................405
Функция CROSSJOIN ..........................................................................409
Функция UNION ..................................................................................411
Функция INTERSECT ..........................................................................415
Функция EXCEPT ................................................................................417
Использование таблиц в качестве фильтров ....................................418
Применение условных конструкций OR ......................................419
Ограничение расчетов постоянными покупателями  
с первого года......................................................................................422
Вычисление новых покупателей ....................................................423
Повторное использование табличных выражений  
при помощи функции DETAILROWS .............................................425
Создание вычисляемых таблиц ............................................................427
Функция SELECTCOLUMNS ..............................................................427
Создание статических таблиц при помощи функции ROW ....429
Создание статических таблиц при помощи функции  
DATATABLE ...........................................................................................430
Функция GENERATESERIES ..............................................................431
Заключение ...............................................................................................432

Глава 13 Создание запросов...........................................................................433
Знакомство с DAX Studio ........................................................................433
Инструкция EVALUATE ...........................................................................434
Введение в синтаксис EVALUATE ...................................................434
Использование VAR внутри DEFINE ..............................................435
Использование MEASURE внутри DEFINE ...................................437
Реализация распространенных шаблонов запросов в DAX ...........438
Использование функции ROW для проверки мер ......................439
Функция SUMMARIZE .......................................................................440
Функция SUMMARIZECOLUMNS .....................................................442

Содержание

Функция TOPN ....................................................................................448
Функции GENERATE и GENERATEALL ...........................................454
Функция ISONORAFTER....................................................................457
Функция ADDMISSINGITEMS ..........................................................460
Функция TOPNSKIP............................................................................461
Функция GROUPBY ............................................................................461
Функции NATURALINNERJOIN и NATURALLEFTOUTERJOIN ...464
Функция SUBSTITUTEWITHINDEX .................................................466
Функция SAMPLE ...............................................................................468
Автоматическая проверка существования данных  
в запросах DAX .........................................................................................469
Заключение ...............................................................................................476

Глава 14 Продвинутые концепции языка DAX ...................................478
Знакомство с расширенными таблицами ..........................................478
Функция RELATED ..............................................................................483
Использование функции RELATED в вычисляемых  
столбцах ................................................................................................484
Разница между фильтрами по таблице и фильтрами  
по столбцу ..................................................................................................486
Использование табличных фильтров в мерах ............................489
Введение в активные связи .............................................................492
Разница между расширением таблиц и фильтрацией ..............495
Преобразование контекста в расширенных таблицах ..............497
Функция ALLSELECTED и неявные контексты фильтра .................498
Знакомство с неявными контекстами фильтра ..........................499
ALLSELECTED возвращает строки из итераций .........................503
Применение функции ALLSELECTED без параметров ..............506
Функции группы ALL* .............................................................................506
Функция ALL ........................................................................................508
Функция ALLEXCEPT .........................................................................509
Функция ALLNOBLANKROW ............................................................509
Функция ALLSELECTED .....................................................................509
Функция ALLCROSSFILTERED ..........................................................509
Использование привязки данных .......................................................510
Заключение ...............................................................................................512

Глава 15 Углубленное изучение связей...................................................514
Реализация вычисляемых физических связей .................................514
Создание связей по нескольким столбцам ..................................514
Реализация связей на основе диапазонов ...................................517
Циклические зависимости в вычисляемых физических  
связях ....................................................................................................520
Реализация виртуальных связей .........................................................523
Распространение фильтров в DAX .................................................524
Распространение фильтра с использованием функции  
TREATAS ................................................................................................526

Доступ онлайн
1 999 ₽
В корзину