Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 След.
PQ. Строки с промежуточными итогами, Необходимо суммировать строки раздела
 
Здравствуйте!
Прошу помочь с решением задачи.

Необходимо складывать строки относящиеся к одному разделу. При этом, итоговая строка может называться просто "Итого" или иметь разные названия.
В файле примера имеется исходная таблица и пример результата:



Благодарю!
PQ. Из таблицы в матрицу, Необходимо перевернуть один столбец
 
buchlotnik, PooHkrd, благодарю!  
PQ. Из таблицы в матрицу, Необходимо перевернуть один столбец
 
Здравствуйте!

Прошу помочь сделать матрицу из таблицы.В примере есть исходные данные и необходимый результат.

Благодарю!  
PBI Report Server. Частота обновления данных
 
Здравствуйте!

Прошу знатоков подсказать, с какой частотой можно обновлять данные в PBI Report Server?
В настройках ограничений не встретил. На сайте Microsoft упомянута настройка, но не возможности по частоте обновлений.

Если есть ссылка на описание - буду благодарен.Было бы здорово увидеть официальное описание.

Благодарю!
Изменено: ivanka - 7 сен 2020 10:52:41
DAX. Вычислить количество дней между событиями по дате в одном столбце, Необходимо выполнить внутри существующей меры.
 
Здравствуйте!
Прошу помочь с решением задачи. Прилично времени потратил на подбор решения, но не получается.

P.S.: Знаю, что пожалуй не стоит решать без SUMX + FILTER, SUMMARIZE + FILTER, но эти решение мне более понятны, чем CALCULATE.

Дано:
  1. Таблица "Ученики"
  2. Таблица "ДДС"
  3. Таблица "Календарь"
  4. Мера "! Баланс счёта на конец дня"
  5. Мера "! Баланс счёта на конец дня + кол-во дней"
  6. Модель данных построена
Ученики разных школ, открыли счета в банке "Гринготтс". Ученики хранят сбережения в 3-х валютах.
Иногда ученики пополняют счёт, иногда снимают деньги. Если баланс положительный, то на него начисляется процент на остаток.

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

Пример:



Мера "! Баланс счёта на конец дня":
Код
! Баланс счёта на конец дня = 
var DDSMaxDate = MAX('ДДС'[Дата])

return
CALCULATE(
    SUMX(
------------------------------------------- Сборка таблицы со столбцами Дата, Клиент, Ставка %, Движение ДС -------------------------------------
            SUMMARIZE(  // Создаём таблицу
                FILTER(
                    'ДДС',
                    'ДДС'[Валюта] = "RUR" // Фильтруем таблицу по одной валюте
                ),
                'Календарь'[Date],  // Календарь из справочника
                'ДДС'[ID Ученика],  // Уникальный номер клиента
                'ДДС'[Ставка],  // Добавляем в таблицу процентную ставку по выбранной валюте
                'ДДС'[Сумма]  // Добавляем столбец со всеми движениями ДС
            ),
    [Сумма]), // Суммируем все движения ДС
------------------------------------------- Создаём конструкцию для подсчёта баланса на счёте на дату банковской операции ------------------------
    FILTER(
        ALLSELECTED('Календарь'),
        'Календарь'[Date] <= DDSMaxDate
    )
)



Мера "! Баланс счёта на конец дня + кол-во дней"
Код
! Баланс счёта на конец дня + кол-во дней = 
var DDSMaxDate = MAX('ДДС'[Дата])

return
CALCULATE(
    SUMX(
------------------------------------------- Сборка таблицы со столбцами Дата, Клиент, Ставка %, Движение ДС -------------------------------------
        SUMMARIZE(  // Создаём таблицу
             FILTER(
                'ДДС',
                'ДДС'[Валюта] = "RUR" // Фильтруем таблицу по одной валюте
            ),
            'Календарь'[Date],  // Календарь из справочника
            'ДДС'[ID Ученика],  // Уникальный номер клиента
            'ДДС'[Ставка],  // Добавляем в таблицу процентную ставку по выбранной валюте
            'ДДС'[Сумма]  // Добавляем столбец со всеми движениями ДС
        ),
            VAR DayQuantity =
                    IF(
                        ISBLANK('ДДС'[Дата]),
                        CALCULATE(
                            COUNTROWS('Календарь'),
                            FILTER(
                                'Календарь',
                                'Календарь'[Date] > 'ДДС'[Дата] && 'Календарь'[Date] <= MIN('ДДС'[Дата])
                            )
                        ),
                        1)
            RETURN DayQuantity
    DayQuantity * [Сумма]), // Суммируем все движения ДС
------------------------------------------- Создаём конструкцию для подсчёта баланса на счёте на дату банковской операции ------------------------
    FILTER(
        ALLSELECTED('Календарь'),
        'Календарь'[Date] <= DDSMaxDate
    )
)

В этой мере хотел встроить VAR внутри SUMX () (такой приём я видел).
Изменено: ivanka - 7 сен 2020 10:27:12
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
Цитата
DrillPipe написал:
Для возможности обновления данных требуется премиум подписка
Учитывая:

Цитата
ivanka написал:
статья на сайте Microsoft от 22.06.2020: "Добавочное обновление теперь доступно для Power BI Pro"  https://docs.microsoft.com/ru-ru/power-bi/admin/service-premium-incremental-refresh .  

Делаю вывод, что Добавочная загрузка через Потоки данных - это для небожителей.
Добавочная загрузка через файл PBI - доступно на Pro. Верно?
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
Цитата
Максим Зеленский написал:
Если дадите свой "погодный сайт", то можно поэкспериментировать.
Здравствуйте!
Создал запрос, который берёт прогноз погоды и добавляет к нему дату.
Создал поток данных. Добавил код в запрос. Поток данных запрос принял. Настроил параметры инкрементного обновления. И, казалось, что дело в шляпе, но... PBI Service выдал следующее: "Этот поток данных содержит сущности, для обновления которых требуется емкость Premium, в том числе связанные сущности, вычисляемые сущности и сущности с действующими параметрами добавочного обновления."

Можно это обойти? Я просто не пойму на что он ругается? (сейчас полетят камни...)

Запрос простой:
Код
let
    Источник = Text.FromBinary(Web.Contents("https://www.gismeteo.ru/weather-sankt-peterburg-4079/now/")),
    #"Извлеченная таблица из HTML" = Html.Table(Источник, {{"Column1", ".meteostation__title"}, {"Column2", ".__frame .unit_temperature_c"}, {"Column3", ".__frame .unit_temperature_f"}, {"Column4", ".unit_wind_m_s .meteostation__measure"}, {"Column5", ".unit_wind_mi_h .meteostation__measure"}, {"Column6", ".unit_wind_km_h .meteostation__measure"}}, [RowSelector=".meteostation"]),
    SourceTable = Table.SelectRows(#"Извлеченная таблица из HTML", each ([Column1] = "Санкт-Петербург (Пулково)")),
    #"Другие удаленные столбцы" = Table.SelectColumns(SourceTable,{"Column1", "Column2"}),
    AddDataTimeColumn = Table.AddColumn(#"Другие удаленные столбцы", "DateTimeUpdate", each DateTime.FixedLocalNow()),
    HistoryTable = AddDataTimeColumn,
    #"Вставленный текст после разделителя" = Table.AddColumn(HistoryTable, "Текст после разделителя", each Text.AfterDelimiter([Column2], "+"), type text),
    #"Переименованные столбцы" = Table.RenameColumns(#"Вставленный текст после разделителя",{{"DateTimeUpdate", "ДатаВремя"}, {"Column1", "Город"}, {"Column2", "+Прогноз"}, {"Текст после разделителя", "Градусы"}}),
    #"Переупорядоченные столбцы" = Table.ReorderColumns(#"Переименованные столбцы",{"ДатаВремя", "Город", "+Прогноз", "Градусы"}),
    #"Измененный тип" = Table.TransformColumnTypes(#"Переупорядоченные столбцы",{{"ДатаВремя", type datetime}, {"Градусы", type number}})
in
    #"Измененный тип"



Настройки обновления:


После попытки обновить данные, PBI Service, в настройках запроса добавил 2 функции:
Код
let
  RangeStart = #datetime(0001,01,01,00,00,00) meta [IsParameterQuery=true, List={}, Type="DateTime", IsParameterQueryRequired=true, Description="autogenerated_for_incremental_refresh"]
in
  RangeStart


и
Код
let
  RangeEnd = #datetime(9999,12,31,23,59,59) meta [IsParameterQuery=true, List={}, Type="DateTime", IsParameterQueryRequired=true, Description="autogenerated_for_incremental_refresh"]
in
  RangeEnd



А сам запрос PBI Service поправил следующим образом:
Код
let
  Источник = Text.FromBinary(Web.Contents("https://www.gismeteo.ru/weather-sankt-peterburg-4079/now/")),
  #"Извлеченная таблица из HTML" = Html.Table(Источник, {{"Column1", ".meteostation__title"}, {"Column2", ".__frame .unit_temperature_c"}, {"Column3", ".__frame .unit_temperature_f"}, {"Column4", ".unit_wind_m_s .meteostation__measure"}, {"Column5", ".unit_wind_mi_h .meteostation__measure"}, {"Column6", ".unit_wind_km_h .meteostation__measure"}}, [RowSelector = ".meteostation"]),
  SourceTable = Table.SelectRows(#"Извлеченная таблица из HTML", each [Column1] = "Санкт-Петербург (Пулково)"),
  #"Другие удаленные столбцы" = Table.SelectColumns(SourceTable, {"Column1", "Column2"}),
  AddDataTimeColumn = Table.AddColumn(#"Другие удаленные столбцы", "DateTimeUpdate", each DateTime.FixedLocalNow()),
  HistoryTable = AddDataTimeColumn,
  #"Вставленный текст после разделителя" = Table.AddColumn(HistoryTable, "Текст после разделителя", each Text.AfterDelimiter([Column2], "+"), type text),
  #"Переименованные столбцы" = Table.RenameColumns(#"Вставленный текст после разделителя", {{"DateTimeUpdate", "ДатаВремя"}, {"Column1", "Город"}, {"Column2", "+Прогноз"}, {"Текст после разделителя", "Градусы"}}),
  #"Переупорядоченные столбцы" = Table.ReorderColumns(#"Переименованные столбцы", {"ДатаВремя", "Город", "+Прогноз", "Градусы"}),
  #"Измененный тип" = Table.TransformColumnTypes(#"Переупорядоченные столбцы", {{"ДатаВремя", type datetime}, {"Градусы", type number}}),
  #"ПрогнозПогоды-D094D0B0D182D0B0D092D180D0B5D0BCD18F-autogenerated_for_incremental_refresh" = Table.SelectRows(#"Измененный тип", each DateTime.From([ДатаВремя]) >= RangeStart and DateTime.From([ДатаВремя]) < RangeEnd)
in
  #"ПрогнозПогоды-D094D0B0D182D0B0D092D180D0B5D0BCD18F-autogenerated_for_incremental_refresh"



Благодарю!
Изменено: ivanka - 24 авг 2020 20:01:03
DAX. Суммирование значений за определённый диапазон дат, Необходимо отфильтровать диапазон дат и суммировать значения
 
Максим Зеленский, благодарю! Всё отлично работает!
DAX. Суммирование значений за определённый диапазон дат, Необходимо отфильтровать диапазон дат и суммировать значения
 
Максим Зеленский, благодарю!
Я только что использовал:
Код
ОграничитьПоГоду = //необходимо, чтобы мера показывала -3 года
var MaxDate = MAX('КалендарьФильтр'[Date]) // находим максимальную дату
var MaxYear = YEAR(MaxDate) // находим максимальный год
var MinYear = MaxYear -3 // данные раньше этого года не показываем

return 
SUMX(
    FILTER(
        'Данные',
        'Данные'[Год] >= MinYear && 'Данные'[Год] <= MaxYear
    ),
    'Данные'[сумма]
)

Функционирует.

Вашу меру не получается приземлить в мой файл. Выдаёт только 2019 г.:

 
PBI. Отображение информации в графике, только если выбран второй уровень.в таблице.
 
Максим Зеленский, благодарю! Всё отлично работает!
DAX. Суммирование значений за определённый диапазон дат, Необходимо отфильтровать диапазон дат и суммировать значения
 
Максим Зеленский, DrillPipe, выше вы подсказали как выполнять вычисления если мы знаем крайнюю дату и делаем от неё отступ в прошлое.

Прошу подсказать решение для условия, где диапазон задаётся фильтром, при этом, мера должна выдавать результат за 3 года.
Т.е. в графике сравнивается 3 года по одинаковому диапазону.

Выбираем диапазон:



Получаем результат:



Это уже готово!
В модели данных я создал таблицу, которая содержит в себе дату и МесяцДень по типу: 11, 12, 31
Эту таблицу я поместил в фильтр.

Необходимо прописать ограничение на 3 года. Не получается.

Код
ОграничитьПоГоду = //необходимо, чтобы мера показывала -3 года
var MaxDate = MAX('КалендарьФильтр'[Date]) // находим максимальную дату
var MaxYear = YEAR(MaxDate) // находим максимальный год
var MinYear = MaxYear -3 // данные раньше этого года не показываем

return 
CALCULATE(
    SUM('Данные'[сумма])
)


Благодарю!
Изменено: ivanka - 24 авг 2020 15:10:23
PBI. Отображение информации в графике, только если выбран второй уровень.в таблице.
 
Здравствуйте!Прошу помочь с решением задачи.

На листе в PBI размещена визуализация "Матрица" и графики.
В матрице 2 столбца:
  1. СписокАктёров = Уровень 1
  2. СписокФильмов = Уровень 2
Необходимо, чтобы:
  • при выборе Актёра в круговой диаграмме ничего не отражалось,
  • при выборе Фильма отражалась диаграмма как "Окупаемость 1" на примере:
 
Диаграмма "Окупаемость" сейчас работает на данных из меры:
Код
Окупаемость = 
IF(
    HASONEVALUE('Фильмография'[Название фильма]);
    SUM('Фильмография'[Значение]);
    1

Если вместо "1" указать BLANK ( ), то диаграмма вообще не строится (диаграмма "Окупаемость 2").

Прикладываю примеры. PBI берёт данные из Excel на диске С.
Благодарю!
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
PooHkrd, Максим Зеленский, благодарю!
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
Цитата
Андрей VG написал:
Конфигурируете инкрементальную загрузку для этого запроса с учётом.
Андрей, Вы считаете, что для Power BI эту задачу можно решить только через инкрементальную загрузку? Это действительно единственный возможный вариант?
Каким-то образом в PQ можно эмитировать записанную таблицу? Т.е. чтобы запрос считывал её как таблицу в Excel (как в Вашем решении).  
Изменено: ivanka - 17 авг 2020 15:54:20
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
Цитата
Андрей VG написал:
Судя по вашему описанию - вы ничего не поняли.
Да, я не понял, что данное решение завязано на таблицу в Excel. В любом случае, оно для меня полезно.
Но требуется решение под Power BI.  
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
PooHkrd, да, с Power BI не работает.
Изменено: ivanka - 17 авг 2020 11:49:19
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
Цитата
Максим Зеленский написал:
Если дадите свой "погодный сайт", то можно поэкспериментировать.
Максим, такого сайта нет. Мне руководство озвучило гипотетическую ситуацию (звучала посложнее истории с сайтом погоды), которую я интерпретировал в таком вот виде. Если честно, то я и сам давно задавался вопросом о том, как создать таблицу с историей внутри Power BI.
Изменено: ivanka - 17 авг 2020 11:41:08
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
Андрей VG, работает! Андрей, благодарю Вас за решение.

Я думал, что код будет содержать функции объединения таблицы, какие-то элементы на сохранение предыдущего содержимого, что-то вроде:
  1. PQ подключается к источнику. Создаёт таблицу с датами и значениями = "Временная таблица".
  2. Вторая часть запроса проверяет "Временную таблицу" с Историческими данными по столбцу "дата" и если не находит совпадений (не находит 100%), то добавляет данные из временной таблицы в таблицу с Историческими данными.
Выходит, что
Код
result = Source & addLoadDateTime,
не позволяет таблице перезаписывать данные, так?

Я в восторге!!!
Изменено: ivanka - 17 авг 2020 12:12:13
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
Цитата
PooHkrd написал:
Учитывая вышенаписанное читайте  тут  и  тут .
Насколько я понимаю, "добавочное обновление" подразумевает наличие столбца с датой в источнике. В моей задаче такого столбца нет. Есть только статусы. Т.о. я считаю, что в моей задаче таблицу с "историческими данными" необходимо наполнять не посредством инкрементного обновления, где смысл сводится к тому, что бы не забирать данные, которые уже есть в таблице, а к алгоритму, который фиксирует, "делает снимки" данных (без дат) и фиксирует в таблице когда этот "снимок" был сделан.
Изменено: ivanka - 17 авг 2020 09:51:32
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
Цитата
Андрей VG написал:
Не думаю, что у ТС есть Pro Account
ТС - это....?
Функционал Power BI Pro я готов рассматривать.

Цитата
Андрей VG написал:
в обычном Power BI, насколько помню - нет пока подгрузки данных
PooHkrd, Андрей VG, статья на сайте Microsoft от 22.06.2020: "Добавочное обновление теперь доступно для Power BI Pro" https://docs.microsoft.com/ru-ru/power-bi/admin/service-premium-incremental-refresh.  
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
Андрей VG, здравствуйте! Благодарю!
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
Наброски решения, но через Excel: https://blog.jamesbayley.com/2018/04/23/power-query-how-to-load-only-fresh-rows-and-create-an-excel-history-table/
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
Здравствуйте!
Прошу помочь с решением задачи.

Представим, что не существует баз данных, и задачу необходимо решить через PQ (для Power BI).
Условия задачки:
Есть сайт с прогнозом погоды. Он выдаёт прогноз по дням, без даты (Источник данных.xlsx).
Наш файл (Пример. БД в PQ.xlsx) подключается к источнику 2 раза в день. Прогноз погоды уточняется 2 раза в день и может измениться.

Подключились в первый раз:


Подключились второй раз:


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



Функцию DateTime.ToRecord () я использовал для определения времени обновления отчёта.
Функцией DateTime.FixedLocalNow () я рассчитывал зафиксировать время.

Как сделать остальное - загадка.

Благодарю!

P.S.: Почему-то представляю 2 таблицы. Одна содержит только актуальное обновление. Вторая, обращается к первой и забирает данные для фиксирования.
Возможно, тут потребуется некоторая последовательность запуска обновления, но это уже другой вопрос.  
Изменено: ivanka - 16 авг 2020 20:51:09
DAX. Суммирование значений за определённый диапазон дат, Необходимо отфильтровать диапазон дат и суммировать значения
 
Максим Зеленский, DrillPipe, господа, вы шикарно разобрали задачу! Эти решения уже помогают мне и принесут пользу другим людям. Благодарю вас!
DAX. Суммирование значений за определённый диапазон дат, Необходимо отфильтровать диапазон дат и суммировать значения
 
DrillPipe, Благодарю за шикарное решение!
Microsoft не придумала, а вы придумали!)
Было бы намного проще, если в добавок к EOMONTH была бы EOQUARTER!
Изменено: ivanka - 12 авг 2020 18:23:34
DAX. Суммирование значений за определённый диапазон дат, Необходимо отфильтровать диапазон дат и суммировать значения
 
Максим Зеленский, DrillPipe,
подскажите пожалуйста, как решить аналогичную фильтрацию по Кварталу (найти квартал рассчитанной даты и установить диапазон -5 кварталов назад)?

Аналога EOMONTH для квартала нет.
Я использовал
Код
STARTOFQUARTER({DateWithTODAY})
и
Код
ENDOFQUARTER({DateWithTODAY})
но они не работают.
Просто указать номер квартала и выполнить фильтрацию по 'Данные'[Квартал] - не самая лучшая идея, т.к. необходимо учитывать ещё и год, который не фиксированный, а плавающий.

Код
+ 3. Сумма за 5 кварталов = 
VAR DateWithTODAY =
    CALCULATE ( [DateParameter], ALLSELECTED ( 'Календарь' ) )
VAR StartQuarter =
    STARTOFQUARTER({DateWithTODAY})

VAR EndQuarter =
    ENDOFQUARTER({DateWithTODAY})

return
CALCULATE(
    SUM( 'Данные'[сумма] ),
    KEEPFILTERS(
        DATESBETWEEN(
            'Календарь'[Date],
            StartQuarter - 4,
            EndQuarter 
        )
    )
)


Благодарю!  
Изменено: ivanka - 12 авг 2020 14:39:20
DAX. Суммирование значений за определённый диапазон дат, Необходимо отфильтровать диапазон дат и суммировать значения
 
Максим Зеленский, благодарю Вас!
Как-то странно получилось с мерой....

Код
DateParameter = 
MAXX(
    FILTER(
        'Данные',
        'Данные'[Месяц] = 3 && 'Данные'[Год] = 2020),
    'Данные'[дата])

Я не учёл контекст фильтров.... совсем забыл!
Благодарю за помощь!  
Изменено: ivanka - 12 авг 2020 08:46:50
DAX. Суммирование значений за определённый диапазон дат, Необходимо отфильтровать диапазон дат и суммировать значения
 
Максим Зеленский, DrillPipe, подскажите пожалуйста, как быть, если в качества параметра даты используется не TODAY(), а вычисление другой меры? У меня вычисления сбиваются.

Я вычислил дату:
Код
DateParameter = 
MAXX(
    FILTER(
        'Данные',
        'Данные'[Месяц] = 3 && 'Данные'[Год] = 2020),
    'Данные'[дата])


В мере "+ 1. Сумма за 5 дней. FILTER и MeasureDate" использовал её как источник даты:
Код
+ 1. Сумма за 5 дней. FILTER и MeasureDate = 
var DateWithTODAY = [DateParameter]

return
CALCULATE(
    SUM( 'Данные'[сумма] ),
    KEEPFILTERS( DATESBETWEEN( 'Календарь'[Date], DateWithTODAY - 4, DateWithTODAY ) )
)

В итоге вся таблица слетает.
Как преобразовать "DateParameter" внутри var, чтобы остальная часть меры работала корректно?

Я даже вот так сделал:
Код
+ 1. Сумма за 5 дней. FILTER и MeasureDate = 
var DateFromMeasure = [DateParameter]
var Day1 = DAY(DateFromMeasure)
var Mont1 = MONTH(DateFromMeasure)
var Year1 = YEAR(DateFromMeasure)

var DateConstruction = DATE(Year1, Mont1, Day1)

return
CALCULATE(
    SUM( 'Данные'[сумма] ),
    KEEPFILTERS( DATESBETWEEN( 'Календарь'[Date], DateConstruction - 4, DateConstruction ) )
)

но не работает. Не пойму в чём дело. TODAY (), мера DateParameter, и DATE() выдают даты в одинаковом формате, однако, именно дата из меры DateParameter ломает всё вычисление.


DateParameter - я использую в других мерах, где нет диапазонов дат и применяется фильтрация через FILTER - всё работает корректно. Поэтому саму меру вычисляющую дату менять не хочется.

Благодарю!  
Изменено: ivanka - 11 авг 2020 11:18:08
DAX. Суммирование значений за определённый диапазон дат, Необходимо отфильтровать диапазон дат и суммировать значения
 
Максим Зеленский, благодарю! Буду тестировать!

Цитата
Максим Зеленский написал:
но если прямо необходимо использовать конструкцию SUMX+FILTER
необходимости нет, просто я написал меру наиболее понятным для себя способом. Ваш вариант для меня более интересен.
DAX. Суммирование значений за определённый диапазон дат, Необходимо отфильтровать диапазон дат и суммировать значения
 
Здравствуйте!
Прошу подсказать корректные способы фильтрации диапазона по дате.

У меня есть 2 таблицы:
  1. Данные: Дата, Кол-во (выпущенных кирпичей)
  2. Календарь: Дата
Написаны следующие меры:
Код
1. Сумма за 5 дней. FILTER и TODAY = 
var DateWithTODAY = TODAY() // находим текущую дату

return
SUMX(
    FILTER(
        'Данные',
        'Данные'[дата] <= DateWithTODAY && 'Данные'[дата] >= DateWithTODAY -4
    ),
    'Данные'[сумма]
)
Эта мера выдаёт корректный результат.
Вопрос: каким образом можно в FILTER указывать таблицу "Календарь", а суммировать по 'Данные'[сумма]? RELATED во втором аргументе SUMX?

Код
2. Сумма за 5 месяцев. FILTER и TODAY = 
var DateWithCalculation = DATE(2020, 07, 15) // предположим, что это вычисленная дата, результат какой-то меры.

return
SUMX(
    FILTER(
        'Данные',
        'Данные'[дата] <= EDATE(DateWithCalculation, 0) && 'Данные'[дата] >= EDATE(DateWithCalculation, -4) 
        // необходимо захватывать весь месяц, т.е. весь июль и -4 месяца
    ),
    'Данные'[сумма]
)
Эта мера выдаёт НЕкорректный результат.
Вопрос: каким образом корректно передать в FILTER весь месяц а не 15.07.2020?

Код
3. Сумма за 5 дней. СALCULATE и DATESINPERIOD = 
var DateWithTODAY = TODAY() // находим текущую дату

return
CALCULATE(
    SUM('Данные'[сумма]),
    DATESINPERIOD(
        'Данные'[дата],
        DateWithTODAY,
        -4,
        DAY
    )
)
Эта мера не работает.
Вопрос: как устранить ошибку (см. визуал в файле-примере) и вычислять корректно?
Изменено: ivanka - 10 авг 2020 09:34:53 (Заменил файл примера. Скорректировал меру № 3.)
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 След.
Наверх