Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Расчет итоговой суммы продаж с учетом входящих остатков, Построение модели данных в Power Pivot, программирование на языке DAX
 
Цитата
написал:
Не совсем понял, но может так:
По цифрам все бьется! Красивое решение!!! Я три дня мучил DAX, но так ничего и не придумал.
Спасибо!!!
Расчет итоговой суммы продаж с учетом входящих остатков, Построение модели данных в Power Pivot, программирование на языке DAX
 
Добрый день!
Коллеги, нужна помощь профи по DAX. Есть данные продаж за несколько месяцев. Входящий остаток дан только на 1 января 2024 года. Следовательно, мы имеем динамику продаж за январь с входящим остатком Total Sales и все остальные месяцы продаж Sales WOB без входящего остатка. Нужно получить меру расчета продаж с учетом входящих остатков на первое число каждого месяца по следующему правилу:
Продажи за январь у нас уже есть с учетом входящего остатка.
Продажи за февраль = продажи за январь + Sales WOB за февраль - здесь в качестве входящего остатка на февраль взял сумму продаж за предыдущий месяц.
Продажи за март = продажи за февраль + Sales WOB за март - здесь в качестве входящего остатка на март взял сумму продаж за предыдущий месяц.
Продажи за апрель = продажи за март + Sales WOB за апрель - здесь в качестве входящего остатка на апрель взял сумму продаж за предыдущий месяц.
и так далее...
Ссылка на модель данных здесь https://disk.yandex.ru/i/U-uL8N1pz_w8ag

Формула Sales "Total с учетом входящих остатков" написана в экселе, которая берет данные из сводной таблицы. Костыль, конечно, но рассчитать формулу при помощи DAX не получилось, я все время нарывался на цикл...
Названия столбцов
янв 24Общий итог
Opening balance21 143 98221 143 982
Поступления денежных средств без   входящего остатка Sales WOB
Названия   столбцов
янв 24фев 24мар 24апр 24май 24Общий итог
Sales WOB707 433227 680-3 164 41843 756-4 730 823-6 916 373
Итоговый баланс денежных средств Sales   Total
Названия   столбцов
янв 24фев 24мар 24апр 24май 24Общий итог
Total Sales21 851 415227 680-3 164 41843 756-4 730 82314 227 609
Sales Total с учетом входящих   остатков21 851   415 22 079   095 18 914   677 18 958   43314 227   609 96 031   228
формула = G25формула = G25 + H16формула = H25 + I16формула = I25 + J16формула = J25 + K16
Data.Format.Error, Ошибка формата данных в power query
 
Решить данную проблему в PBI не удалось, п.ч. при возникновении ошибки нельзя посмотреть таблицу на вкладке Представление таблиц - там будет висеть таблица со старыми данными. Но удалось визуализировать эту таблицу в эксель. Даже при наличии ошибки в формате данных, таблицу можно вывести на лист эксель. При пролистывании столбца SKU были обнаружены пустые ячейки, которые принадлежали одному поставщику ИП Жохова Виктория Андреевна, который почему то висел в столбце названия товара Name. В PQ сделал сортировку по нему и увидел, что все артикула равны lifestyle". Это и есть та самая текстовая переменная, которая приводила к ошибке формата данных, п.ч. нельзя текст перевести в целое число.
Исключил эту переменную из столбца артикулов при помощи формулы - т.к. слово не простое, следует обратить внимание на количество кавычек в lifestyle

Table.SelectRows(#"Повышенные заголовки", each ([SKU] <> "lifestyle"""))

Так удалось решить эту проблему. Самое интересное то, что решение проблемы было сформулировано в самой ошибке

DataFormat.Error. Не удалось преобразовать в число. Сведения: lifestyle"

Нужно было сразу сделать поиск текстовой переменной lifestyle" по артикулу.
Data.Format.Error, Ошибка формата данных в power query
 
Цитата
написал:
Здравствуйте
Добрый, ссылку на файл приложил
Data.Format.Error, Ошибка формата данных в power query
 
ссылка на файл https://disk.yandex.ru/d/oG4e2j1dZcz3Sg
Data.Format.Error, Ошибка формата данных в power query
 
Цитата
написал:
головные уборы то приложите
не понял, о чем речь?
Data.Format.Error, Ошибка формата данных в power query
 
Добрый! При загрузке данных формат данных отработал без видимых ошибок - артикулам был присвоен формат целого числа, красной полосы в шапке не было, но при проведении каких-либо операций, например, сортировки по столбцу SKU возникает ошибка

DataFormat.Error. Не удалось преобразовать в число. Сведения: lifestyle"

Методом тыка добрался до самой ошибки, она оказалась в самом низу
SKUИндекс
60073743125521
16879353125522
11317443125523
40729893125524
20978973125525
44184333125526
9280383125527
17067573125528
ErrorError
Операции усечь и очистить не помогли, задание локали тоже. Вероятно, в этом столбце присутствуют какие-то невидимые непечатные символы, которых я не могу идентифицировать. Буду признателен за помощь. Все данные в приложенном файле

ссылка на файл https://disk.yandex.ru/d/oG4e2j1dZcz3Sg
Изменено: Lonly Lokly - 19.02.2024 09:33:51
Подключение данных mpstats.io к Power BI
 
Добрый! читал, но у моих клиентов API не подключен, поэтому на практике проверить не могу
Подключение данных mpstats.io к Power BI
 
Добрый! Как подключить данные с сайта mpstats.io к Power BI? До настоящего времени скачивал всю аналитику помесячно по каждой категории с сайта мпстатс вручную. Процесс длительный. Чтобы, например, скачать данные о продаже одной категории за 12 месяцев надо кликнуть мышкой 12 раз. Для 10 категорий - 120 раз. Получение данных 80 категорий за 2 года - 1920 работа мышью и время порядка 8 часов. При этом объем данных достигает 20 ГB. При таком подходе я получаю данные в режиме импорта, т.е. скачиваю все данные в папку на компе. Обновление данных при этом в PBI занимало порядка 7 суток - это п.ч. в Power Query реализован сложный код работы с текстовой информацией. Процесс работал, но в последнее время стала появляться ошибка Power BI Desktop WebView2 crash. Как ее убрать не решил. Поэтому и возник вопрос о режиме прямого доступа к сайту статистики.
Power BI Desktop WebView2 crash, Ошибка при обновлении данных в PBI
 
Добрый!
При обновлении данных в PBI стала появляться ошибка "Power BI Desktop WebView2 crash". Возникает при обработке данных с Mpstats, которые весят порядка 10 ГБ. На форуме  power BI рекомендуют скачать последнее обновление PBI и Webview2, что и сделал, но не помогло.
Есть решение данной проблемы?
Обновление данных, Скорость обновления данных в Power Query, Power BI
 
Цитата
написал:
то купите SSD
у меня на компе все диски SSD
Обновление данных, Скорость обновления данных в Power Query, Power BI
 
Цитата
написал:
Уточните пожалуйста в каком формате выгружаются данные из Mpstats?
csv, конечно
Обновление данных, Скорость обновления данных в Power Query, Power BI
 
Цитата
написал:
а сколько строк данных при этом обрабатывается при загрузке?
Порядка 40 млн строк. Исходные данные находятся у меня на компе - выгрузил их с сайта, поэтому интернет не влияет на скорость обработки данных. А вот это "Попробуйте загрузить данные без изменений в модель" надо попробовать. Понятно, что в модели есть сложный код обработки текстовых данных, который и грузит всю систему. Пробовал оптимизировать код, буферизовать таблицы и так далее, но не помогло.
Обновление данных, Скорость обновления данных в Power Query, Power BI
 
Из Mpstats выгружаю данные по одной категории, например, носки или обувь за последние 2 года помесячно. Время обновления файлов эксель, либо PBI занимает несколько дней. При размере исходных данных 2 ГБ время обновления файлов в PBI равно 20 часов, 6 ГБ считается 70 часов. 8 ГБ считается уже 5 суток и процесс еще не закончился. Основные расчеты делаются в Power Query, вся работа идет, в основном, с текстовыми переменными.
Вопрос следующий - это, вообще, нормальная ситуация, когда данные считаются несколько дней и как можно время обновления данных уменьшить?
Парсинг сайта, извлечение информации из сайта https://krasnoeibeloe.ru/
 
Добрый день!
Буду признателен за помощь профи.
Пробую получить данные по всей номенклатуре товара из сайта https://krasnoeibeloe.ru/
Подключиться через эксель, используя Power Query, не удалось.
Удалось подключиться через Power BI.

Код парсит заданное количество страниц по адресу конкретного каталога. В данном примере - это адрес каталога "Вино импорт". Далее номенклатура товара преобразуется в удобном для меня виде виде. Удалось выгрузить несколько сот позиций товара. Дальше началась какая-то фигня. Цепляю другой каталог для выгрузки данных - он формирует несколько десятков позиций или, вообще, возвращает пустую таблицу. Далее, в браузере гугл хром вообще не смог зайти на сайт "Красное и Белое". При очистки кеша браузера зайти на сайт удалось, но написанный код перестал работать.

Модель данных здесь https://drive.google.com/drive/folders/1-GOmGPTLrO0JcW596z-cPYLCguyQy9eM?usp=sharing

Код:

let
   Источник = List.Numbers(1,10),
   #"Преобразовано в таблицу" = Table.FromList(Источник, Splitter.SplitByNothing(), {"Номер страницы"}, null, ExtraValues.Error),
   #"Измененный тип" = Table.TransformColumnTypes(#"Преобразовано в таблицу",{{"Номер страницы", type text}}),
   #"Добавлен пользовательский объект" = Table.AddColumn(#"Измененный тип", "Пользовательский", each Html.Table(Web.BrowserContents("https://krasnoeibeloe.ru/catalog/vino/?PAGEN_1="&[Номер страницы]), {{"Название", ".product_item_name A"}, {"Информация", ".product-subtitle"}, {"Дискаунт", ".product_item__price DIV + *"}, {"Цена", ".i_price DIV:nth-child(1)"} }, [RowSelector=".catalog_product_item"])),
   #"Удаленные ошибки" = Table.RemoveRowsWithErrors(#"Добавлен пользовательский объект", {"Пользовательский"}),
   #"Другие удаленные столбцы" = Table.SelectColumns(#"Удаленные ошибки",{"Пользовательский"}),
   #"Развернутый элемент Пользовательский" = Table.ExpandTableColumn(#"Другие удаленные столбцы", "Пользовательский", {"Название", "Информация", "Дискаунт", "Цена"}, {"Название", "Информация", "Дискаунт", "Цена"}),
   #"Удаленные дубликаты" = Table.Distinct(#"Развернутый элемент Пользовательский", {"Название", "Информация"}),
   #"Разделить столбец по разделителю" = Table.SplitColumn(#"Удаленные дубликаты", "Информация", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, false), {"Страна", "Информация.2"}),
   #"Разделить столбец по разделителю1" = Table.SplitColumn(#"Разделить столбец по разделителю", "Информация.2", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, false), {"Объем", "Информация.2.2"}),
   #"Разделить столбец по переходам символов" = Table.SplitColumn(#"Разделить столбец по разделителю1", "Информация.2.2", Splitter.SplitTextByCharacterTransition(© => not List.Contains({"0".."9"}, c), {"0".."9"}), {"Регион", "Информация.2.2.2", "Информация.2.2.3"}),
   #"Объединенные столбцы" = Table.CombineColumns(#"Разделить столбец по переходам символов",{"Информация.2.2.2", "Информация.2.2.3"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Алкоголь"),
   #"Замененное значение" = Table.ReplaceValue(#"Объединенные столбцы",",","",Replacer.ReplaceText,{"Регион"}),
   #"Обрезанный текст" = Table.TransformColumns(#"Замененное значение",{{"Регион", Text.Trim, type text}}),
   #"Очищенный текст" = Table.TransformColumns(#"Обрезанный текст",{{"Регион", Text.Clean, type text}}),
   #"Замененное значение1" = Table.ReplaceValue(#"Очищенный текст","","No name",Replacer.ReplaceValue,{"Регион"}),
   #"Замененное значение2" = Table.ReplaceValue(#"Замененное значение1",null,"No name",Replacer.ReplaceValue,{"Регион"}),
   #"Замененное значение3" = Table.ReplaceValue(#"Замененное значение2","","No name",Replacer.ReplaceValue,{"Алкоголь"}),
   #"Замененное значение4" = Table.ReplaceValue(#"Замененное значение3",".",",",Replacer.ReplaceText,{"Дискаунт", "Цена"}),
   #"Измененный тип1" = Table.TransformColumnTypes(#"Замененное значение4",{{"Дискаунт", type number}, {"Цена", type number}, {"Название", type text}})
in
   #"Измененный тип1"
Омниканальность, Расчет количества клиентов по трем каналам продаж: офлайн, онлайн и омни
 
Alex, Спасибо!  
Омниканальность, Расчет количества клиентов по трем каналам продаж: офлайн, онлайн и омни
 
Alex, можете еще подсказать, как подсчитать меру "Среднемесячное значение Выручка на 1 клиента" по трем каналам, где выручку на 1 клиента  определил как
Выручка на 1 клиента офлайн = =DIVIDE([Выручка по клиентам офлайн];[Число клиентов офлайн])
В приведенной ниже таблице "Среднее значение" рассчитал просто в экселе
Названия строкВыручка   на 1 клиента офлайнВыручка   на 1 клиента онлайнВыручка   на 1 клиента омни
фев 221 217407269
мар 228932931 890
Общий   итог1   5553051   315
Среднее значение1 0553501 079
Омниканальность, Расчет количества клиентов по трем каналам продаж: офлайн, онлайн и омни
 
Alex, результаты по двум формулам одинаковые
Названия строкВыручка   по клиентам омниВыручка   по клиентам омни 1
мар 202 2982 298
апр 203 7603 760
май 2040 73340 733
июн 20157 955157 955
июл 20163 715163 715
авг 20118 127118 127
сен 2056 49256 492
окт 2076 72076 720
ноя 2045 75245 752
дек 2055 26455 264
Общий   итог2   545 9892   545 989
Омниканальность, Расчет количества клиентов по трем каналам продаж: офлайн, онлайн и омни
 
Alex, выручку, соответственно, рассчитал по такой формуле

Выручка по клиентам омни:=var tab =

SUMMARIZE('Data';'Data'[ID Головной контрагент];

"Канал";

CONCATENATEX(DISTINCT('Data'[Канал продаж]);'Data'[Канал продаж];","))

return

SUMX(FILTER(tab; [Канал] = "онлайн,офлайн" || [Канал] = "офлайн,онлайн" ); [Продажи])

Омниканальность, Расчет количества клиентов по трем каналам продаж: офлайн, онлайн и омни
 
Alex, Обалдеть!!! Все правильно!!! Вы правы насчет таблицы справочника Таблица Ref_Контрагент, я туда прикрутил вычисляемый столбец с расчетом признака омниканальности, когда загружал в базу данные только по одному месяцу.
Поясните мне пожалуйста, где можно научиться писать такие меры
Число клиентов онлайн = =var  tab =SUMMARIZE('Data';'Data'[ID Головной контрагент];"Канал";CONCATENATEX(DISTINCT('Data'[Канал продаж]);'Data'[Канал продаж];","))
return
COUNTAX(FILTER(tab; [Канал] = "онлайн"); [ID Головной контрагент])

Это просто высший пилотаж!!! Огромное спасибо!
Омниканальность, Расчет количества клиентов по трем каналам продаж: офлайн, онлайн и омни
 
Или еще проще: есть мера "Критерий клиента", которая правильно присваивает текстовый признак клиента - офлайн, онлайн, омни. Нужно подсчитать количество этих самых офлайн, онлайн и омни по месяцам. В выделенном сегменте кол-во клиентов офлайн = 34, клиентов омни = 1, клиентов онлайн нет.
Короткий   мес годЗначения
фев 22
ID   Головной контрагентОнлайнОфлайнКритерий   клиента
CT00000043Офлайн
CT00000051Офлайн
CT00000094Офлайн
CT00000141Офлайн
CT00000162Офлайн
CT00000192Офлайн
CT00000224Офлайн
CT00000272Офлайн
CT00000335Офлайн
CT000003412Офлайн
CT00000351Офлайн
CT00000372Офлайн
CT00000404Офлайн
CT0000041
CT00000422Офлайн
CT00000532Офлайн
CT00000591Офлайн
CT00000682Офлайн
CT00000741Офлайн
CT00000773Офлайн
CT00000821Офлайн
CT00000861Офлайн
CT00000891Офлайн
CT00000903Офлайн
CT00000932Офлайн
CT00000962Офлайн
CT00000983Офлайн
CT00001022Офлайн
CT00001031Офлайн
CT00001042Офлайн
CT00001053Офлайн
CT00001081Офлайн
CT00001111Офлайн
CT00001123Офлайн
CT000011331Омни
CT00001142Офлайн
Омниканальность, Расчет количества клиентов по трем каналам продаж: офлайн, онлайн и омни
 
Цитата
написал:
ALL('Calendar'[Короткий мес год]
Проблема в этой таблице, где рассчитываются Число клиентов офлайн, Число клиентов онлайн и Число клиентов омни. Неправильно считаются по месяцам. Сброс фильтра по календарю ничего не дает. В рамках вычисления одного месяца я создал вычисляемый столбец в PQ в справочнике клиентов, где находятся уникальные значения ID. Но этот подход не работает, когда есть несколько месяцев. В идеале, надо создать вычисляемый столбец в PQ в базе данных Data c текстовым полем Критерий клиента, который бы правильно идентифицировал распределение клиентов по трем каналам. Я создал такую меру, которая правильно идентифицирует, но .... сломал всю голову, как подсчитать итоговое количество клиентов по трем каналам по мере "Критерий клиента"
Названия строкЧисло   клиентов офлайнЧисло   клиентов онлайнЧисло   клиентов омни
фев 2232059
мар 2232059
Общий   итог32059
Изменено: Игорь Симановский - 05.07.2023 15:49:37
Омниканальность, Расчет количества клиентов по трем каналам продаж: офлайн, онлайн и омни
 
Добрый день! Нужна помощь профи по Powery Query и DAX.
В течение месяца клиенты совершают покупки товара по двум каналам продаж - онлайн и офлайн. Это регистрируется в поле b2b: если в данном поле стоит пусто, значит, клиент совершал покупки по каналу офлайн, если переменная содержит PR или MB, значит, клиент делал покупки по каналу онлайн. В итоге, каждый клиент в течение месяца может совершать покупки либо по каналу офлайн, либо по каналу онлайн, либо по омни каналу - это когда клиент совершает покупки по двум каналам офлайн и онлайн сразу.
Задача следующая - рассчитать количество клиентов, которые совершают покупки по трем каналам продаж - офлайн, онлайн и омни за каждый месяц.
Плюс рассчитать суммы продажи по трем каналам.
Мне удалось решить данную задачу для одного месяца. Для нескольких месяцев уперся в задачу, как при помощи рассчитанной меры "Каналы продаж" правильно подсчитать количество клиентов по трем каналам по месяцам.
Тестовый пример с исходными данными здесь https://drive.google.com/drive/folders/1hqSc7E9lOCczVbndJaorzoCG8sVlB6MK?usp=sharing
Ошибка OLE DB или ODBC в PBI, ошибка в pwer BI Desktop при обновлении данных
 
Проблему решил, если будет кому интересно как, то пишите
Ошибка OLE DB или ODBC в PBI, ошибка в pwer BI Desktop при обновлении данных
 
Добрый! Появилась такая ошибка в PBI: "Ошибка OLE DB или ODBC в PBI" и "Загрузка была отменена из-за ошибки при загрузке предыдущей таблицы"
Ошибка появляется при подключении данных к новой папке. При этом данные обновляются без проблем, скажем, в 3-х случаях их 5. Т.е., все источники данных стандартизированы и имеют одинаковый вид, код в PQ для обработки данных везде одинаковый, но в некоторых случаях вылетает такая ошибка при обновлении визуальных элементов.
Подскажите, может, кто встречался с подобной проблемой?
Изменено: Игорь Симановский - 12.04.2023 23:32:10
Прогнозирование продаж на конец месяца, Построение модели прогноза на основании динамики продаж
 
Вы совершенно правы, Прогноз по Вашей мере считается правильно. Огромное спасибо за красивое и лаконичное решение данной непростой задачки!
Прогнозирование продаж на конец месяца, Построение модели прогноза на основании динамики продаж
 
Цитата
написал:
Цитата
Успешно?
Добрый!
По городам все считается правильно, вот какой результат показывает по филиалу, отсортировал данные по столбцу "% ВП на 15 число" и то, что должно получиться отмечено желтым цветом. В интервале изменения параметра "% ВП на 15 число" от 10 до 20 пп среднее арифмит. величины "% ВП" в этом же интервале равно (39,34 + 83,30)/2 = 61,32
Получается, что формула не совсем корректно считает данный прогноз для филиала в целом

Прогнозирование продаж на конец месяца, Построение модели прогноза на основании динамики продаж
 
Цитата
, Спасибо! На выходных попробую Ваше решение
Прогнозирование продаж на конец месяца, Построение модели прогноза на основании динамики продаж
 
Файлик загрузил. В этой модели все правильно считается для городов, но для филиала прогноз считается не правильно
Изменено: Игорь Симановский - 17.03.2023 12:06:33
Прогнозирование продаж на конец месяца, Построение модели прогноза на основании динамики продаж
 
Сама задача описана в приложенном файле на странице Результат.
Есть данные: % вып.плана на середину каждого мес, % вып. плана на каждый мес, нужно подсчитать Прогноз, как среднее арифмитическое "% ВП" для заданного интервала изменения параметра "% ВП на 15 число". Например, Прогноз Продажи, равный 69,03% получился как среднее арифмитическое чисел "% ВП" диапазона изменения параметра "% ВП на 15 число" от 10% до 20% и так далее. Интервалы меняются каждые 10 пунктов. Данные отсортированы по параметру % вып. плана на середину мес
месяц% ВП на 15 число% ВППрогноз Продажи
май 21     29,37%96,93%                73,59%
янв 22     29,33%85,42%                73,59%
ноя 20     27,28%69,75%                73,59%
мар 23     26,15%26,15%                73,59%
окт 21     25,97%70,58%                73,59%
ноя 22     24,48%70,34%                73,59%
май 20     23,10%82,65%                73,59%
янв 21     22,42%86,94%                73,59%
янв 20     13,01%82,32%                69,03%
янв 23     11,91%75,66%                69,03%
мар 22     10,19%49,12%                69,03%
Изменено: Игорь Симановский - 16.03.2023 12:33:38
Страницы: 1 2 След.
Наверх