Максим зеленский power bi: Excel Inside — blog by Maxim Zelensky

Содержание

Видео докладов Максим Зеленский на конференциях

Видеозаписи спикера

Автор в excel-inside.pro

Бизнес-аналитик в Vink.ru, маркетолог, консультант и аналитик с более

чем 20-летним стажем, автор блога excel-inside.pro, фанат-энтузиаст

Больше

Подписаться

Вы подписаны

В избранное

Страница создана автоматически без участия докладчика на основе публичных данных.

Если вы Максим Зеленский — свяжитесь с нами

Тематика:

Маркетинг, реклама и PR

Бизнес-аналитик в Vink.ru, маркетолог, консультант и аналитик с более чем 20-летним стажем, автор блога excel-inside.pro, фанат-энтузиаст Microsoft Excel, Power BI и Power Query и соавтор youtube-канала bi-tv. ru.

Последний доклад спикера

Максим Зеленский

Автор в excel-inside.pro

+ 1 докладчик

  • Видео

  • Аудио

  • Видео

  • Аудио

25 мая 2018, Санкт-Петербург, Россия

СПИК 2018

Запросить Q&A

Из видеозаписей конференции

СПИК 2018

Видео

Мастер-класс: Создание дашбордов в Microsoft Power BI

Максим Зеленский в докладах

1:26:09

Доступно

В корзине

290 ₽

290 ₽

$5

$5

€ 5

€ 5

A$8

A$8

£5

£5

C$7

C$7

Выступал на мероприятиях вместе с

Узнать больше

Александр Налетов

Product manager в eLama. ru

1 раз

Интересуетесь тематикой «Маркетинг, реклама и PR »?

Возможно, вас заинтересуют видеозаписи с этого мероприятия

Узнать больше

СПИК 2021

Максим Зеленский присутствует на записях этого мероприятия

Максим Зеленский в «СПИК 2018»

Узнать больше

СПИК 2018

Доступно

В корзине

1 900 ₽

1 900 ₽

$33

$33

€ 32

€ 32

A$48

A$48

£27

£27

C$44

C$44

Другие категории

Путешествия и туризм

Маркетинг, реклама и PR

Стартапы и предпринимательство

Conference Cast

ConferenceCast. tv — архив видеозаписей докладов и конференций.
С этим сервисом вы можете найти интересные лекции специально для вас!

1497 конференций

47595 докладчиков

20181 час контента

Не пропусти другие доклады с этим спикером

Подписаться

Вы подписаны

Телеграм канал Power BI — powerbichannel

  1. Каталог телеграм каналов
Телеграм канал ‘Power BI’

Power BI

4’483 подписчиков
0 просмотров на пост

Канал про Power BI на русском языке. Все релевантное здесь:)

Чат Power BI Group RU: https://t.me/PBI_Rus

Детальная рекламная статистика будет доступна после прохождения простой процедуры регистрации

  • Детальная аналитика 2’149’114 каналов
  • Доступ к 428’275’687 рекламных постов
  • Поиск по 1’609’997’680 постам
  • Отдача с каждой купленной рекламы
  • Графики динамики изменения показателей канала
  • Где и как размещался канал
  • Детальная статистика по подпискам и отпискам

Telemetr.

me Подписаться

Аналитика телеграм-каналов — обновления инструмента, новости рынка.

Просмотр поста #32 от 2019-03-27 17:11:53

Очередной выпуск BI-TV.ru: инкрементное обновление для облачных источников данных в Power BI Service (Pro-аккаунт)

Web-страница:

Последние посты канала:

Web-страница:

BI-TV #36 Антипаттерны DAX 4: YEAR + MONTH
В четвертом выпуске серии “Антипаттерны DAX” Даниил Маслюк показывает классический плохой пример применения функций YEAR MONTH. Если исправление некорректного кода приносит вам столько же удовольствия, сколько и Максиму Зеленскому, то этот выпуск обязателен к просмотру.

Вы можете скачать файл с разобранными примерами по ссылке: https://drive.google.com/file/d/1maN_u3TjUEVxxn_3MM8oIp4U1QUloIJz/view?usp=sharing

Плейлист Антипаттерны DAX с Даниилом Маслюком: https://youtube. com/playlist?list=PL4JN_csbFcN48emSmqA3DLTOaGpFz8X71

00:00 Вступление
02:05 С чем сегодня работаем
04:18 CONCATENATE или не CONCATENATE…
05:44 Решение числовое
06:58 Решение текстовое
07:41 Столбцы ГОД МЕСЯЦ: нюансы использования
10:18 Альтернативное решение
13:05 О функции EOMONTH
15:13 Графики: конец и начало месяца
17:30 Почему не подходит STARTOFMONTH
19:10 Заключение

Еще больше актуального в сфере Power BI в твиттере (https://twitter.com/DMaslyuk) и на сайте (https://xxlbi.com) Даниила.

Web-страница:

BI-TV #35 Антипаттерны DAX 3: табличные функции
Третий выпуск серии “Антипаттерны DAX” Даниил Маслюк решил посвятить табличным функциям. Вместе с ведущими он делает формулу, предложенную Microsoft, понятне…

Web-страница:

BI-TV #34 Антипаттерны DAX 2: SELECTEDVALUE
Во втором выпуске серии “Антипаттерны DAX” Даниил Маслюк рассказывает, как не стоит использовать функцию SELECTEDVALUE. О том, как с ее помощью сократить код, Даниил писал в своем твиттере еще в июле 2017. В этом выпуске он рассказывает, каких ошибок стоит избегать, и как использовать функцию SELCTEDVALUE эффективно.

00:00 Вступление
00:45 Функция SELECTEDVALUE
03:37 Пример 1: чистота кода
08:35 Пример 2: лишний вызов функции
13:26 Ошибка строки Total
15:24 Пример 2 — продолжение
16:11 Для продвинутых: быстродействие
20:41 Заключение

Чтобы регулярно читать про классные фишки Power BI, подписывайтесь на твиттер (https://twitter.com/DMaslyuk) и сайт (https://xxlbi.com) Даниила.

Web-страница:

BI-TV #33 Антипаттерны DAX 1: SWITCH
Начинаем серию выпусков “Антипаттерны DAX”. Автор серии — наш австралийский гуру Power BI Даниил Маслюк. В первом выпуске Даниил рассматривает неэффективное использование функции SWITCH.

Какие основные ошибки допускают разработчики в применении SWITCH и как ее грамотно использовать — смотрите в нашем выпуске.

00:00 Вступление
02:46 О Данииле и серии роликов
04:41 SWITCH TRUE: проверка значения против списка
13:48 Проблема читаемости кода
15:15 SWITCH TRUE: Standard Cost
28:00 SWITCH TRUE vs MAX
34:04 Еще немного о Данииле

Упомянутые в видео ссылки:
Статья Даниила Маслюка (https://xxlbi.com/blog/single-letter-day-month-names/) об однобуквенных обозначениях месяцев и дней недели.

Сортировка по столбцу — еще одна статья (https://xxlbi.com/blog/sort-by-column/) от Даниила.

А также обязательно загляните к Даниилу в твиттер (https://twitter.com/DMaslyuk) и на сайт (https://xxlbi.com).

BI-TV #32 Unplugged: Подключение к локальному Power BI для сводных MS Excel, аналитика рабочего времени
https://youtu.be/ovhWxi5xzWI

Экспериментальный выпуск в режиме freestyle из которого вы узнаете, на что Максим Уваров тратил время последние 12 лет и о преимуществах совместного использования сводных таблиц и данных в модели Power BI.

Ссылки по теме:
— Серивис RescueTime
— Набор файлов для кнопки в Power BI, которая создает .ODC подключение — https://github.com/hohlick/PBIDesktopExternalTools
— Выпуск BI-TV #26, в котором Максим Зелнский рассказывал, как создавать обновляемое подключение к модели данных Power BI Desktop
— Канал Уваров шарит @maximuvarov

Web-страница:

BI-TV #32 Unplugged: Подключение к локальному Power BI сводных MS Excel, аналитика рабочего времени
Экспериментальный выпуск в режиме free style из которого вы узнаете, на что Максим Уваров тратил время последние 12 лет и о преимуществах совместного использования сводных таблиц и данных в модели Power BI.

Ссылки по теме:
— Серивис RescueTime https://www.rescuetime.com/
— Набор файлов для кнопки в Power BI, которая создает .ODC подключение — https://github.com/hohlick/PBIDesktopExternalTools
— Выпуск BI-TV #26 https://www.youtube. com/watch?v=Z7tKvN-qu58, в котором Максим Зелнский рассказывал, как создавать обновляемое подключение к модели данных Power BI Desktop

Timestamps:
00:57:30 Наборы данных

BI-TV #31: Павел Левчук — о жизни, аналитике
Первый выпуск BI-TV в режиме подкаста: смотреть не обязательно, достаточно слушать.
2 часа ценных инсайтов про работу аналитика.

Web-страница:

BI-TV #31: Павел Левчук — о жизни, аналитике и полстакана воды
Table of Contents:

03:49 — От венчурной аналитики к продуктовой
09:01 — О чем жалеем
13:50 — Кросс-функциональные команды
24:45 — Кто же такой аналитик?
31:27 — Нет у аналитики конца
32:59 — Предметная область, чут и большие данные
44:03 — Чуйка или насмотренность
01:00:53 — Скилы аналитика
01:05:20 — Умение добраться до сути
01:09:52 — проблемы со связью
01:10:12 — Умение добраться до данных
01:11:09 — Тулсет
01:13:55 — На чем качать скил
01:20:33 — Что раньше — статистика или язык
01:26:52 — last
01:28:30 — Фундаментальное знание
01:32:05 —
01:35:07 —
01:36:25 — Продуктовая аналитика
01:40:22 — Продуктова аналитика или стэк
01:49:46 — Конференции

Сайт Павла Левчука: https://ecommerce-in-ukraine. blogspot.com/

BI-TV #30: Мастера Power BI рунета — Дмитрий Соловьев

В гостях Дмитрий Соловьев, Data Platform MVP, активный участник группы https://www.facebook.com/groups/powerBiForever, чатика в телеграме https://t.me/PBI_Rus/, сооснователь https://databear.com/, преподаватель образовательного проекта https://iqbi.pro/, автор youtube канала https://youtube.com/c/IQBIschool, автор блога http://powerofbi.ru.

Ссылки упомянутые в видео:

— https://www.daxpatterns.com/
— https://www.sqlbi.com/
— Книга: Равив Г. Power Query в Excel и Power BI: сбор, обьединение и преобразование данных https://www.ozon.ru/product/power-query-v-excel-i-power-bi-sbor-obedinenie-i-preobrazovanie-dannyh-231611763/
https://powerbi.microsoft.com/ru-ru/learning/
— Книга: M Is for (Data) Monkey: A Guide to the M Language in Excel Power Query https://www.amazon.com/Data-Monkey-Guide-Language-Excel/dp/1615470344

Web-страница:

BI-TV #30: Мастера Power BI рунета — Дмитрий Соловьев
В гостях Дмитрий Соловьев, Data Platform MVP, активный участник группы https://www. facebook.com/groups/powerBiForever, чатика в телеграме https://t.me/PBI_Ru…

BI-TV #29: Мастера Power BI рунета: Станислав Салостей

Пригласили Стаса Салостей в гости, расспросили о его прошлом и узнали как он стал таким крутым. Записали на эту тему видео и делимся с вами!

Из видео вы узнаете о консалтинговом опыте Стаса, о том что диплом он сдал с отличием, но вот зачет по Excel долго сдать не мог, о том что словом dashboard в рунете он начал материться один из первых и о много-много другом (час двенадцать минут видео!).

— сайт https://finalytics.pro/
— эпический youtube канал https://www.youtube.com/user/salosteysv
— группа вконтакте https://vk.com/finalytics
— группа в facebook https://www.facebook.com/groups/finalytics

Web-страница:

BI-TV #29: Мастера Power BI рунета — Станислав Салостей
Пригласили Стаса Салостей @salosteysv в гости, расспросили о его прошлом и узнали как он стал таким крутым. Записали на эту тему видео и делимся с вами! Из в…

BI-TV #28: Звезды Power BI рунета: Максим Зеленский

Максим Зеленский один из ключевых и самых эрудированных участников профессионального сообщества по Power BI в Facebook и тематической группы в Telegram.

Поговорили о том, как он достиг своего уровня, что им движет и какие у него планы дальше. Было интересно!

Ссылки по теме:

— Сайт
— Твиттер
— Facebook

Calculation Groups (группы вычислений) их создание и использование в Tabular Editor от Даниила Маслюка и Максима Зеленского!

Web-страница:

BI-TV #27: Calculation Groups в Power BI. Основы и продвинутые кейсы от Д.Маслюка и М.Зеленского.
Calculation Groups (группы вычислений) их создание и использование в Tabular Editor!

Первое видео про Tabular Editor — https://bi-tv. ru/video/24_Tabular_editor_for_power_bi_1/.

Ссылка facebook на упомянутого в видео Илью Шелегина https://www.facebook.com/ilya.shelegin. Кстати, у нас с ним уже был выпуск 22 — https://bi-tv.ru/video/22_power_bi_report_server_by_Ilya_Shelegin/ и скоро, надеемся, будут новые.

P.S. Подписывайтесь на наш телеграм канал: https://t.me/PowerBIChannel
присоединяйтесь к группе в facebook — https://www.facebook.com/groups/powerBiForever, вступайте в телеграм чатик — https://t.me/PBI_Rus/

Показать все остальные посты

Вид интерфейса:

Новый (обновленная версия)

Старый (в синих тонах)

Ширина страницы:

Полная

Центрированная


Режим аналитики:

Полный

Со вкладками

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

Режим «со вкладками» означает, что в аналитике каналов страница будет поделена на разделы со вкладками для ускорения загрузки и отрисовки страницы.

Excel Inside — блог Максима Зеленского

Запись Power Query как словарь: Часть 1

Как использовать специальную запись словаря для эффективного поиска значений в Power Query

Продолжить чтение →

Максим Зеленский
25 октября 2022 г.

Функция «М» / Power BI / Power Query /


Подключение Power Query к модели данных Excel PowerPivot

TL;DR

Мы можем
подключить практически любой источник данных в Power Query, но модель данных PowerPivot не
включены в этот обширный список источников из коробки.

Но с
с помощью сказочной DAX Studio мы можем это сделать (хотя, на мой взгляд, это
все равно неудобно и мудрено) хотя бы локально — из той же книги в экселе
или из Power BI Desktop.

Все, что ты
нужно открыть книгу Excel, запустить надстройку DAX Studio и подключить ее к
эта рабочая тетрадь. Затем вы можете просто подключиться к модели PowerPivot как к SQL
Куб служб аналитики сервера.

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

Продолжить чтение →

Максим Зеленский
30 июня 2020 г.

Power BI / Power Query /


Классическое добавочное обновление для облачных источников данных в службе Power BI (для учетных записей Pro)

[TL;DR]

В этом посте я описываю, как реализовать классический сценарий добавочного обновления для облачных источников данных в службе Power BI для учетных записей Pro. Шаг за шагом. Это стоит прочитать.

Предисловие

Как я писал
в предыдущем посте мы можем реализовать полуинкрементное обновление для Pro
учетные записи в Power BI, используя только потоки данных.

Метод
У описанного мной есть главный недостаток: хотя «исторический» поток данных остается
неизменным и никогда больше не будет загружать данные из источника, «обновляющий»
поток данных будет повторно загружать всю «свежую» часть данных, пока вы не измените
интервалы дат вручную.

Первоначально –
в «свежей» части мало данных…

Свежие данные становятся не такими свежими…

…но после
некоторые последующие обновления, это может стать значительным и не таким свежим.

Вы можете
снова разбить «свежее» его на две части — «новое историческое» и «свежее», и т.
на. Но это только SEMI -инкрементальный
освежить, и, конечно же, не является хорошим решением.

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

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

Свежие данные остаются свежими 🙂

Не менее
для облачных источников данных.

Продолжить чтение →


Видео: полуинкрементное обновление для учетных записей Pro в Power BI

После того, как я опубликовал предыдущую запись в блоге о добавочном обновлении для учетных записей Pro в Power BI, Microsoft MVP Паркер Стивенс из канала BI Elite любезно попросил меня записать видео для его канала. Итак, вот оно.

Здесь я не только представляю потоки данных Power BI и описываю концепцию полуинкрементного обновления, но также показываю, как это работает в службе Power BI.
Развлекайся!

К моему удивлению, у него почти 1500 просмотров за два дня — не так уж и плохо 🙂 Я понимаю, что это произошло из-за хайпа темы, но, ну… теперь я знаю, как снять некоторые ограничения и выполнить КЛАССИЧЕСКОЕ инкрементное обновление для некоторых типы источников данных. Сообщение в блоге следует.

Максим Зеленский
21 марта 2019 г.

потока данных/добавочный/Power BI/обновление/


Добавочное обновление для учетных записей Pro с потоками данных службы Power BI

Инкрементальный
обновление — это популярный параметр в Power BI. Microsoft уже предоставила его для
Премиум-мощности, но для учетных записей Pro он все еще находится в списке ожидания.

Однако,
с введением потоков данных в службу Power BI, реализация добавочного обновления
становится доступным и для учетных записей Pro.

я не буду
подробно описывать потоки данных здесь, так как есть много блогов и ресурсов
об этом (но я предоставлю несколько ссылок внизу поста).

Концепция

Все, что ты
теперь нужно знать, как реализовать добавочное обновление, это

  1. Поток данных в службе Power BI представляет собой набор
    веб-запросов Power Query (называемых «сущностями»).
  2. Каждый поток данных можно обновить вручную
    или по собственному расписанию.
  3. Результат оценки
    сущности потока данных затем сохраняются в Azure Data Lake Storage 2-го поколения в виде таблиц (подробнее
    именно как файлы CSV).
  4. Затем вы можете использовать потоки данных (их сущности)
    в качестве источников данных в наборе данных Power BI.

Начнем
с этой точки.

Что такое
добавочное обновление вообще? Простыми словами, это означает, что в единичных данных
import action мы обновляем (обновляем) только часть данных вместо
загрузка всех данных снова и снова. Другими словами, мы делим данные на
две части (разделы): первая часть не требует обновления и должна оставаться
нетронутой, вторая часть должна быть обновлена, чтобы внести обновления и исправления.

Продолжить чтение →

Максим Зеленский
1 марта 2019 г.

потока данных/добавочный/обновление/


Правильное суммирование двух или более столбцов в Power Query и Power BI

Допустим, у вас есть несколько числовых столбцов [A], [B] и [C] в таблице, и вы хотите суммировать их в новый столбец в Power Query или редакторе запросов в Power BI.

Три числовых столбца мы хотим просуммировать в новом столбце

В Power Query для этого у нас есть специальные кнопки:

Сумма столбцов в Power Query проста как 1-2-3

Например, мы хотим суммировать столбцы [A] и [C]. Просто нажмите (удерживая Ctrl) заголовки столбцов, которые вы хотите суммировать, затем перейдите в «Добавить столбец» — «Стандартный» — «Добавить», и вы получите новый столбец с именем «Добавление» с построчной суммой. желаемых столбцов:

Сумма столбцов [A] и [C] — наверняка

. Если мы хотим сложить сразу три столбца, то тоже получим желаемый результат:

Чего мы ожидали? Просто простая сумма [A]+[B]+[C]

Но если в этой таблице мы хотим так просуммировать столбцы [A] и [B], нас не ждёт ловушка, не так ли?

Что может пойти не так?

Причина такого поведения проста, и она раскрывается, когда мы внимательно смотрим на наши данные: в столбце [B] этой строки есть null . В языке формул Power Query (M) выражение null + значение всегда возвращает значение null (см. отличный пост Бена Грибаудо о null type 9).0034 и операции с нулевыми значениями ).

Но почему мы получаем правильный результат, когда суммируем три столбца? Это связано с тем, что Power Query использует разные формулы при суммировании двух столбцов или трех и более столбцов:

List. Sum Функция, используемая в этом случае, игнорирует нулевые значения и суммирует только числовые значения. Действительно, он дает более интуитивный результат, а наоборот имеет не такой интуитивный синтаксис простого сложения.

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

Какие там возможные решения? Это зависит от того, что вы хотите получить в результате, но в любом случае стоит заглянуть в строку формул и решить, что там подправить:

  • Если логика ваших расчетов предполагает, что значение + null = null , то вам следует использовать простой + символ между именами столбцов.
  • Если вы хотите получить значение + null = значение , вам следует использовать функцию List.Sum, как в этом примере: List.Sum({[A], [B], [C]} )

ТАКОЕ ЖЕ ПОВЕДЕНИЕ Power Query показывает, когда вы пытаетесь умножить два столбца и три или более столбца: с двумя столбцами будет простой символ * , с тремя или более столбцами там будет List. Product функция используется.

Хорошо, это очень короткий пост, который я планировал (и должен) написать давно…

Максим Зеленский
16 января 2019 г.


Сравнение «нулевых» значений в Power Query

Недавно мне нужно было сделать очень простую вещь в Power Query. У меня есть столбец чисел, и мне нужно проверить, меньше ли значения в этом столбце, чем N, а затем поместить соответствующее текстовое значение в новый столбец. Функция для нового столбца примерно такая:

= если [Значения] < 5, то "A", иначе "B"

= если [Значения] < 5, то "A", иначе "B"

На самом деле некоторые значения являются не числами, а нулями:

Данные содержат пустые значения, и сравнение возвращает ошибку

И это простое вычисление возвращает ошибку для этих значений!

Почему? Есть загвоздка, которая скрыта в глубине документации (фактически на странице 67 PDF-файла «Спецификация языка формул Power Query (октябрь 2016 г. )», который вы можете получить там.

Продолжить чтение →


Неделя ISO на языке Power Query / M и Power BI

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

Иногда, особенно при работе с таблицами календаря, нам нужно вычислить Номер недели ISO для определенной даты. В Power Query / M language / Power BI нет собственных функций для получения номера недели ISO, поэтому для получения желаемого результата вам нужно написать свою собственную функцию.

Спасибо Кэтрин Монье, Microsoft Excel MVP, за предоставление ссылки на М-функцию «Дата до недели ISO», уже написанную для нас. Также существует еще одна функция для преобразования даты недели ISO (формат ввода, например: 2017-W02-7 ) в обычную дату:

.

Эту функцию не так сложно разработать, я думаю, но всегда лучше, когда кто-то дает вам готовое решение, не так ли? 🙂

Максим Зеленский
6 марта 2018 г.


Генератор настраиваемых списков в Power Query и Power BI

List.Generate  это мощная функция языка M (язык Power Query, также известный как «Get & Transform» для редактора запросов Excel и Power BI) , используемый для создания списков с использованием пользовательских правил. В отличие от других генераторов списков (например, List.Repeat или List.Dates), алгоритм (и правила) создания очередного элемента может быть практически любым. Это позволяет использовать List.Generate для реализации относительно сложных задач получения и преобразования.

Хотя отличных постов об использовании этой функции немного (например, Chris Webb, Gil Raviv, PowerPivotPro, KenR), мне всегда не хватало более «четкого» описания — «Как это на самом деле работает?» или «Почему не работает?» и, наконец, «Что имели в виду разработчики, создавая эту функцию?»

Как обычно, справочная статья MSDN лаконична:

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

Вы получите список из четырех элементов? Вы хотите использовать необязательный селектор? Действительно? Почему бы и нет?

В заброшенном справочнике по формулам Power Query (август 2015 г.) мы можем найти более четкое описание:

Создает список из функции значения, функции условия, следующей функции и дополнительной функции преобразования значений.

По крайней мере очевидно, что эта функция принимает 4 аргумента, все типа function:

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

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

На самом деле List. Generate использует довольно простой алгоритм цикла. При создании элемента нового списка List.Generate оценивает некоторую переменную (назовем ее CurrentValue ), которая затем передается от одной функции-аргумента к другой в цикле:

  1. Начальное значение CurrentValue   является результатом начального вычисления функции .
  2. Передать CurrentValue в функцию условия , проверить условие и вернуть значение true или false.
  3. Если условие  = ложь , то генерация стоп-листа .
  4. Если условие  = true , то создайте следующий элемент списка с этим правилом:
    • Если селектор передается в List.Generate и не имеет значение null, то передайте CurrentValue в селектор и оцените его результат.
    • Иначе (селектор вообще отсутствует или он равен нулю), тогда следующий элемент равен CurrentValue.
  5. Вычислить следующую функцию с аргументом CurrentValue и присвоить ее результат CurrentValue ,   , чтобы new CurrentValue оценивается следующим (CurrentValue).
  6. Перейти к шагу 2.

Как видно из этого не очень технического описания, важным отличием List.Generate от других функций итераторов языка M является то, что почти все другие функции работают в стиле For Each…Next (имеют фиксированный список для зацикливания), а List.Generate использует другую логику — «Do While…Loop», проверяя условие перед итерацией цикла. В дальнейшем количество элементов в создаваемом списке ограничивается только условием «Пока».

Если мы запишем описанный выше алгоритм на другом, нефункциональном языке (например, Visual Basic), то он будет выглядеть так:

Visual Basic

Dim NewList как новый список

Текущее значение = начальное ()

Выполнить условие (CurrentValue)
Если селектор = ноль Тогда
НовыйСписок. Добавить(ТекущееЗначение)
Еще
NewList.Add (селектор (CurrentValue))
Конец, если
Текущее значение = следующее (текущее значение)
Петля

1

2

3

4

5

6

7

8

10

110005

12

DIM Newlist As New List

CurrentValue = initial ()

DO В то время как условие (CurrentValue)

IF SELECTER = NULL THEN

NEWLIST.ADD (CUSTVALUE)

ERSE

0005

        NewList.Add(selector(CurrentValue))

    End If

    CurrentValue = next(CurrentValue)

Цикл

Обратите внимание:

  1. начальная  функция не имеет аргументов , и ее оценочное значение равно значению ее выражения.
    Даже когда вы пытаетесь написать начальную   функцию с аргументами, вы не можете передать ей ни одного аргумента, потому что она вызывается где-то внутри List. Generate.
    Если честно, я не понимаю, почему начальное   ЯВЛЯЕТСЯ функцией, а не простым выражением или значением. Может на это есть причины.
  2. первоначальная  функция   оценивается первой
    Но, если первый вызов функции условия вернет false, список не будет создан, несмотря на то, что первоначальная функция была оценена.
    В случае результат условия истинен, тогда оценивается начальный (или оцененный селектор ) будет первым элементом списка . Вот почему начальное и следующее обычно возвращают одинаковые структурированные значения одного и того же типа.
  3. условие , следующий   и селектор   получили вычисленное CurrentValue в качестве аргумента , 3 , но они не должны использовать его4. На самом деле эти три функции могут игнорировать CurrentValue, и использовать другую логику.
    Но, если честно, я не могу себе представить ситуацию, когда условие (или следующее ) не используют CurrentValue, , потому что это приводит к бесконечному циклу или список не будет создан.
  4. селектор оценивается, несмотря на результат следующей оценки на текущей итерации цикла.
  5. следующий   всегда оценивается ДО того, как будет создан следующий элемент списка  (2-й и последующие).

При создании списка с использованием некоторых вызовов API (например, вы отправляете запросы GET или POST к API в функциях initial и next ) следует учитывать следующее:

  1. API будет вызываться как минимум один раз (при оценке начального ).
  2. Количество вызовов API всегда будет как минимум на один больше, чем количество элементов в созданном списке  (этот чрезмерный вызов является результатом последних следующий   оценка функции, которая не прошла условие)

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

Resuming, List.Generate  мощный инструмент, который выглядит сложнее, чем на самом деле. Надеюсь, что этот пост сделал его более дружелюбным и понятным. 🙂


Идеи Power Query в сообществах Uservoice и Power BI

Недавно я писал о ловушке UsedRange при импорте из листа Excel в Power Query (вы можете прочитать этот пост там).

Чтобы добавить вариант для пользователей, которые могут столкнуться с теми же проблемами, что и я, я добавил соответствующие идеи по улучшению Power Query на excel.uservoice.com и https://ideas.powerbi.com

Пожалуйста, проголосуйте за эти улучшения — я уверен, что они не только сэкономят вам несколько строк кода, но и уберегут вас от потенциальных ловушек при работе с необработанными данными Excel.

Спасибо!

 


1
2
3

Еженедельный выпуск Power BI 181: 01.

11.2022

Еженедельный логотип Power BI

на базе endjin.com

Несколько обновлений на этой неделе. совместное использование и копирование как изображения, которые скоро появятся. Одна довольно крутая функция, описанная в этой статье, — это функциональность для глубокой ссылки на конкретный выбор, который вы сделали на определенной диаграмме, что довольно круто. Нам также сообщили об обновлениях для улучшения сайта Power BI Ideas, включая улучшенный поиск и возможность входа в систему с использованием учетных записей MSA, а не только учетных записей организации. Наконец, нам сообщили, что теперь доступен октябрьский выпуск локального шлюза данных.

В другом месте на этой неделе Джеймс Брум поделился своей презентацией с виртуального саммита Data Platform под названием «Правильно ли выглядят эти цифры?», в которой он обсуждает несколько методов написания автоматизированных тестов для ваших решений Power BI/AAS/Data, Шабнам Уотсон подробно рассмотрел автоматическое обслуживание разделов службой Power BI для наборов данных с добавочным обновлением, а Даниил Маслюк написал о новых функциях DAX: TOCSV и TOJSON, варианты использования которых, по-видимому, станут более очевидными, когда функция EVALUATEANDLOG официально отгружается.

Подготовка данных

Тема: Power Query (M), потоки данных, соединители данных, AI Insights

  • В блоге Enterprise DNA Мелисса де Корте (@_EnterpriseDNA) пишет о том, что такое Power Query и M Язык: A Подробный обзор
  • Рик де Гроот (@Rickmaurinus) рассказывает о Fast Running Totals в Power Query (полное руководство)
  • Бен Грибаудо (@bgribaudo) описывает основные моменты нового SDK Power Query
  • Максим Зеленский (@Hohlick) описывает Power Query Запись в словарь: Часть 1
  • Ларс Шрайбер (@SchreiberLars) описывает Exceldateien aus Ordner importieren-Nur bestimmte Bltter je Datei mit Power Query [немецкий]
  • Bas Dohmen (@HowToPowerBI) описывает OneDrive + Power BI? Делайте это правильно

Моделирование данных

Охватывает: DAX (показатели и вычисляемые таблицы/столбцы), отношения, службы анализа, составные модели

  • Даниил Маслюк (@DMaslyuk) пишет о новых функциях DAX: TOCSV0 и TOJSON 9091SON
  • Джеймс Эндрю (@MatadorSoftware) рассказывает о функции DAX OFFSET в Power BI | Сравнение с оконными функциями SQL LAG и LEAD
  • Сэм Маккей (@_EnterpriseDNA) рассказывает об использовании концепций формул ALLSELECTED — DAX в Power BI [обновление 2022 года]
  • Крис Уэбб (@cwebb_bi) описывает диагностику проблем производительности, связанных с расчетами, в Power BI Использование EvaluateAndLog
  • В блоге Towards Data Science Сальваторе Кальяри (@TDataScience) пишет о распределении значений с коэффициентом в DAX 9. 0091
  • Ави Сингх (@powerbipro) описывает таблицу календаря с использованием DAX
  • Также в блоге Enterprise DNA Густав Дудек (@EnterpriseDNA_) описывает руководство DAX Power BI по прозрачности отчетов
  • В блоге сообщества Power BI Рико Чжоу описывает, как do Динамический подсчет групп в Power BI
  • Чандип Чхабра (@chandeep2786) описывает простые и эффективные примеры перехода контекста в Power BI
  • Дэниел Дьюк охватывает Ищете отличное введение в DAX?
  • В блоге SQLBI Альберто Феррари (@FerrariAlberto) рассказывает о том, почему итоговые данные Power BI могут показаться неточными
  • Рут Посуэло Мартинес (@CurbalEN) обсуждает, хороша ли новая функция быстрых измерений? Давайте узнаем
  • Рейд Хэвенс (@HavensBI) обсуждает введение Measure Killer (внешнего инструмента) для Power BI с Грегором Бруннером и Клаусом Фольцем представить BI Thinkers Talk XXII: lineare Budgetverteilung in Power BI [немецкий]

Создание отчетов и интерактивность

Тема: Макет и форматирование, визуализации, интерактивность, темы, мобильные отчеты, информационные панели

  • Патрик Леблан (@GuyInACube) объясняет, как повысить эффективность вопросов и ответов в Power BI
  • Mara Pereira

  • (@datapears) просматривает Обновление закладок в Power BI.

    This entry was posted in Популярное