У меня есть таблица, содержащая следующие столбцы:
| 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)])))
Не уверен, что полностью понял логику, но попробуйте это как вычисляемый столбец:
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 часов, а вчера я добавил еще полчаса, то это считается новым запуском, если сегодня я не добавлю время для этой функции, тогда счетчик запусков должен отображать ноль на сегодня. Я надеюсь, что это имеет смысл
Для меня это не имеет смысла. Мой ответ дал ожидаемый результат для ваших выборочных данных. Не могли бы вы редактировать задать свой вопрос, чтобы показать некоторые более четкие примеры данных - четкий образец входных данных и ожидаемых результатов.
Я добавил небольшую часть данных
В основном логика выглядит так: 1. Сравните сумму часов между двумя датами на основе функции. 2. Если значение самой последней даты выше, чем предыдущая дата, считается как 1, иначе считается как ноль.
Разве это не то, что делает мой ответ?
Не в файле примера, который я добавил к своему ответу... Итак, в вашей модели данных что-то отличается от данных примера, которые вы разместили в своем вопросе.
По какой-то причине мне пришлось изменить формат даты, и тогда это сработало. Большое спасибо !!
во-первых, вам не хватает закрывающей скобки после "РАНЬШЕ('Таблица'[Дата]"