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

Страницы: 1 2 3 4 5 След.
Сцепить Элементы Куба в MDX
 
Подскажите, пожалуйста, как добавить расчетное поле в Куб данных.
Для начала с простого - нужно соединить два поля текстовых.
Поля Артикул и Товар.
Какая должна быть формула?

Скриншон полей
Изменено: zrbite - 31.03.2025 17:36:07
Обработка ошибок и цикл в Power Query
 
Имею запрос к ОЗОН api.
Для возможности автообновлений, маскирую ссылки через RelativePath. Вроде в итоге работает, но!
Есть проблема:
Что ОЗОН не мгновенно генерирует файл.
Т.о. получаю ошибку. Вручную из Desktop обходится примитивно - пару раз нажал обновить - ссылка сформировалась.
Но для автообновления нужно сделать цикл на запрос, пока не получим ответ (либо как то иначе?)
Код
let
Source = 
   Json.Document(
       Web.Contents("https://api-seller.ozon.ru/v1/report/products/create",
       [Headers = [#"Content-Type"="application/json",#"Client-Id"=".......",#"Api-Key"="................."], 
   
        Content = Text.ToBinary("{
            ""language"": ""DEFAULT"",
            
            ""visibility"": ""ALL""
                        
                   
            }") 
        ] 
)),
    result = Source[result],
    code = result[code], //получили код сформированного отчета

//создаем запрос на получение файла
    Source2 = 
        Json.Document(
        Web.Contents("https://api-seller.ozon.ru/v1/report/info",
            [Headers = [#"Content-Type"="application/json",#"Client-Id"=".......",#"Api-Key"="..........................."], 
   
                Content = Text.ToBinary("{
                    ""code"": """&Text.From(code)&"""
                        
                   
                }") 
            ] 
        
)),
    ToTable = Record.ToTable(Source2),
    Value = ToTable{0}[Value],
    ToFile = Value[file],
    
    urlDWNLD = "https://cdn1.ozone.ru/", //стабильная часть ссылки
    PartOfText = Text.Middle(Text.From(ToFile), 22, 99),  //Динамическая часть ссылки

    Источник = Csv.Document(Web.Contents(urlDWNLD, [RelativePath=Text.From(PartOfText)])),


in
    Источник


Итого. На участке //code = result[code]
необходимо дождаться получения status: success и, собственно, кода сформированного запроса в строке code

Как модифицировать запрос, Evoke.After вроде не помог. Нужно именно цикл с отправкой запроса (с таймаутом 2-3 сек).

Вот возвращаемые метаданные на этапе формирования отчета ОЗОНом
Изменено: zrbite - 20.03.2025 18:40:52
PowerQuery применение RelativePath в сложном запросе к api
 
nilske, из Desktop работает и обновляется в любом виде (по прямо прописанному url, с url с переменными, в виде функции, в виде таблицы...).
Не работает с Портала Power BI:
При запросе вида как выше в стартовом сообщении возникает ошибка - "...динамические источники данных не обновляются в службе Power BI..."
При оборачивании переменных в Query в вид:
Код
let
    Источник = (Offset) => 
    let
    url = "http://192...13/BuhtaApi/data/GetDetailedTrips?begdate=20250101",
    Источник = Xml.Tables(Web.Contents(
        url,
        [
        Query = [enddate=Number.ToText(20250115), offset=Number.ToText(Offset), pageSize=Number.ToText(500)] //для теста текстом переменные
        , 
    Headers = [#"Content-Type"="text/xml",#"Authorization"="Bearer ey......Jws"]] //для теста прописываю текстом токен
)),
    Table = Источник{0}[Table]
    
in
    try
    Table
    otherwise "ОШИБКА" // Это надо чтобы потом удалить лишние запросы, выходящие за пределы кол-ва данных
    
in
    Источник
появляется ошибка
Цитата
Запланированное обновление отключено, так как по меньшей мере в одном источнике данных отсутствуют учетные данные.
Ок, есть проблема с авторизацией в url. Пытаюсь "Пропустить тестирование подключения" в настройке Учетных данных источников данных, но все равно
Цитата
Не удалось обновить учетные данные источников данных: Учетные данные, указанные для источника Web, недействительны. (Источник в http://19...3/BuhtaApi/data/GetDetailedTrips.)
Тип подключения Анонимный. Есть только обновляемый токен.

При этом если преобразовать Функция обратно в табличный запрос, то всё срабатывает:
Код
let
    url = "http://192...13/BuhtaApi/data/GetDetailedTrips?begdate=20250101",
    Источник = Xml.Tables(Web.Contents(
        url,
        [
        Query = [enddate=Number.ToText(20250115), offset=Number.ToText(100), pageSize=Number.ToText(500)] //для теста текстом переменные
        , 
    Headers = [#"Content-Type"="text/xml",#"Authorization"="Bearer ey......Jws"]] //для теста прописываю текстом токен
)),
    Table = Источник{0}[Table]
    
in
    try
    Table
    otherwise "ОШИБКА" 
Изменено: zrbite - 20.03.2025 11:48:37
PowerQuery применение RelativePath в сложном запросе к api
 
Опытным путем установил, что с помощью RelativePath и Query = [....] (для передачи параметров после "?") можно добиться автообновления для запроса в Таблицу. Но не работает, если облечь этот запрос в Функцию!
Т.е. передача аргумента (Offset) => всё портит.
Но это необходимо, т.к. необходим цикл из-за ограничения api на строки.

Ну, кто нибудь, ау!
PowerQuery применение RelativePath в сложном запросе к api
 
Уважаемые знатоки, продолжая попытки соединить api и автообновления через Веб портал PowerBI, нашел инфу, что проблему невозможности обновления сложносоставных url можно решить, используя RelativePath в функции Web.Contents()
Инфу проверил, да, работает. Но только на примитивной ссылке получилось.
У меня же ситуация сложная:
Имеется запрос к корпоративному api по выгрузке данных. Лимит 500, поэтому применяю схему: делаю таблицу на множество строк, каждая содержит столбец со смещением от 0 до ..... с шагом в 500.
Сделал функцию с запросом, которая принимает аргумент Смещение.
Вызываю функцию в таблицу. Итого получаю таблицу с вложенными таблицами (выгрузка с 0 по 500 строку, с 501 по 1000 и т.д.). Раскрываю все таблицы - получаю полную выгрузку.

Необходимо преобразовать код Функции, используя RelativePath

Код
let
    Источник = (Offset) => let //Это аргумент Смещение
    
    Источник = Xml.Tables(Web.Contents(
        "http://192....13/BuhtaApi/data/GetDetailedTrips?begdate=20250101&enddate="&Text.From(Date.ToText(DateTime.Date( DateTime.LocalNow() ), [Format="yyyyMMdd"]))&"&offset="&Number.ToText(Offset)&"&pageSize=500"        
        , 
    [Headers = [#"Content-Type"="text/xml",#"Authorization"="Bearer "&ПолучениеТокена]] //получаем токен из запроса токена
)),
    Table = Источник{0}[Table]
    
in
    try
    Table
    otherwise "ОШИБКА" // Это надо чтобы потом удалить лишние запросы, выходящие за пределы кол-ва данных
    
in
    Источник

Не могу понять как такой запрос разбить с помощью RelativePath, чтобы проверить, сможет ли эта схема автообновляться.
Автообновление Динамического источника данных (Яндекс API) Power BI
 
Цитата
написал:
Ошибка возникает потому, что функция Json.FromValue() уже возвращает значение типа Binary, но происходит попытка преобразовать его в Binary снова с помощью Text.ToBinary().
Да, я пробовал, но тогда не воспринимается параметр date1, хотя, насколько я понимаю, именно в таком формате нужно передавать в url.
Код
Required request parameter 'date1' is not present
Автообновление Динамического источника данных (Яндекс API) Power BI
 
Цитата
написал:
Content = Text.ToBinary(Json.FromValue(
               [
                   date1 = "2025-02-10",
                   date2 = "2025-02-15",
Спасибо, почти, но не пойму, именно Content нее верно указан
Код
Expression.Error: Не удается преобразовать значение типа Binary в тип Text.
Сведения:
    Value=[Binary]
    Type=[Type]

Вопрос так же не по теме:
Вы не подскажете, где можно query подтянуть в этой области - работа с api?
Столкнулись с необходимость, никто ничего не знает, как котята в потемках - очень непрягает) Прогеры тоже разводят руками.
А все "курсы" - это работа преобразованием данных.

Автообновление Динамического источника данных (Яндекс API) Power BI
 
Цитата
написал:
В Power Query можно использовать функцию Web.Contents() с параметрами RelativePath и Query,
Вот, смотрите, нашел запрос, который работает на автообновление
Код
let
    CreateLog = 
        Json.Document(Web.Contents("https://api-metrika.yandex.net/management/v1/counter/{мой счётчик}/logrequests/evaluate", 
      [
       Headers=
         [Authorization="OAuth {мой ключ}", 
          #"Content-Type"="application/x-yametrika+json"], 
       Query=
         [#"date1" = "2025-02-10", 
                    #"date2" = "2025-02-15", 
                    #"fields" = {"ym:s:clientID", "ym:s:counterUserIDHash", "ym:s:eventsProductEventTime", "ym:s:eventsProductType"}, 
                    #"source" = "visits"], 
       IsRetry=true
      ]
       ))
in
   CreateLog
Вот не могу понять, как url изменить, чтобы не статус получить, а сформировать и скачать этот отчет.
Автообновление Динамического источника данных (Яндекс API) Power BI
 
Подскажите как настроить автообновление отчета, использующего Яндекс API?

Ругается на Динамический источник данных, если действовать стандартным методом.

Так же происходит при настройке любого отчета с использованием api.

Лицензия Pro. шлюз к локальной машине подключен. Данные с локальных файлов, Кубов данных, сайтов, SQL серверов автообновляются без проблем.
В чем тут фишка, и как это обойти?
Не распространяется контекст на связанную таблицу Power BI
 
Подскажите, пожалуйста, в чем дело.
Общее описание: Есть некоторые товары (ТМЦ/Товар) со статистикой продаж и Остатками.  Так же есть на остатках модули для сборки этих ТМЦ. Каждый Модуль (Комплект) может использоваться для сборки нескольких Товаров.
Задача - распределить Остатки Модулей по Товарам пропорционально продажам соответствующих Товаров (учет внутри Комплекта, т.е. среди возможных к сборке Товаров).

Имеется 4 Таблицы источника:
ТМЦ Ост - Содержит остатки по Товарам, и одновременно основная таблица-справочник по Товарам
Модули Ост - Таблица с остатками Модулей
Продажи - таблица с продажами Товаров
Сборка - таблица с соответствием возможных вариантов сборки.

Делаю следующее:
Подтягиваю в таблицу Сборка Остатки по модулям из таблицы Модули Ост (расчетный столбец для удобства)
Считаю Меру "Пропорц Остаток"
Цитата
DIVIDE(CALCULATE(SUM('Продажи'[Продажи])), CALCULATE(SUM('Продажи'[Продажи]), ALL('Сборка'[Товар]))) * SUM('Сборка'[Ост Комплектов])
состоящую из первого множителя = доли продажи каждого Товара от продаж всех товаров, подходящих для этого Комплекта
и второго множителя = Остатку комплектующего

Формулы не всегда оптимальные, но исходный файл намного сложнее, содержит больше таблиц и т.д., логику эти формулы повторяют.
В файле описал проблему, продублирую:
Для примера в файле 2 визуализации. Нужно в табличную визуализацию подтянуть Товар из ТМЦ Ост и к нему подтянуть Остатки и рассчитываемые Пропорционально Продажам Товаров внутри Комплекта Остатки Модулей.

Остатки верно распределяются по Товару из таблицы Сборка. Но не распределяются на Товар из Таблицы ТМЦ Ост.
Хотя связь там двунаправленная 1:1
Изменено: zrbite - 28.02.2025 18:08:05
Пропорциональное распределение ограниченного остатка в Power BI
 
Прошу помочь с задачей:
Имеется некая Деталь и целый набор Изделий, которые можно из нее изготовить.
Есть остатки Детали (4 шт).
Нужно понять, сколько мы имеем потенциальных остатков Изделий (если собрать их из деталей), принято решение распределять остатки Детали пропорционально продажам Изделий.

Распределение посчитать то можно. Вот только, и в примере это видно, распределяется кол-во с округлением (понятно, что остатки - только целые числа), при этом теряется последняя единица остатки, если доля*остаток получается меньше 0,5.
В примере в таблице по 1 штуке распределено на Изделие1, 2, 3, ИТОГО 3 шт. Хотя у нас имеется 4 штуки Деталей.

Как это можно обойти, подскажите.
Изменено: zrbite - 20.02.2025 09:42:05
Сбой автообновления сементической модели на портале Power BI
 
Есть множество отчетов, которые обновляются через локальный шлюз с виртуальной машины.
В качестве источников используются и локальные файлы, и OLAP Куб, и api, и сайт, и SQL сервер, и api маркетплэйсов.

Периодически возникают последовательные отказы тех или иных источников (Куб на ремонте, сайт на ремонте, виртуальная машина вне сети вообще), а так же ошибки в данных (задваивающиеся ключи в справочниках например  :D ) до их исправления.
При нескольких (скольких?) отказах автообновление по расписанию семантической модели отключается.

Подскажите, это непреодолимо? Или можно как то отключить автоотключение автообновления? ))
Интеграция отчетов из Power BI на корп. портал
 
Господа, подскажите НЕ специалисту, без тех. деталей, а общей схемой.
Как можно интегрировать отчеты с портала PowerBI по api в веб интерфейс.

Беглые попытки моих коллег привели их к необходимости покупки Azure и дальше все слишком сложно, не разобрались.

Опишите пожалуйста схему такого процесса? Мы можем (в РФ) по api интегрировать отчеты? Сейчас интеграция происходит через айфрэймы, что признано небезопасным.
Power Query цикл на склеивание запрсов
 
Цитата
написал:
zrbite , сходите на  канал Ильи Назарова  в YT.
Спасибо Да, видимо это то, что нужно. Однако нашел это довольно непростым, нужно разбираться.

Если кому сможет помочь, я решил это так:
1) как советовал nilske, создал таблицу с количеством строк (определил опытным путем), заведомо выше, чем необходимое кол-во итераций. В строках просто цифры от 1 до N (итерации).
2) Создал в этой таблице столбец "Смещение" = Лимит*Итерация-Лимит. Т.о. на 1й итерации "Смещение" = 0, затем 200 и т.д.
3) Делаю целевой запрос, преобразую в функцию, в качестве аргумента передаю столбец "Смещение" из предыдущей таблицы.
Код
let
    Источник = (Offset) => let
    url = "http://...?begdate=20240401&enddate=20240430&offset="&Number.ToText(Offset)&"&pageSize=200",
    Источник = Xml.Tables(Web.Contents(url, 
    [Headers = [#"Content-Type"="text/xml",#"Authorization"="Bearer "&#"ПолучениеТокена"]] 
)),
    Table = Источник{0}[Table]
    
in
    try
    Table
    otherwise "ОШИБКА" // ЛИШНИЕ ЗАПРОСЫ
    
in
    Источник
На этом этапе важно поменять Ошибку в лишних запросах на какое то значение, которое потом можно отфильтровать. Отфильтровать саму ошибку не получилось.
4) В таблице с количеством итераций и смещениями из шага 2 Добавить столбец - Вызвать настраиваемую функцию, в качестве аргумента - столбец "Смещение".
На этом шаге получим таблицу с вложенными таблицами - ответами на каждую итерацию.
Часть итераций в конце возвращает ОШИБКА, т.к. данные закончились раньше. Фильтруем (удаляем) эти строки и только после этого раскрываем столбец.
5) Готово.

Способ не сам придумал, почерпнул из Ютуба сходный.

 
Power Query цикл на склеивание запрсов
 
Цитата
написал:
самый простой вариант - создать столбец со значениями для офсета
да, но сколько таких офсетов нужно? Это не известно.
Power Query цикл на склеивание запрсов
 
Добрый день,
Есть запрос с лимитом на выгрузку. Условия передаются параметрами url ссылки.
Код
let
url = "http://....?begdate=20240401&enddate=20240430&offset=0&pageSize=200",
    Источник = Xml.Tables(Web.Contents(url, 
    [Headers = [#"Content-Type"="text/xml",#"Authorization"="Bearer ......"]]
)),
    Table = Источник{0}[Table]
    
in
Table

Собственно Size=200.
Метаданных по таблице не приходит, чтобы узнать кол-во строк.
Необходимо сделать цикл по типу (как я вижу) выгружай пока в ответе строк 200 и более, каждый раз offset +200.
Попытался, но моих знаний не хватает.
Буду благодарен за помощь!

Power Query M подставление динамического результата запроса в другой запрос
 
Господа, пока я не пошел копать в другую сторону, подскажите, где я не прав, почему не работает:

Добавил в середину после получения resultid, перед обращением к GetResults функцию по типу ID=ID с отсрочкой исполнения (до 10 минут).
Все равно результат такой же, запрос не исполняется.
Код
Func = ()=>    
            let bodyResult =  bodyRes1
            in bodyResult,
    bodyRes = Function.InvokeAfter( ()=> Func(), #duration(0,0,10,0) ),
Power Query M подставление динамического результата запроса в другой запрос
 
Суть работы метода: 1) Запрашиваем генерацию(!) отчета по заданным в body параметрам, 2) Получаем ID сгенерированного отчета, 3) Запрашиваем по другой ссылке этот отчет, передавая в body полученный ID

Итого код такой на данный момент:
Код
let
    //запрос ID результата
    url = "http://...../GetTrips",
    body  = "{ ""from"": ""2024-05-01"",  ""to"": ""2024-05-31""}",
    
    Source = Json.Document(Web.Contents(url,[Headers = [#"Content-Type"="application/json"], Content = Text.ToBinary(body) ] )),
    resultId = Text.From(Source[resultId]),
   
    //запрос с резалтайди
    urlRes = "http://...../GetResult",
    
    bodyRes  = "{""resultid"":"& """" & resultId &""""& "}",

    SourceRes = Json.Document(Web.Contents(urlRes,[Headers = [#"Content-Type"="application/json"], Content = Text.ToBinary(bodyRes) ] )),
    result = SourceRes[result],
    ...преобразования полученных списков в таблицы.....
in
    #"Развернутый элемент Column1"

Проблема в том, что сервер не сгенерировал еще отчет на момент запроса.
Поэтому ID результата получаю, но самого результата еще нет.

Необходимо:
в моем понимании либо цикл While, либо банально таймаут какой то перед выполнением второго запроса GetResult.
Изменено: zrbite - 19.06.2024 10:37:36
Power Query M подставление динамического результата запроса в другой запрос
 
voler83,
Прошелся по шагам, да, запрос на итог не завершается, выдает результат Null, поэтому весь дальнейший код и вызывает ошибку.
А запрос имеет статус finished: FALSE

Очевидно запрос не успевает обработаться. Это значит, нужно прописать цикл для повторного запроса с тем же resultid пока не будет результата.

Тут мои полномочия всё пока, для меня это то было проблемой.

Можете подсказать, на каком этапе и как прописать цикл?
Power Query M подставление динамического результата запроса в другой запрос
 
voler83, добавил
Код
resultId = Text.From(Source[resultId]),
Код
и вот такое нагромождение

bodyRes  = "{""resultid"" :"& """" & resultId &""""& "}",

Сработало.

Но вот по итогу выдает очень странное сообщение:
Код
Expression.Error: Не удается применить доступ к полям в типе Null.
Сведения:
    Value=
    Key=tripsInfo
Power Query M подставление динамического результата запроса в другой запрос
 
Пожалуйста подскажите с синтаксисом.
Есть определенный метод подключения к базе. Суть в том, что сначала формируется запрос с параметрами, получается ответ в виде id результата, который подставляется в параметр нового запроса, и получается уже тело ответа с данными.

Как мне подставить в код второго запроса результат первого?
Код
let
    url = "http://..../GetTrips",
    body  = "{ ""from"": ""2024-05-01"",  ""to"": ""2024-05-31""}",
    
    Source = Json.Document(Web.Contents(url,[Headers = [#"Content-Type"="application/json"], Content = Text.ToBinary(body) ] )),
    resultId = Source[resultId],  //ТУТ ПОЛУЧАЕМ id РЕЗУЛЬТАТА

    //ЗАПРОС НА РЕЗУЛЬТАТ
    urlres = "http://.../GetResult",

    bodyRes  = "{""resultid"": "".......""}", // ВОТ ТУТ НЕОБХОДИМО ВСТАВИТЬ  resultId

    
    Sourceres = Json.Document(Web.Contents(urlres,[Headers = [#"Content-Type"="application/json"], Content = Text.ToBinary(bodyRes) ] )),
    result = Sourceres[result],
    
in
result

bodyRes  = "{""resultid"": "".......""}" нужно поменять на динамический результат предыдущего запроса.
Прописываю [resultid = resultId]
получаю ответ:

Expression.Error: Не удается преобразовать значение типа Record в тип Text.
Сведения:
   Value=
       resultid=...тут верный резалт айди...
   Type=[Type]
Подключение с CRM через REST API из Power Query
 
Может сможете подсказать уважаемые формучане,
Впервые пытаюсь подключиться к таблицам в базе по api из Power BI/Excel.

хранится в xml

При попытке подключения к таблицам, не требующим токены запрос проходит.
Код
= Xml.Tables(Web.Contents("http://192......Report1"))
При попытке передать токен в заголовках:
Код
= Xml.Tables(Web.Contents("http://192......Report2", [Headers=[Authorization="Bearer ТОКЕН"]]))
возвращает ошибки:
Неверные учетные данные, при попытке снова ввести токен через диалоговое окно :
Цитата
Expression.Error: Заголовок "Authorization" поддерживается только при анонимном подключении. Эти заголовки могут использоваться во всех типах проверки подлинности. Accept, Accept-Charset, Accept-Encoding, Accept-Language, Cache-Control, Content-Type, If-Modified-Since, Prefer, Range, Referer

В общем понятно, что я действую неверно, но не могу понять, где.
Пожалуйста, объясните нубу.
Игнорирование фильтра TOP N для меры RANKX
 
Решение и правда очень простое, замыленные глаза просто.
Код
IF( ISINSCOPE('Сотрудники1'[Фамилия И.О.]), //убираем отображение Ранга в Итоговой строке
    RANKX(ALL('Сотрудники1'), //Заменить ALLSELECTED на ALL
CALCULATE(
    SUM('Прибыль_по_151'[Прибыль по 151])
    ,FILTER('Даты','Даты'[Date].[Год] = 2024),ALL('Спр_Филиалы') ) //игнорирую фильтры по филиалам, тк ТОП нужен среди всех менеджеров
,,DESC,Dense)
)

Игнорирование фильтра TOP N для меры RANKX
 
Есть таблица со списком Менеджеров с продажами и с прибылью. Там же отображается Ранг Менеджера по прибыли среди всех менеджеров компании (игнорирование фильтра филиала).
Мне необходимо на визуализации отобразить ТОП 10 Менеджеров по уровню продаж, при этом нужно сохранить Ранг Менеджера по прибыли нечувствительным к ТОП.
Вот верный вариант БЕЗ фильтрации по ТОП10. Видно, что ТОП по продажам совершенно не равно ТОП по прибыли.
Первый скриншот.

Я использую фильтр визуализации "Ведущие N...".
После его применения накладывается контекст ТОП 10, Ранг по прибыли начинает считаться среди этих ТОП 10 по Отгрузкам.
Второй скриншот.

Нужно снять контекст фильтра ТОП 10. Кажется должно быть легко, но не могу сообразить.
Мера Ранга по прибыли следующая:
Код
IF( ISINSCOPE('Сотрудники1'[Фамилия И.О.]), //убираем отображение Ранга в Итоговой строке
    RANKX(ALLSELECTED('Сотрудники1'),
CALCULATE(
    SUM('Прибыль_по_151'[Прибыль по 151])
    ,FILTER('Даты','Даты'[Date].[Год] = 2024),ALL('Спр_Филиалы') ) //игнорирую фильтры по филиалам, тк ТОП нужен среди всех менеджеров
,,DESC,Dense)
)

Power BI формат отображения длительности
 
Добрый день,
Есть в Power BI модель с в т.ч. двумя столбцами "Дата начала" и "Дата конец".
Столбец "Длительность" считает через DATEDIFF разницу в часах.
Есть виджет таблица, в которой по разным срезам и разбивкам отображается медиана разницы между датами.
Обычно это от пары часов до нескольких дней.

Необходимо изменить отображение Длительности на формат  _d _ h _ m (дни часы минуты)

Функция FORMAT не помогает. Пробую и медиану по столбцу, и Меру MEDIANA.
Подскажите, что я делаю не так.
Спасибо.
Линейная Регрессия в Power BI
 
Есть задача сделать чувствительный к срезам прогноз значения по времени. Для начала линейная регрессия.

Нашел 2 варианта силами DAX:
1) LINEST(X) - вариант с расчетом таблицы с коэф-тами регрессии по набору данных. Получается сделать прогноз. Не получается прикрутить чувствительность к срезам страницы.
2) Через мат. формулы - расчет просто прямо в DAXе коэф-тов регрессии через переменные. НЕ получается сделать адекватный прогноз (если в уравнение регрессии подставлять даты из СправочникаДат (Календаря), а не из набора данных статистики, регрессия становится неадекватной). Зато прекрасно реагирует на все срезы.
Файл в приложении с обоими вариантами.

Пожалуйста, помогите, как сделать и прогноз, и чувствительность.  
Изменено: zrbite - 29.03.2024 11:40:25
Прогнозирование в Power BI с использованием расчетных значений
 
Подскажите, возможно ли реализовать в DAX прогноз будущего спроса на месяцы вперед, используя сам же прогноз более ранних месяцев как основу для прогноза более поздних.
Короче реализовать прогноз по экспоненц. сглаженной.
Например:
Продажи 2024.04 = 0,3 * СРЗНАЧ(Продажи2023.01:Продажи2023.03) + 0,7 * СРЗНАЧ(Продажи2024.01:Продажи2024:03)
Далее продажи 2025.04 = так же, но в основу уже ложатся рассчитанные значения из предыдущей строки.

Если нет.
Тогда посоветуйте, как посчитать какую то регрессию из имеющихся данных. Например в файле в приложении попытка сделать линейную регрессию через переменные - неудачная.
Исключить дату текущего месяца из расчета
 
Уважаемые форумчане,
Посчитал прогноз продаж в DAX через меру с переменными по экспоненциальной сглаженной:
Скрытый текст

в последнем разделе
Цитата
CALCULATE(SUM('Статистика продаж по клиентам'[Сумма продаж])/3, (DATESBETWEEN('Даты'[Date], MinDate, MaxDate)))
нужно добавить фильтр так, чтобы в расчетах НЕ учитывался текущий (незаконченный) месяц, тк это искажает картину.
Т.е. просто "отступить" на месяц назад нельзя, т.к. прогноз продлевается на много месяцев вперед, и текущий месяц не должен учитываться (должен игнорироваться) на каждом последующем месяце.

Справочник Дат = 'Даты'
Статистика Продаж = 'Статистика продаж по клиентам'
Power BI Отображение прогноза только на будущие даты
 
Уважаемые форумчане, я, наверное, туплю, помогите.
Посчитал прогноз продаж в DAX через меру с переменными по экспоненциальной сглаженной:
Скрытый текст

Но хочу, чтобы на графике Прогноз отображался только со следующего за текущем месяцем.
Как это сделать, ведь с Мерами довольно сложно работать, Calculate с filter не поможет.
Связи и кросс-фильтрация в PowerBI при многие ко многим
 
Помогите разобраться, пожалуйста,
имеется модель данных из 4-х таблиц: Организации (могут быть повторения из-за особенности и смысла самой выгрузки, не баг), Статистика продаж, Статистика командировок, и вспомогательная - справочник дат.

Между Организациями и Статистикой Продаж есть связь многие ко многим (по ключу Организации).

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

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

При однонаправленной связи (многие Организации ко многим Статистика Продаж) фильтрация не распространяется на Командировки, но тогда не получается получить кол-во организаций, по которым есть продажи (продажи <>0 с учетом даты из таблицы Статистика Продаж).

Мне казалось я могу локально включать "двунаправленность" в формуле. Но не могу вспомнить уже.
Либо я просто неверно построил схему и "тут уже ничего не исправить")).

Примера нет, сделать будет весьма трудно, надеюсь понятна проблема, кажется она элементарная.
Изменено: zrbite - 26.02.2024 19:32:26
Страницы: 1 2 3 4 5 След.
Наверх