Подробное руководство по dax torrent

Название: Подробное руководство по DAX: Бизнес-аналитика с Microsoft Power BI, SQL Server Analysis Services и Excel
Автор: Феррари Альберто, Руссо Марко
Издательство: ДMК
Год: 2021
Формат: PDF
Страниц: 776
Размер: 35,5 Mb
Язык: Русский

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

Подробное руководство по DAX

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

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

Название: Подробное руководство по DAX: Бизнес-аналитика с Microsoft Power BI, SQL Server Analysis Services и Excel
Авторы: Феррари Альберто, Руссо Марко
Год: 2021
Издательство: ДМК
Формат: pdf
Язык: русский
Страниц: 776
Размер: 35,37 Мб

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

формулы, power pivot, dax Чтобы превратить отчеты Power BI и Excel в настоящий инструмент аналитики, вам потребуются DAX-формулы. Используя эти формулы, можно настраивать вычисления в отчетах один раз, а при изменении исходных данных в отчете показатели будут пересчитаны. В Excel для этого потребуется нажать только одну кнопку — «Обновить все».

В этой статье мы собрали самые полезные и часто встречающиеся DAX-формулы. Какие именно формулы выбрали? Все, что доступно пользователю, перечислять смысла нет. А вот несколько формул, которые позволят решить 80% задач аналитики и пригодятся для оформления отчетов, рассмотреть стоит. Например, как показать остатки на конец периода, а не сумму всех остатков, как обычно получается в сводной таблице. Или как посчитать нарастающие итоги.

Кстати, в предыдущей статье «Введение в вычисления DAX» есть примеры других полезных и более простых формул – SUM, MIN, MAX, DIVIDE, BLANK и др. Если вы ещё не читали эту статью, советуем начать с неё.

Для удобства формулы в статье разделены на две части.

1. CALCULATE

CALCULATE рассчитывает выражение с учетом измененного контекста фильтра.
Это самая главная формула в языке DAX. Ее название так и переводится – «вычислить», поэтому без такой формулы отчеты точно сделать не получится. Записывается формула просто:

CALCULATE ( <выражение> [, <фильтр1>, <фильтр2> … ] )

выражение вычисляемое выражение
фильтр 1, фильтр 2… логические фильтры, табличные выражения или функции изменения фильтра (модификаторы)

В вычислениях CALCULATE часто используют вместе с функциями фильтрации, например, с FILTER. Или с модификаторами – USERELATIONSHIP, REMOVEFILTERS и др. Что это за функции и как они работают – смотрите дальше.

Пример: посчитать выручку по заказам в указанном регионе.

выручка Юг =
CALCULATE (
SUM('заказы'[выручка]),
'заказы'[регион] = "Юг"
)

CALCULATE пример

2. FILTER

FILTER выбирает данные в таблице или в выражении по заданному критерию. Результат ее вычисления — таблица. Синтаксис функции:

FILTER ( <таблица>, <фильтр> )

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

В мерах FILTER обычно используют вместе с другими формулами, например, вместе с CALCULATE, CONTROWS и др.

Примеры:

1) Найти количество заказов по региону «Юг».

заказы Юг = COUNTROWS ( FILTER ( 'заказы', 'заказы'[регион] = "Юг" ) )

С помощью формулы FILTER выбираются заказы по региону Юг, а CONTROWS считает, сколько таких заказов было.

FILTER пример

2) Найти сумму убытков по заказам, в которых выручка меньше расходов.

заказы в минус =
CALCULATE (
[выручка][расходы],
FILTER ( 'заказы', 'заказы'[выручка] < 'заказы'[расходы] )
)

FILTER пример

3. ALL

В отличие от FILTER, которая ограничивает выборку данных, функция ALL делает наоборот. ALL снимает примененные к таблице или столбцу фильтры, и позволяет создавать вычисления по всем строкам таблицы или по всем значениям столбца. Записывается формула просто:

ALL ( <таблица> или <столбец> [, <столбец1> ,<столбец2>, … ] )

таблица таблица, в которой нужно очистить фильтры (не может быть выражением)
столбец столбец, в котором нужно очистить фильтры (не может быть выражением)

Так же как FILTER, функция ALL используется с другими формулами, например с CALCULATE. Если вам нужно убрать фильтры не со всей таблицы полностью, а только с некоторых столбцов, можно воспользоваться похожей формулой – ALLEXCEPT. С помощью ALL можно делать различные вычисления – найти долю от общего объема продаж, соотношения или проценты и т.д.

Пример: найти долю выручки от продаж товара.

Доля, % =
DIVIDE (
[выручка],
CALCULATE ( [выручка], ALL( 'спТовары' ) ) )

ALL пример

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

ALLSELECTED примерПоведение функции ALL можно проверить с помощью среза по товарам. Если в срезе поставить галочки рядом с некоторыми товарами, то видно, что сумма процентов в итоговой строке таблицы не равна 100%. Доля товара считается без учета того, выбраны или нет товары в срезе. Если нужно посчитать долю только с учетом выбранных товаров – так, чтобы итоговая сумма процентов в таблице всегда была равна 100%, вместо ALL используйте ALLSELECTED.

4. SUMX

Для чего нужна формула SUMX? Она позволяет суммировать значения выражения по строкам. Синтаксис формулы:

SUMX ( <таблица>, <выражение> )

таблица таблица (или выражение, определяющее таблицу)
выражение выражение для каждой строки таблицы

Если вам нужно просто посчитать сумму по столбцу, используйте формулу SUM. Если нужно рассчитать построчно показатели в таблице и затем сложить их, вам потребуется SUMX.

Самый простой пример вычислений с SUMX – расчет суммы продаж по формуле = количество х цена:

продажи =
SUMX (
'продажи',
'продажи'[количество] * 'продажи'[цена] )

SUMX пример

В таблице в каждой строке количество умножается на цену, а полученные результаты суммируются. В данном случае формула SUMX сработала очень похоже на «обычную» формулу Excel – СУММПРОИЗВ.

5. CALENDARAUTO

Таблица, без которой точно не обойдется ни один отчет в Power BI и Power Pivot – это таблица дат, Календарь. С помощью такой таблицы можно создавать аналитику по периодам и делать вычисления, связанные с датами.

Календарь можно создать несколькими способами, самый простой из которых в Power BI –  сделать вычисляемую таблицу с помощью формулы CALENDARAUTO. Эта формула автоматически найдет первую и последнюю дату и создаст справочник.

Создается календарь (таблица дат) в Power BI просто:

Календарь = CALENDARAUTO()

Также таблицу дат в Power BI можно создать с помощью CALENDAR, но в этой формуле потребуется указать границы – наибольшую и наименьшую дату.

А вот в Power Pivot в Excel таких формул для календаря нет. Так же, как нет возможности создавать вычисляемые таблицы. Поэтому календарь в Power Pivot можно сделать с помощью специальной кнопки «Таблица дат» (для этого даже предусмотрена специальная кнопка) или с помощью загрузки из Power Query.

6. FORMAT

Для создания «правильной» таблицы дат в Power BI вам пригодится формула FORMAT. Функция FORMAT преобразует значение в текст в указанном формате. Это аналог формулы ТЕКСТ в «обычном» Excel.
Синтаксис формулы:

FORMAT ( <значение>, <формат строки> )

значение значение (или выражение, результат которого — единственное значение)
формат строки шаблон форматирования

Пример: определить дни недели для дат.

День недели = FORMAT ( [Дата], "DDD" )

С помощью формулы FORMAT и шаблона "DDD" в созданном вычисляемом столбце записаны даты в виде сокращенных названий дней недели – пн, вт, ср и т.д. Кроме шаблона форматирования "DDD" в формулу можно добавить другие форматы, например, "DDDD" для отображения дней недели полностью (понедельник, вторник и т. д.)

FORMAT пример

Примеры форматов строк для дат, записываются в кавычках:

D день месяца в виде числа без ведущих нулей (например, 1)
DD день месяца в виде числа с ведущими нулями (например, 01)
DDD сокращенное название дня недели (пн, вт, ср, …)
DDDD полное название дня недели (например, воскресенье)
M месяц в виде числа без ведущих нулей (например, январь — число 1)
MM месяц в виде числа с ведущими нулями (например, 01)
MMM сокращенное название месяца (янв)
MMMM полное название месяца (январь)
YY год в виде двух цифр
YYYY год в формате из четырех цифр

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

7. DATEADD

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

DATEADD ( <даты>, <количество интервалов>, <вид интервала> )

даты столбец с датами
количество интервалов число интервалов, на которое нужно сдвинуть исходные даты
вид интервала вид интервала, который может быть следующим: YEAR, QUARTER, MONTH, DAY

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

Пример: рассчитать значение показателя за прошлый год.

продажи пр.год =
CALCULATE (
[продажи],
DATEADD ( 'Календарь'[Date], -1, YEAR )
)

DATEADD пример

8. TOTALYTD

Формула TOTALYTD вычисляет значение выражения с начала года в текущем контексте. То есть с помощью TOTALYTD можно посчитать нарастающий итог по показателю за год. Чтобы рассчитать нарастающие итоги по кварталам или месяцам, вам потребуются похожие формулы: TOTALQTD для квартала и TOTALMTD для месяца.
Записывается формула просто:

TOTALYTD ( <выражение>, <даты> [, <фильтр> ] [, <конец года>] )
TOTALQTD ( <выражение>, <даты> [, <фильтр> ] )
TOTALMTD ( <выражение>, <даты> [, <фильтр> ] )

выражение выражение, рассчитывающее скалярное значение
даты столбец дат (или выражение, его определяющее)
фильтр (необязательно) выражение, задающее фильтр
конец года (необязательно) дата окончания года, вводится в кавычках, по умолчанию 31 декабря

Пример. Посчитать выручку нарастающим итогом за квартал и год.

выручка QTD квартал = TOTALQTD ( [выручка], 'Календарь'[Date] )
выручка YTD год = TOTALYTD ( [выручка], 'Календарь'[Date] )

TOTALYTD пример

9. LASTNONBLANK

LASTNONBLANK определяет последнее непустое значение в столбце. Чтобы найти первое непустое значение в столбце – FIRSTNONBLANK. Синтаксис формул:

FIRSTNONBLANK ( <столбец>, <выражение> )
LASTNONBLANK ( <столбец>, <выражение> )

столбец столбец (или выражение, возвращающее один столбец)
выражение выражение, в котором проверяется наличие пустых значений в указанном столбце

С помощью этих функций, например, можно посчитать остатки на начало и конец периода. Формула LASTNONBLANK подходит для вычислений, когда остатки не указаны на последний день периода.

Пример. Найти остатки ТМЦ на конец периода.

Остаток =
CALCULATE (
SUM ( 'данные'[остаток ТМЦ] ),
LASTNONBLANK (
'Календарь'[Date],
CALCULATE ( SUM ('данные'[Дата]) )
)
)

Остатки LASTNONBLANK пример

10. CLOSINGBALANCEYEAR

CLOSINGBALANCEYEAR вычисляет значения выражения для последней даты года. Аналогично расчет для последней даты квартала – CLOSINGBALANCEQUARTER, для месяца — CLOSINGBALANCEMONTH. Так можно рассчитать остатки товаров или денег на счете на конец периода.

CLOSINGBALANCEYEAR ( <выражение>, <даты> [, <фильтр> ][, <конец года> ] )
CLOSINGBALANCEQUARTER ( <выражение>, <даты> [, <фильтр> ] )
CLOSINGBALANCEMONTH ( <выражение>, <даты> [, <фильтр> ] )

выражение выражение, рассчитывающее скалярное значение
даты столбец дат (или выражение, его определяющее)
фильтр (необязательно) выражение, задающее фильтр
конец года (необязательно) дата окончания года, вводится в кавычках, по умолчанию 31 декабря

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

Пример: найти сумму значений на последнюю дату месяца.

сумма к.п. = CLOSINGBALANCEMONTH SUM ( 'данные'[значение] ), 'Календарь'[Date] )

CLOSINGBALANCEMONTH пример

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

11. VALUES

Функция VALUES возвращает значения столбца или таблицы:

  • если указать столбец, то VALUES вернет список его уникальных значений;
  • если как аргумент указать таблицу, то формула вернет список всех строк таблицы с сохранением повторений.

При вычислениях с VALUES примененные фильтры сохраняются и возвращаются видимые в текущем контексте значения, а пустые строки учитываются в расчетах. Обычно VALUES используется как промежуточная формула внутри других вычислений. Записывается формула просто:

VALUES ( <таблица или столбец> )

таблица или столбец cтолбец, из которого должны возвращаться уникальные значения, или таблица, из которой должны возвращаться строки

Пример: посчитать, сколько менеджеров работало в каждом городе.

менеджеры = COUNTROWS ( VALUES ( 'данные'[менеджер] ) )

Для сравнения в таблицу добавлен столбец с похожими вычислениями с помощью формулы ALL:

менеджеры = COUNTROWS ( ALL ( 'данные'[менеджер] ) )

пример VALUES

Формула ALL игнорирует фильтры, поэтому в строках одинаковые цифры. Формула VALUES сохраняет фильтры и выдает правильный результат.

12. KEEPFILTERS

KEEPFILTERS – это еще одна полезная формула, которую используют вместе с CALCULATE и CALCULATETABLE. При вычислениях формула CALCULATE перезаписывает существующие фильтры в столбцах отчета. А если перезапись фильтров не требуется, и к действующим нужно просто добавить новые фильтры, это можно сделать с помощью KEEPFILTERS. Формула записывается так:

KEEPFILTERS ( <выражение> )

выражение любое выражение

Пример: посчитать выручку по определенной группе товаров.

Если записать формулу для вычисления так:

выручка = CALCULATE ( [выручка], 'спТовары'[товар] = "коньки" )

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

выручка = CALCULATE ( [выручка], KEEPFILTERS ( 'спТовары'[товар] = "коньки" ) )

KEEPFILTERS пример

13. REMOVEFILTERS

REMOVEFILTERS очищает фильтры в указанной таблице или столбце.
Синтаксис формулы:

REMOVEFILTERS ( [ <таблица> или <столбец>[, <столбец>[, …] ] ] )

таблица таблица, в которой нужно очистить фильтры
столбец столбец, в котором нужно очистить фильтры

С помощью этой функции нельзя получить «промежуточную» таблицу, а можно только убрать фильтры. Формула REMOVEFILTERS применяется в вычислениях с CALCULATE. Например, с ее помощью можно посчитать долю (%) продаж товара от общей суммы продаж, как в примере с ALL.

Пример: найти долю от продаж товара по отношению к общей сумме выручки.

Доля, % =
DIVIDE (
[выручка],
CALCULATE ( [выручка], REMOVEFILTERS ( 'товары' )
)

REMOVEFILTERS пример

Что лучше использовать для вычислений в этом примере – ALL или REMOVEFILTERS? Если в приложении доступна формула REMOVEFILTERS, и в формуле вам просто нужно очистить фильтры, то рекомендуется использовать REMOVEFILTERS.

14. ISFILTERED

Формула ISFILTERED определяет, применен ли прямой фильтр к столбцу. Если такой фильтр есть, то функция возвращает TRUE. С помощью этой формулы можно, например, управлять отображением итогов.
Синтаксис формулы:

столбец имя столбца (не может быть выражением)

Пример: посчитать среднюю цену по товарам, а по группам цену не показывать.

ср цена =
IF (
ISFILTERED ( 'спТовары'[товар] ),
DIVIDE( [выручка], [количество] ),
BLANK()
)

ISFILTERED пример

15. SELECTEDVALUE

Функция SELECTEDVALUE возвращает отфильтрованное значение. Если столбец отфильтрован по одному отдельному значению, то его можно получить с помощью SELECTEDVALUE, в противном случае функция возвращает «альтернативный результат».
С помощью этой формулы можно создавать комментарии или делать вычисления, которые зависят от выделенного (отфильтрованного) значения.
Записывается формула просто:

SELECTEDVALUE ( <столбец> [, <альтернативный результат> ] )

столбец имя столбца (не может быть выражением)
альтернативный результат (необязательно) значение, если столбец не отфильтрован по одному значению, по умолчанию BLANK()

Пример: заголовок для одного выбранного года.

Заголовок = "Продажи за " & SELECTEDVALUE ('Календарь'[год] )

SELECTEDVALUE пример

Более интересные комментарии и заголовки можно создавать с помощью сочетаний SELECTEDVALUE и HASONEVALUE.

16. HASONEVALUE

HASONEVALUE проверяет, содержит ли контекст столбца только одно значение (или контекст должен быть отфильтрован до одного значения). Если это верно, то функция возвращает значение TRUE.
Эту функцию удобно применять, если вам нужно сделать расчет только по единичным значениям. А также для написания комментариев и пояснений.
Синтаксис формулы:

HASONEVALUE ( <столбец> )

столбец имя столбца (не может быть выражением)

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

комментарий =
IF (
HASONEVALUE ( 'спГород'[город] ),
"Продажи " & SELECTEDVALUE ( 'спГород'[город] )
& ": " & FORMAT ( SUM ( 'данные'[выручка] ), "#,##0" ),
"Продажи: " & FORMAT ( SUM ( 'данные'[выручка] ), "#,##0" )
)

HASONEVALUE пример

17. RELATED

Функция RELATED ищет и возвращает связанное значение из другой таблицы. Эта формула немного похожа на ВПР в «обычном» Excel. RELATED относится к функциям связи – функции этой категории используют связи между таблицами и управляют ими. Чтобы создать вычисления с помощью RELATED, между таблицами должна существовать активная связь «один ко многим».
Записывается функция просто:

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

Как использовать RELATED? В сочетании с другими формулами, например с SUMX.

Пример: посчитать план выручки без НДС. Данные о ставках НДС есть в отдельной таблице.

сумма без НДС =
SUMX (
'данные',
'данные'[значение] / (1 + RELATED ( 'спТовары'[НДС] ) )
)

RELATED пример

В случае, если между таблицами нет связи, вы можете воспользоваться функцией LOOKUPVALUE Эта функция так же, как RELATED, ищет и возвращает связанное значение из другой таблицы. Отличие в том, что для LOOKUPVALUE связь между таблицами создавать не требуется, а поиск можно выполнять по нескольким столбцам. Несмотря на то, что связь между таблицами не нужна, LOOKUPVALUE, как и RELATED, все-таки требует, чтобы искомые строки и их сочетания в просматриваемых столбцах были уникальными. Если это условие не выполняется, LOOKUPVALUE выдаст сообщение об ошибке.

18. USERELATIONSHIP

USERELATIONSHIP активирует связь в вычислении в соответствии существующей связью между двумя столбцами. Сама по себе отдельно эта функция не используется, ее можно применять в формулах CALCULATE, TOTALYTD и др. Функция USERELATIONSHIP, как и RELATED, относится к функциям связи. Но в отличие от RELATED, для USERELATIONSHIP вовсе не требуется, чтобы существующие связи между таблицами были активными.
Записывается формула просто:

USERELATIONSHIP ( <столбец1>, <столбец2> )

столбец1 имя столбца, который представляет собой одну сторону связи (не может быть выражением)
столбец2 имя столбца с другой стороны связи (не может быть выражением)

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

19. ADDCOLUMNS

ADDCOLUMNS добавляет вычисляемые столбцы к таблице. На выходе рассчитывается таблица с исходными и добавленными столбцами.
Синтаксис формулы:

ADDCOLUMNS ( <таблица>, <столбец>, <выражение>[, <столбец2>, < выражение2>]…)

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

С помощью формулы ADDCOLUMNS можно создавать вычисления на основе существующих таблиц, например, сумму показателей:

SUMX ADDCOLUMNS ( 'данные', "показатель", <выражение>), [показатель])

Здесь функция ADDCOLUMNS создает новый столбец в таблице с названием «показатель», а SUMX суммирует его значения.

20. SUMMARIZE

SUMMARIZE – одна из очень часто используемых DAX-формул. Она возвращает таблицу для запрошенных значений, объединенных в наборы групп. Обычно в расчетах эта формула используется для создания комбинации значений вместо таблицы со всеми данными.
Синтаксис формулы:

SUMMARIZE ( <таблица>, <столбец группировки> [, <столбец группировки> ] … [, <имя>, <выражение> ] … )

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

Если в «промежуточную» таблицу добавляется новый столбец, то это рекомендуется делать с помощью ADDCOLUMNS: сначала создается сгруппированная таблица с помощью SUMMARIZE, а затем в нее добавляется столбец в ADDCOLUMNS.

 

da Vinci

Пользователь

Сообщений: 9
Регистрация: 18.12.2019

Здравствуйте.

Можете поделиться пожалуйста годными ресурсами для изучения языка M и Дакс или Power BI. Подойдет даже источники на английском языке (уровень интермидиэйт).
Читал книгу автора сайта, Monkey for M. Начал читать книгу «Подробное руководства по DAX» от авторов Марко Руссо и Феррари, но на 60-70 странице уже понял что дальше не понимаю.

 

Ну у итальянцев один из лучших гайдов по DAX. Если прям с нуля-нуля начали DAX учить, то это нормально, что книга не сразу понятна. Собственно сами итальянцы в своей книге и пишут, что новичкам требуется время на осознание всего этого и лучше главу перечитать несколько раз через время… А пока можете еще вот

здесь

подучиться. Довольно понятные уроки с объяснением. Лучше купить курс.

 

azma

Пользователь

Сообщений: 325
Регистрация: 03.12.2017

#3

01.10.2021 12:12:14

Цитата
Vladimir Chebykin написал:
новичкам требуется время

подробное руководство по dax — трудная книг, особенно от 1 до 200 стр, а потом начинаешь что то понимать » немного :) » но советую их книги прочитать.

Изменено: azma01.10.2021 12:12:49

 

da Vinci

Пользователь

Сообщений: 9
Регистрация: 18.12.2019

Даа блин. У итальянцев книга написано как-будто все уже все знают про DAX или все программисты.

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#5

01.10.2021 19:03:36

Цитата
da Vinci написал:
У итальянцев книга написано как-будто все уже все знают про DAX или все программисты.

Такое ощущение, что вы её не читали

Цитата
Who this book is for
If you are a casual user of DAX, then this book is probably not the best choice for you. Many books provide a simple introduction to the tools that implement DAX and to the DAX language itself, starting from the ground up and reaching a basic level of DAX programming. We know this very well, because we wrote some of those books, too!
Цитата
Для кого предназначена эта книга?
Если вы лишь время от времени используете DAX, эта книга, скорее всего, не для вас. Есть множество книг с простым введением в инструменты, использующие DAX, и в сам язык – начиная с самых основ и заканчивая базовыми понятиями программирования. Мы хорошо осведомлены об этом, поскольку и сами писали такие книги.

Вывод — начните с книг, содержащих базовые понятия о структурах данных, хотя бы

отсюда

(не на правах рекламы ;) )

 

БМВ

Модератор

Сообщений: 21423
Регистрация: 28.12.2016

Excel 2013, 2016

Андрей, перевод не совсем корректный по смыслу. Прямой — это случайный пользователь ( xсто может быть трактовано как от случая к случаю и это близко к время от времени).
Я думаю что подразумевается низкий уровень знаний, а не частота. Возможно это проблема перевода с итальянского. Интересно что там в оригинале было.

По вопросам из тем форума, личку не читаю.

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#7

01.10.2021 21:52:38

Цитата
БМВ написал:
Интересно что там в оригинале было.

Ну, полагаю — был тот самый итальянский английский. Там далее:

Цитата
DAX для разработчиков SQL
DAX для разработчиков MDX

По моему скромному мнению, книга для них и написана, а не для

Цитата
DAX для пользователей Excel

Поскольку сразу

Цитата
DAX требует изучения теории
Будем откровенны: DAX является не единственным языком программирования, для использования которого вам понадобится обширная теоретическая база. Разница лишь в подходе. Признайтесь, вы ведь частенько ищете в интернете сложные формулы и шаблоны, которые помогут вам в решении вашего собственного сценария. И шансы на то, что вы найдете подходящую формулу для Excel, достаточно высоки – вам останется лишь адаптировать ее под свои нужды.
Но в DAX дела обстоят иначе. Вам придется досконально изучить этот язык и понять

Так что стоны ТС не обоснованы — итальянцы честно предупреждали :)

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

#8

03.10.2021 15:50:04

Цитата
da Vinci написал:
Можете поделиться пожалуйста годными ресурсами для изучения языка M и Дакс или Power BI

Вот, специально для вас собирал.

Вот горшок пустой, он предмет простой…

 

da Vinci

Пользователь

Сообщений: 9
Регистрация: 18.12.2019

#9

04.10.2021 09:04:25

Спасибо всем. ;)  

Изменено: da Vinci04.10.2021 09:04:42

Укажите регион, чтобы мы точнее рассчитали условия доставки

Начните вводить название города, страны, индекс, а мы подскажем

Например: 
Москва,
Санкт-Петербург,
Новосибирск,
Екатеринбург,
Нижний Новгород,
Краснодар,
Челябинск,
Кемерово,
Тюмень,
Красноярск,
Казань,
Пермь,
Ростов-на-Дону,
Самара,
Омск

  • #1

Автор: Феррари А., Руссо М..
Дата выхода: август 2020 года
ISBN: 978-5-97060-859-3
Формат: pdf от издателя

Расширенная и дополненная с учетом современных требований и техник, эта книга представляет собой наиболее полное руководство по языку DAX, применяемому в области бизнес-аналитики, моделирования данных и анализа. Эксперты Microsoft BI Марко Руссо и Альберто Феррари излагают как основы, так и отдельные нюансы работы с DAX: от простых табличных функций до продвинутых техник програ…

[ДМК] Подробное руководство по DAX [Марко Руссо, Альберто Феррари]

Этот курс появится в скором времени на форуме PIRAT.BIZ Проверьте по поиску форума, возможно данный курс уже слит.

Привет, друзья! Спешу рассказать вам о книгах в моем переводе по Power BI и DAX, поделиться фрагментом из книги и предложить промо-код от переводчика на их покупку со скидкой 20%!

Литература по Power BIНо сначала хотелось бы представиться – меня зовут Александр Гинько, и я перевожу книги по программированию и бизнес-аналитике для издательства «ДМК Пресс». Книги, которыми я хочу поделиться с вами сегодня, – это «АНАЛИЗ ДАННЫХ ПРИ ПОМОЩИ MICROSOFT POWER BI И POWER PIVOT ДЛЯ EXCEL» и «ПОДРОБНОЕ РУКОВОДСТВО ПО DAX» от знаменитых итальянских авторов Марко Руссо и Альберто Феррари. Обе книги за короткое время (на русском они вышли только в 2020 году) уже успели стать бестселлерами, а последняя является единственным на данный момент наиболее полным руководством по языку DAX, без которого не обходится ни один сколько-нибудь серьезный проект на базе Power BI или Power Pivot.

Литература по Power BI Литература по Power BI

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

В руководстве вы познакомитесь не только с базовыми аспектами языка DAX, такими как типы данных, операторы, вычисляемые столбцы и таблицы, меры, переменные, агрегаторы и итераторы, функции, контексты вычисления, модификаторы, группы и элементы вычислений, контексты фильтра, иерархии, но и погрузитесь в самые недра движка DAX – святая святых, к которой относятся вычисляемые и виртуальные связи, двунаправленная кросс-фильтрация, управление гранулярностями, исправление неоднозначностей в связях. На закуску вам будет представлена информация повышенной сложности – всё о внутренней архитектуре движков DAX, выборе аппаратного обеспечения, оптимизации движка VertiPaq и анализе плана запросов при помощи DAX Studio.

Что касается книги «АНАЛИЗ ДАННЫХ ПРИ ПОМОЩИ MICROSOFT POWER BI И POWER PIVOT ДЛЯ EXCEL», то, читая ее, вы погрузитесь в мир моделирования данных, узнаете о различных схемах, научитесь использовать модель с главной и подчиненной таблицами, множественными таблицами фактов, разберетесь в подробностях, как работать с датой и временем, историческими атрибутами, снимками, связями, разными уровнями гранулярности, сегментацией данных. Также вы узнаете, как работать с разными валютами.

Кроме того, хотелось бы анонсировать выпуск новой книги от тех же авторов – «Шаблоны DAX» (DAX Patterns), перевод которой я заканчиваю. Выйти она должна уже до конца февраля этого года. В этой книге будут представлены все наиболее популярные шаблоны, с которыми приходится сталкиваться разработчикам на DAX. Это и вычисления, связанные с логикой операций со временем, причем на основе месяцев, кварталов, недель и пользовательских календарей, и полуаддитивные вычисления, и расчет показателей нарастающим итогом, и таблицы параметров, и статическая и динамическая сегментация, ABC-анализ, ранжирование, иерархии и многое другое. В моей ленте на фейсбуке обязательно будет новость о выходе этой книги с обязательным промо-кодом на скидку от переводчика!

Литература по Power BI

Обе книги можно приобрести на сайте издательства: ПОДРОБНОЕ РУКОВОДСТВО ПО DAX, АНАЛИЗ ДАННЫХ ПРИ ПОМОЩИ MICROSOFT POWER BI И POWER PIVOT ДЛЯ EXCEL. Но главное, что вы можете приобрести их с существенной скидкой в 20%, воспользовавшись моим персональным промокодом от переводчика: Ginko_Power BI_DAX.

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

Тест на понимание контекстов вычисления

Перед тем как приступить к изучению более сложных аспектов контекстов вычисления, полезно будет пройти небольшую проверку на уже полученные знания на паре примеров. Пожалуйста, не смотрите ответ сразу, остановитесь и попытайтесь ответить на поставленный вопрос самостоятельно и только после этого сверьтесь с описанием. В качестве подсказки можем напомнить вам нашу дежурную мантру: «Контекст фильтра фильтрует, контекст строки осуществляет итерации по таблице. И наоборот – контекст строки НЕ фильтрует, а контекст фильтра НЕ осуществляет итерации по таблице».

Использование функции SUM в вычисляемых столбцах

В первом примере мы будем использовать агрегирующую функцию внутри вычисляемого столбца. Каким будет результат вычисления следующей формулы, написанной в вычисляемом столбце таблицы Sales?

Sales[SumOfSalesQuantity] = SUM ( Sales[Quantity] ) 

Помните, что внутри движок DAX преобразует эту формулу в выражение с итератором следующего вида:

Sales[SumOfSalesQuantity] = SUMX ( Sales; Sales[Quantity] ) 

Поскольку здесь мы имеем дело с вычисляемым столбцом, его значение будет рассчитываться построчно в рамках контекста строки. Какой вывод вы ожидаете увидеть в итоге? На выбор предлагаем три ответа:

  1. Значение столбца Quantity для текущей строки, свое для каждой записи.
  2. Итог по столбцу Quantity, одинаковый для всех строк.
  3. Ошибку, поскольку мы не можем использовать функцию SUM в вычисляемом столбце.

Остановитесь и подумайте, как бы вы ответили на этот вопрос.

Вопрос вполне правомочный. Ранее мы говорили, что подобную формулу можно прочитать так: «Получить сумму по количеству для всех строк, видимых в текущем контексте фильтра». А поскольку код выполняется для вычисляемого столбца, DAX будет проводить вычисление построчно в рамках контекста строки. В свою очередь, контекст строки не фильтрует таблицу. Единственный контекст, который способен это делать, – контекст фильтра. Все это ставит перед нами новый вопрос: а каким будет контекст фильтра в момент вычисления этого выражения? Ответ достаточно прост: контекст фильтра будет пустым. Вообще, контекст фильтра создается при помощи визуальных элементов отчета и дополнительных условий в запросе, а значения в вычисляемом столбце рассчитываются в момент обновления данных, когда никакие фильтры еще не наложены. Таким образом, функция SUM применяется ко всей таблице Sales, агрегируя значения столбца Sales[Quantity] для всех записей таблицы Sales.

Так что верным будет второй ответ. В вычисляемом столбце будет одинаковое значение для всех строк, и оно будет отражать общий итог по столбцу Sales[Quantity]. На рис. 4.8 показан вывод отчета с вычисляемым столбцом SumOfSalesQuantity.

Литература по Power BI

Из этого примера видно, что два контекста вычисления могут мирно сосуществовать и при этом не взаимодействовать друг с другом. Оба контекста влияют на итоговые результаты, но делают они это по-разному. Агрегирующие функции вроде SUM, MIN и MAX используют только контекст фильтра, игнорируя при этом контекст строки. Если вы выбрали первый вариант ответа, что делают многие студенты, это нормально. Это означает, что вы по-прежнему путаете контекст фильтра с контекстом строки. Еще раз повторим, что контекст фильтра фильтрует, контекст строки осуществляет итерации по таблице. Первый ответ выбирают те, кто полагаются на интуицию, и теперь вы понимаете, почему. Если же вы сделали правильный выбор, что ж, поздравляем – значит, эта глава помогла вам понять разницу между различными контекстами.

Использование ссылок на столбцы в мерах

Вторая задача будет из противоположной области. Представьте, что вы пишете формулу для расчета валовой прибыли с использованием меры, а не вычисляемого столбца. У нас есть столбцы с ценой (Net Price) и себестоимостью (Unit Cost) за единицу товара, и мы пишем следующее выражение:

GrossMargin% := ( Sales[Net Price] — Sales[Unit Cost] ) / Sales[Unit Cost] 

Какой результат мы получим? Как и в первой задаче, мы предлагаем вам три варианта ответа на выбор:

  1. Выражение выглядит корректно, пора запускать отчет.
  2. Здесь есть ошибка, такую формулу писать нельзя.
  3. Такое выражение написать можно, но оно вернет ошибку при формировании отчета.

Как и в первом случае, остановитесь ненадолго, подумайте над ответом и только потом продолжайте чтение.

В этом коде мы ссылаемся на столбцы Sales[Net Price] и Sales[Unit Cost] без использования агрегирующих функций. Так что DAX придется вычислять значение по каждому из столбцов для конкретной строки. Но у движка нет возможности определить, с какой именно строкой он имеет дело в данный момент, поскольку мы не запускали итерации по таблице, а код написали не в вычисляемом столбце, а в мере. Иными словами, здесь в распоряжении DAX нет контекста строки, который мог бы помочь извлечь значение из нужного нам столбца в рамках этого выражения. Помните, что при создании меры автоматически не появляется контекст строки, это происходит только при создании вычисляемого столбца. Если нам нужен контекст строки внутри меры, необходимо воспользоваться итерационными функциями.

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

Спасибо, на этом все. Добавляйтесь в друзья и подписывайтесь на фейсбуке, и вы будете в курсе всех последних новостей по моим переводам в области BI.

Укажите регион, чтобы мы точнее рассчитали условия доставки

Начните вводить название города, страны, индекс, а мы подскажем

Например: 
Москва,
Санкт-Петербург,
Новосибирск,
Екатеринбург,
Нижний Новгород,
Краснодар,
Челябинск,
Кемерово,
Тюмень,
Красноярск,
Казань,
Пермь,
Ростов-на-Дону,
Самара,
Омск

Аннотация

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

Характеристики

Издано


Издательство «ДМК Пресс»

Формат(ы)


Pdf

Перевод


пер. с англ.

Переводчик(и)


А.Ю. Гинько

Возрастное ограничение


12+

Вид издания


Практическое издание
Размер файла, pdf

39.9 Mб

Понравилась статья? Поделить с друзьями:
  • Шевроле ланос мануал по ремонту
  • Если руководство подавляет
  • Витамин д3 аксу витал инструкция по применению
  • Модульное оригами для начинающих пошаговая инструкция сердце
  • Гинофит гель инструкция по применению цена отзывы