Существует ли формула Power Bi Dax для отображения результата на основе нескольких условий?

У меня есть таблица, содержащая следующие столбцы:

|       Feature       |       Date       |    Update | hours|
|---------------------|------------------|-----------|------|
|General              |2018-10-02        |V1         |0     |
|General              |2018-10-02        |V1         |0     |
|General              |2018-10-02        |V1         |0     |
|General              |2018-10-02        |V1         |0     |
|General              |2018-10-02        |V1         |0     |
|PvP                  |2018-10-02        |V1         |3     |
|PvP                  |2018-10-02        |V1         |2     |
|PvP                  |2018-10-02        |V1         |1     |
|PvP                  |2018-10-02        |V1         |1     |
|General              |2018-10-02        |V1         |0     |
|General              |2018-10-02        |V1         |7     |
|General              |2018-10-02        |V1         |0     |
|General              |2018-10-02        |V1         |0     |
|Visual               |2018-10-02        |V1         |7     |
|General              |2018-10-15        |V1         |0     |
|General              |2018-10-15        |V1         |0     |
|General              |2018-10-15        |V1         |0     |
|Visual               |2018-10-15        |V1         |7     |
|Visual               |2018-10-15        |V1         |2     |
|General              |2018-10-16        |V1         |1     |

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

Calculate the sum of minutes based on feature for each day and: For example if today's sum is higher than yesterday's, count as 1 run else count as zero.

Ниже приведен пример

|       Feature       |       Date       |    Update | hours|No of runs|
|---------------------|------------------|-----------|------|----------|
|General              |2018-10-02        |V1         |0     |1
|General              |2018-10-02        |V1         |0     |1
|General              |2018-10-02        |V1         |0     |1
|General              |2018-10-02        |V1         |0     |1
|General              |2018-10-02        |V1         |0     |1
|PvP                  |2018-10-02        |V1         |3     |1
|PvP                  |2018-10-02        |V1         |2     |1
|PvP                  |2018-10-02        |V1         |1     |1
|PvP                  |2018-10-02        |V1         |1     |1
|General              |2018-10-02        |V1         |0     |1
|General              |2018-10-02        |V1         |7     |1
|General              |2018-10-02        |V1         |0     |1
|General              |2018-10-02        |V1         |0     |1
|Visual               |2018-10-02        |V1         |7     |1
|General              |2018-10-15        |V1         |0     |0
|General              |2018-10-15        |V1         |0     |0
|General              |2018-10-15        |V1         |0     |0
|Visual               |2018-10-15        |V1         |7     |1
|Visual               |2018-10-15        |V1         |2     |1
|General              |2018-10-16        |V1         |1     |1

Счетчик запусков должен начинаться с 1 для каждой функции.

До сих пор я пытался использовать следующую формулу, но она дает неверную информацию:

No_of_runs = CALCULATE(COUNTA('table'[Feature]),Filter('Table','Table'[Feature]=EARLIER('Table'[Feature]) && 'Table'[Date] > EARLIER('Table'[Date] && 'Table'[Time Invested(hours)] > Earlier('Table'[Time Invested(hours)])))

во-первых, вам не хватает закрывающей скобки после "РАНЬШЕ('Таблица'[Дата]"

Ryan B. 09.04.2019 15:58
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
162
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не уверен, что полностью понял логику, но попробуйте это как вычисляемый столбец:

No_of_runs = 
VAR DateToday = 
    Table1[Date]
VAR MinutesToday = 
    CALCULATE ( 
        SUM ( Table1[Time Invested (hours)] ),
        FILTER ( 
            ALLEXCEPT ( Table1, Table1[Feature] ),
            Table1[Date] = DateToday
        )
    )
VAR MinutesYesterday = 
    CALCULATE ( 
        SUM ( Table1[Time Invested (hours)] ),
        FILTER ( 
            ALLEXCEPT ( Table1, Table1[Feature] ),
            Table1[Date] = DateToday - 1
        )
    )
RETURN 
    IF ( 
        MinutesToday > MinutesYesterday,
        1,
        0
    )

Обновлено: вот рабочий пример файла PBIX; https://pwrbi.com/so_55588315/

Приведенная выше формула отображает 0 запусков для всего столбца. Моя основная цель состоит в том, чтобы считать каждое добавление как новый запуск на ежедневной основе для каждой функции. Так, например, если 2 дня назад у меня было для функции x 10 часов, а вчера я добавил еще полчаса, то это считается новым запуском, если сегодня я не добавлю время для этой функции, тогда счетчик запусков должен отображать ноль на сегодня. Я надеюсь, что это имеет смысл

Adi Petrescu 09.04.2019 13:58

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

Olly 09.04.2019 14:00

Я добавил небольшую часть данных

Adi Petrescu 09.04.2019 15:37

В основном логика выглядит так: 1. Сравните сумму часов между двумя датами на основе функции. 2. Если значение самой последней даты выше, чем предыдущая дата, считается как 1, иначе считается как ноль.

Adi Petrescu 09.04.2019 16:11

Разве это не то, что делает мой ответ?

Olly 09.04.2019 16:24

Не в файле примера, который я добавил к своему ответу... Итак, в вашей модели данных что-то отличается от данных примера, которые вы разместили в своем вопросе.

Olly 09.04.2019 17:13

По какой-то причине мне пришлось изменить формат даты, и тогда это сработало. Большое спасибо !!

Adi Petrescu 10.04.2019 08:04

Другие вопросы по теме