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

Страницы: 1 2 3 4 5 След.
PQ. Изменение гранулярности. Сумму квартала разложить по месяцам., Необходимо добавить в таблицу месяца.
 
Здравствуйте!

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



Прикладываю файл с готовым подключением.
Благодарю!
PQ. После JOIN и перед извлечением, присоединяемые данные необходимо дополнительно сопоставить.
 
Коллеги, добрый день!

Прошу помочь с решением задачи.
У меня имеются следующие таблицы:


Я использую JOIN, чтобы создать общую таблицу, где объединены данные по продажам и офисам.
Ключом для объединения является менеджер. В результате я получаю некорректное распределение городов, т.к. данные объединяются только по менеджеру, без учёта дат.



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

Необходимый результат:



Прикладываю файл примера с подключением.
Благодарю!  
Изменено: ivanka - 09.12.2021 12:07:38
DAX. Различные условия вычисления для разных месяцев квартала.
 
Здравствуйте!
Прошу помочь с решением задачи. Что-то я заблудился в 2-х соснах.

Условия задачи:
Имеется 2 сценария вычисления.
  • Первый сценарий - для прошедших месяцев квартала.
    Находим сумму по прошедшим месяцам и делим на 100.

  • Второй сценарий - для текущего месяца квартала.
    Находим сумму текущего месяца и добавляем 5000.
Результаты 2-х сценариев складываются.
Желательно оба сценария прописать в одной мере.
Т.е. одна мера должна вычислять значение за текущий квартал.

Модель подготовлена.
PQ. Замена значений в таблице 1 при совпадении с таблицей 2.
 
Здравствуйте!

Прошу помочь с изящным решением.
Задачу я уже решил через Join, условный столбец, удаление изменяемого столбца и т.д.

Уверен, что знатоки могут подсказать более интересное и компактное решение.
Спасибо!
 
PQ. Создание полей на основании разделителя в строках., Имеется поле, в котором находится несколько атрибутов, которые необходимо разделить на разные поля.
 
Здравствуйте!

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

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

Прошу помочь с решением. Возможно я не лучшим образом сформулировал тему.
Рассказываю. В Power BI необходимо построить таблицу из 3-х строк:
  1. Строка "Остаток" - подобное измерение имеется в таблице событий, сумму можно подсчитать в таблице событий.
  2. Строка "Долг" - подобное измерение имеется в таблице событий, сумму можно подсчитать в таблице событий.
  3. Строка "Разница" - подобного измерения нет в таблице событий, сумму можно подсчитать сложив "Остаток" и "Долг".

    Необходимый результат:


Я создал справочник, в котором появилось измерение "разница" и вся соответствующая иерархия:
Код
let
    // СОЗДАНИЕ 1-ГО СПРАВОЧНИКА
    Cправочник1 =       Table.SelectColumns(События, {"тип", "область", "город", "ключ"}),

    // СОЗДАНИЕ 2-ГО СПРАВОЧНИКА
    ФильтрСтрок =       Table.SelectRows(Cправочник1, each ([тип] = "остаток")),
    ЗаменаЗначений1 =   Table.ReplaceValue(ФильтрСтрок,"остаток","разница",Replacer.ReplaceText,{"тип"}),
    ЗаменаЗначений2 =   Table.ReplaceValue(ЗаменаЗначений1,"остаток","разница",Replacer.ReplaceText,{"ключ"}),
    Справочник2 =       ЗаменаЗначений2,

    // ОБЪЕДИНЕНИЕ СПРАВОЧНИКОВ
    ОбъедСправ =        Table.Combine({Cправочник1, Справочник2})
in
    ОбъедСправ

Написал следующую меру:
Код
Мера для таблицы = 

// вычисляем разницу 
VAR Difference = // разница между суммами
    CALCULATE(
        [Сумма],
        FILTER(
            ALL('Справочник'),
            'Справочник'[тип] = "остаток"
        )        
    )
    +
    CALCULATE(
        [Сумма],
        FILTER(
            ALL('Справочник'),
            'Справочник'[тип] = "долг"
        )
    )

// выводим значения правильно

VAR Context =
    IF(
        SELECTEDVALUE('Справочник'[тип]) = "разница",
        Difference,
        [Сумма]
    )

RETURN Context

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


Т.е. для измерения "разница" фильтра нет.
Не могу понять как сделать вычисление мерой.
Файлы примеров подготовлены.

Благодарю!
PQ. Фильтрация списка без преобразования в таблицу., Есть список, необходимо отфильтровать названия полей, которые содержат слово "Date".
 
Здравствуйте!

Прошу помочь с решением задачи.
Как фильтровать таблицу списком - я понял: Table.SelectRows(      source, each List.Contains(list_filter, [Код]))
Не могу понять как отфильтровать список не переводя его в таблицу. Я пробовал:
Код
let
    Источник =          Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    ИзменённыйТип =     Table.TransformColumnTypes(
                            Источник,{
                                {"Поле 1 Date", type date},
                                {"Поле 2", type text},
                                {"Поле 3  Date", type date},
                                {"Поле 4", type text}
                            }
                        ),
    СписокПолей =       Table.ColumnNames(ИзменённыйТип),
    СписокПолейФильтр = List.Select(
                            СписокПолей,
                            each {_, (t) => List.Contains(t, "Date")}
                        )

in
    СписокПолейФильтр


Благодарю!
PQ. Необходимо найти и удалить связку [текст и перенос строки]
 
Здравствуйте!

Прошу помочь с решением.
Имеется таблица, у которой в одной ячейке содержатся даты, текст, перенос строки: #(lf)



В [Поле 2], в первой ячейке после каждой записи содержится перенос строки.
Необходимо оставить только даты с перечислением через "; "

У меня возникли сложности с тем, чтобы удалить следующие сценарии:
   1. Текст + перенос строки - могу удалить только текст, а не связку
   2. Перенос строки как первая запись - не могу удалять перенос строки, т.к. использую его для замены на "; " Иногда помогает Trim.

Благодаря помощи формучан (ссылка, ссылка) я составил запрос на чистку записей от текста:
Код
let
    Источник =          Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    СписокПолей =       {"Поле 2", "Поле 3"},
    УдалениеТекста =    Table.TransformColumns(
                            Источник,
                            List.Transform(
                                СписокПолей,
                                each {_, (t) => Text.Remove(
                                                    t,{
                                                        "А".."я",
                                                        "A".."z",
                                                        "(",
                                                        ")",
                                                        "ё"
                                                    })
                                    }
                            )
                        )
in
    УдалениеТекста


Результат:



После того, как я заменяю #(lf) на "; " - я получаю "; ; "

Благодарю!
PQ. Text.Trim () для списка полей., Необходимо не перечислять действие для каждого поля, а передать список полей где необходимо выполнить действие.
 
Здравствуйте!

Прошу помочь с решением задачи. Уверен, что для знатоков она крайне проста, но я не вижу решения.

Дано:
1. Таблица с большим количеством полей (условно).
2. Список полей

Необходимо:
Выполнить запрос таким образом, чтобы не писать {"Поле 2", Text.Trim, type text} для каждого поля.

Код
let
    Источник =      Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    СписокПолей =   {"Поле 2", "Поле 3", "Поле 4"},
    TrimФункция =   Table.TransformColumns(
                        Источник,{
                            {"Поле 2", Text.Trim, type text},
                            {"Поле 3", Text.Trim, type text},
                            {"Поле 4", Text.Trim, type text}
                        }
                    )
in
    TrimФункция



Прикладываю файл примера с подготовленным запросом.
Изменено: ivanka - 14.04.2021 08:47:32
PQ. Text.Split() без добавления нового столбца., Необходимо применить функцию к текущему полю, а не создавать новый.
 
Здравствуйте!

Прошу помочь с решением задачи.
Дана таблица, где в некоторых полях ячейка содержит 2 записи: 25.11.2018; 26.11.2018
Я применяю Text.Split([Поле 2], ";")) чтобы создать список значений.

Код
    #"Добавлен пользовательский объект" = 
        Table.AddColumn(
            #"Измененный тип", 
            "Поле 2. Список",
            each Text.Split([Поле 2], ";"))


Результат работы функции меня устраивает. Но мне не нравится сценарий, где я каждый раз создают новое поле. Если у меня 20 полей, то я создам 20 новых полей с помощью Text.Split([Поле 2], ";")) и удалю старые 20.

Хотелось бы просто заменить текущее поле. Или ещё лучше - одним шагом обработать несколько полей.

Прошу подсказать как это сделать. Прикладываю файл примера с подготовленным запросом.
Благодарю!
Изменено: ivanka - 13.04.2021 15:41:59
PQ. Применение функций к определённому списку полей., В параметры функции Table.TransformColumnTypes необходимо передать список полей, а не перечислять поля.
 
Здравствуйте!

Прошу помочь с решением задачи.
У меня есть таблица "Данные" с 21-м полем. В этой таблице я оставил только те поля, которые имеются в списке "Список полей".
Т.е. выполнил следующий запрос:
Код
ФильтрацияПолей = Table.SelectColumns(Источник,СпискоПолей)


Вопрос:
Как применить аналогичный сценарий к функции Table.TransformColumnTypes (например).
Я выполняю следующий запрос:
Код
    ИзменениеТипаДанных = 
        Table.TransformColumnTypes(
            ФильтрацияПолей,
            СпискоПолей, 
            type text
        )

Получаю ошибку.

Прикладываю файл примера с готовыми запросами.
PQ. Table.ReplaceValue для выборочной замены значений в рамках одного шага / действия., в Table.ReplaceValue необходимо передать результат выражения, а не таблицу.
 
Здравствуйте!

Прошу помочь с решением задачки. Для опытных по "M" задача очень простая (уверен).
Необходимо создать "составной ключ" из 3-х полей без лишних шагов.

Даны поля:
  • Дата 1 - необходимо удалить точки между цифрами
  • Дата 2 - аналогично
  • Код - точки необходимо оставить.
Сейчас я могу сделать так:
  1. Объединить поля [Дата 1 ] и [Дата 2]
  2. У полученного поля заменить все точки на ""
  3. Объединить полученное поле с полем [Код].
Хотелось бы обойтись без п. 2. и получить на выходе подобный результат: 01012021-31012021-11.15.7756.А
Сейчас я написал следующее:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Даты"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Дата 1", type date}, {"Дата 2", type date}, {"Код", type text}}),
    #"Ключ. Шаг 1" = Table.AddColumn(#"Измененный тип", "Ключ дат", each
        Text.From(Date.ToText([Дата 1])) &  // Для этого поля необходимо удалить все точки
        "-" &
        Text.From(Date.ToText([Дата 2])) &  // Для этого поля необходимо удалить все точки
        "-" &
        [Код]                               // Ничего менять не нужно
    ),
    #"Ключ. Шаг 2" = Table.ReplaceValue(#"Ключ. Шаг 1", ".", "", Replacer.ReplaceText, {"Ключ дат"})    // Удаляет точки везде
in
    #"Ключ. Шаг 2"

Как видите #"Ключ. Шаг 2" удаляет точки во всём поле и получается следующее: 01012021-31012021-11157756А
Хотелось бы что-то вроде:

Код
Table.ReplaceValue(
       Text.From(Date.ToText([Дата 1]).....

Т.е. вложить в Table.ReplaceValue() другую функцию.

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

Прошу помочь с решением задачи.
В модели данных присутствует таблица "справочник" SCD Менеджеры. В этой таблице появляются актуальные записи по менеджерам + остаются исторические записи. Важно сохранить историю.

Имеется следующая модель данных:



На основании таблицы  FACT Оплаты производится расчёт суммы: мера [Сумма Продаж]
При построении визуализаций, измерения из DIM Заказ корректно фильтруют [Сумма Продаж].
При построении визуализаций, измерения из SCD Менеджеры НЕ фильтруют [Сумма Продаж].



Необходимо:
Написать меру [Сумма Продаж], которая будет учитывать фильтры из SCD Менеджеры.
Пожалуй стоит учесть, что данных сильно много.
Решение необходимо на Power BI.
Допускаю, что одно из решений может быть через денормализацию (создание одной таблицы), но есть ещё одна таблица SCD, которую мне нужно будет учесть, поэтому, если можно решить только через меру - буду рад.

Прикладываю:
   1. Файл excel с тремя таблицами и с комментариями.
   2. Файл pbix


Благодарю!
Изменено: ivanka - 20.03.2021 17:49:41
PQ. Объединение значений двух вычислений через символ., Аналог CONCATENATE, СЦЕПИТЬ.
 
Здравствуйте!

Прошу помочь с решением не сложной задачи.
Необходимо в рамках одной строки выполнить 2 вычисления и сцепить результаты через " - ".
Я понимаю, что можно создать 2 столбца с результатами, а потом объединить, но хочется изящнее.

Условия:
Если в поле [Оборудование] содержится "Кран", то:
      СЦЕПИТЬ( [Год установки] - ГОД([Выпуск]); " - "; [Год снятия] - ГОД([Выпуск]))

Сейчас столбец вычисляется вот так:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Оборудование", type text}, {"Выпуск", type date}, {"Год  установки", Int64.Type}, {"Год снятия", Int64.Type}}),
    #"Условный столбец добавлен" = Table.AddColumn(
        #"Измененный тип", 
        "Пользовательский", 
        each if Text.Contains([Оборудование], "Кран") then [Год  установки] - Date.Year([Выпуск]) else null)
in
    #"Условный столбец добавлен"


Прикладываю пример.
Благодарю!  
Изменено: ivanka - 16.03.2021 20:43:55
DAX. Ограничение отображения информации в графике по дате., Необходимо ограничить вывод информации в график при помощи меры.
 
Здравствуйте!
Прошу помочь с решением задачи.

Дано:
Таблица "Отправленные предложения". Содержит информацию до конца февраля.
Таблица "Ответы на предложения". Содержит информацию до конца февраля.
Таблица "Календарь". Содержит информацию до конца года.
Мера Коэф.ответов:
Код
Коэф.ответов = 1 - DIVIDE([Кол-во ответов],[Кол-во отправленных предложений])
На основании меры строится график.
Из-за особенности меры, даже в те месяцы, когда не было отправленных предложений и ответов на предложения, мы в любом случае получаем значение = 1.
Т.о. в графике появляется кривая по тем месяцам, которые ещё не наступили.

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



В файле-примера всё готово.
Изменено: ivanka - 18.02.2021 11:10:15
DAX. Фильтрация результата вычисления, значениями из другой таблицы без связи., фильтровать средние значения.
 
Коллеги, здравствуйте!
Прошу помочь с решением задачи. Перебрал много вариантов, не подходят.


ДАНО:
Есть файл .pbix со следующей моделью данных:



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

Есть мера "!Средний показатель", которая вычисляет среднее значение на уровне подразделения:
Код
!Средний показатель = 
var FilterValue = MAX('Фильтр по значению'[Значение])

var AverageValue = 
    AVERAGEX(
        'Ур 1_Подразделения',
        AVERAGEX(
            RELATEDTABLE('Показатели'),
            'Показатели'[Ср. показатель]
        )
    )

return AverageValue


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


НЕОБХОДИМО:
Отфильтровать подразделения, где средний показатель меньше значения установленного в фильтре.


Фильтр берёт значения из таблицы "Фильтр по значению". Данная таблица не связана с другими таблицами.
Считаю, что наложение фильтра на столбец 'Показатели' [Ср. показатель] - некорректное решение, т.к. это фильтрация исходных данных, а не результата вычисления меры.

Необходимо решение через меру.

Благодарю!
PQ. Поиск текста в HTML коде., Необходимо найти значения в тексте и вернуть в качестве таблицы.
 
Здравствуйте!

Есть пара страниц, с которых хотелось бы получать информацию по ценам.
Увы, "Добавление страницы с использованием примеров" в Power BI не работает на данном сайте.

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

Описываю текущие запросы:

ЗАПРОС № 1:
Страница: https://netology.ru/programs/datamarketolog
Необходимая информация в коде страницы:



Сейчас в PQ запрос выглядит следующим образом:



Я обратил внимание, что необходимая информация находится между: "">" и  ""


ЗАПРОС № 2:

Страница: https://netology.ru/programs/marketing-internet-magazinov
Необходимая информация в коде страницы:




Прикладываю файл примера с подключениями.  
Изменено: ivanka - 18.10.2020 14:25:17
PQ. Фильтрация: если текст содержит одно из значений из другой таблицы, то такая строка остаётся.
 
Здравствуйте!
Прошу помочь с решением задачи.

Имеется 2 таблицы. Одна в столбце содержит текст. Вторая содержит текст, который может содержаться в тексте первой таблицы. Необходимо фильтровать строки первой таблицы, если они содержат текст из второй таблицы. Предварительное извлечение цифр из столбца «номера» делать не нужно, т.к. это в примере можно предугадать разделители, а в оригинале всё сложнее.



Я пробовал следующую комбинацию, но на выходе получаю пустую таблицу:

Код
let
    Источник1 = Excel.CurrentWorkbook(){[Name="Факты"]}[Content],
    ТипДанных = Table.TransformColumnTypes(Источник1,{{"Номера", type text}, {"Описание", type text}}),
    Источник2 = Фильтры [Фильтры],                                                                          // добавляем список значений
    Filter = Table.SelectRows(ТипДанных, each List.ContainsAny({[Номера]}, Источник2))
in
    Filter
DAX. Количество дней между датами событий., Необходимо выполнить вычисление в столбце таблицы.
 
Здравствуйте!
Прошу подсказать решение задачи. Не получается решить задачу в таблице.

Имеется таблица "События" со следующими полями:
  1. дата
  2. событие 1
  3. событие 2
Необходимо создать вычисляемый столбец, где будет вычисляться сколько дней прошло с момента любого события.
По условию:
Код
Day = 
    SWITCH(
        TRUE(),
        [событие 1] > 0, [дата],
        [событие 2] > 0, [дата],
        BLANK()
    )



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

Необходимый результат:

 
Изменено: ivanka - 09.10.2020 16:50:12
DAX. Фильтрация предыдущих кварталов по количеству дней в текущем квартале., сравнить текущий квартал (X дней) с предыдущими двумя за аналогичное количество дней.
 
Здравствуйте!
Прошу подсказать решение задачи.
Прикладываю файл с готовой моделью данных. В "!Меры" подготовлена мера "Сумма по кварталам".

Допустим сегодня 5 октября. Уже 5 дней на дворе 4-й квартал. Необходимо фильтровать сумму значений по кварталу 2 и 3 за 5 дней.
Т.е. берём во 2-м квартале 6 дней и суммируем. Аналогично с 3-м.
Т.о. сравниваем 4-й квартал за 5 дней, 3-й квартал за 5 дней, 2-й квартал за 5 дней.

Результат:
II кв. = 120'159 за 5 дней
III кв. = 113'650 за 5 дней
IV кв. = 145'537 за 5 дней
Количество вычисляемых дней определяется мерой "Дата".
PQ. Передача токена API в http-заголовке., авторизоваться на сайте через ключ для получения данных.
 
Здравствуйте!

Прошу помочь с решением задачи.
Мне необходимо отправить запрос API (пример):
Код
https://api.timepad.ru/v1/events.json?limit=20&skip=0&cities=Москва,Санкт-Петербург&fields=location&sort=+starts_at

Описание: http://dev.timepad.ru/api/first-request/

Чтобы получить ответ, необходимо передать токен "в http-заголовке Authorization". Я так понимаю, что важно использовать подобное:
--header "Authorization: Bearer 2a0bb1047f0d2eb8ea5e84..........................."
Как сделать "Authorization: Bearer" - не пойму.

Описание: http://dev.timepad.ru/api/oauth/#access_token=87107eade7ee4ffc9fc3a73d262e7a3a439aaf19

Я написал следующий запрос:
Код
= Web.Contents("https://api.timepad.ru/v1/events", [ApiKeyName="Authorization"])
Возвращает: "Expression.Error: Доступ к ресурсу запрещен."
Токен корректный. Свежий.

Спасибо!
Скрытый текст


Прикладываю пример файла.Токен: 9bc70cd80a813be59f3ac16b4773f5021edb0bdc
Изменено: ivanka - 24.09.2020 21:21:29
Сводная таблица. Вычисляемый объект. Значение прошлого месяца, В сводную таблицу необходимо добавить значения прошлого месяца
 
Здравствуйте!

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

Благодарю!

 
Изменено: ivanka - 19.09.2020 21:34:16
Умная таблица. Формула в заголовке столбца, Необходимо вычислять имя столбца для умной таблицы
 
Здравствуйте!
Прошу подсказать, имеется ли какой-то приём, чтобы при создании умной таблицы сохранить формулу в заголовке с столбца? Это необходимо, чтобы построить сводную таблицу с аналогичным названием столбца.

Дано:
Обычная таблица с формулой в заголовке

При преобразовании её в Умную таблицу, формула удаляется. Необходимо, чтобы имена столбцов вычислялись, чтобы в итоге они изменялись в сводной таблице.
Может быть это можно сделать при помощи "системного столбца".

В файле примера построил сводную таблицу.

Благодарю!

P.S.: без макросов, без PQ.
Изменено: ivanka - 19.09.2020 14:26:52
PQ. Строки с промежуточными итогами, Необходимо суммировать строки раздела
 
Здравствуйте!
Прошу помочь с решением задачи.

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



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

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

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

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

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

Благодарю!
Изменено: ivanka - 07.09.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 - 07.09.2020 10:27:12
PBI. Отображение информации в графике, только если выбран второй уровень.в таблице.
 
Здравствуйте!Прошу помочь с решением задачи.

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

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

Прикладываю примеры. PBI берёт данные из Excel на диске С.
Благодарю!
PQ. База данных в Power Query (таблица с историей)., Таблица, которая дополняется новыми данными, но НЕ перезаписывает полученные ранее
 
Здравствуйте!
Прошу помочь с решением задачи.

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

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


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


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



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

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

Благодарю!

P.S.: Почему-то представляю 2 таблицы. Одна содержит только актуальное обновление. Вторая, обращается к первой и забирает данные для фиксирования.
Возможно, тут потребуется некоторая последовательность запуска обновления, но это уже другой вопрос.  
Изменено: ivanka - 16.08.2020 20:51:09
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.08.2020 09:34:53 (Заменил файл примера. Скорректировал меру № 3.)
Страницы: 1 2 3 4 5 След.
Наверх