Поделиться через


Добавление меры во времени в отчет Power BI

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Время, которое рабочий элемент тратит в определенном состоянии рабочего процесса или ряде состояний, является важным аспектом для понимания эффективности. Мини-приложения "Время цикла" и "Аналитика времени свинца" предоставляют некоторые меры времени в состоянии. Однако эти мини-приложения могут не иметь нужный уровень детализации.

В этой статье содержатся рецепты с помощью выражений анализа данных (DAX) для оценки времени, затраченного рабочими элементами в сочетании состояний. В частности, вы узнаете, как добавить следующие меры и вычисляемые столбцы в отчеты Power BI и использовать их для создания различных диаграмм трендов. Все поля являются вычисляемыми столбцами, кроме первого из перечисленных.

Count Description
Количество рабочих элементов (мера) Вычисляет количество отдельных рабочих элементов на основе последней записи рабочего дня для рабочего элемента
Порядок сортировки состояния Добавляет столбец, используемый для сортировки состояний рабочих процессов на основе последовательности категорий состояния
Дата назад Добавляет столбец, вычисляющий предыдущую дату на основе столбца Date
Дифф даты в днях Добавляет столбец, вычисляющий количество дней между столбцами Date и Date Previous
Последний день в состоянии Добавляет столбец, определяющий, является ли значение даты последним днем, когда рабочий элемент был в состоянии
Время состояния в днях Добавляет столбец, вычисляющий количество дней, затраченных на рабочий элемент в каждом состоянии
Состояние назад Добавляет столбец, определяющий предыдущее состояние для каждой строки в таблице данных.
Изменено состояние Добавляет столбец, определяющий дату перехода рабочего элемента из одного состояния в другое
Поток состояния Добавляет столбец, иллюстрирующий поток состояния как рабочий элемент переходит с одного состояния на другое
Количество изменений состояния Добавляет столбец, вычисляющий количество рабочих элементов, переход с одного состояния на другое
Число изменений состояния — первое завершение Добавляет столбец, определяющий количество переходов рабочего элемента в состояние "Завершено" в первый раз. Другими словами, при переходе из любого другого состояния в состояние "Завершено".
Число изменений состояния — последнее предложение Добавляет столбец, определяющий, был ли рабочий элемент в предлагаемом состоянии ранее после перехода в более поздней версии.
Время перезапуска состояния в днях Добавляет столбец, вычисляющий дни рабочего элемента, потраченного в состоянии перезапуска
Время перерабочих состояний в днях Добавляет столбец, вычисляющий дни, которые рабочий элемент тратит в состоянии, отличном от завершенного

Внимание

  • При добавлении вычисляемого столбца или меры на примеры, показанные в этой статье, замените имя представления представления представления или таблицы данных в представлении аналитики. Например, замените имя представления активными ошибками.
    Снимок экрана: вкладка
  • Аналитика не поддерживает внутридневные редакции. Эти примеры имеют большую точность при использовании ежедневного интервала при ссылке на представление Аналитики.
  • Все внутренние или внутридневные (еженедельные или ежемесячные) редакции игнорируются вычислениями. Это может привести к непредвиденным результатам для определенных сценариев, таких как рабочий элемент, показывающий отсутствие времени "В процессе", когда рабочий элемент находится в состоянии "Выполняется" менее чем за день.
  • Агрегаты по умолчанию Power BI используются всякий раз, когда это возможно, а не меры по созданию.
  • Некоторые вычисления включают +0 , чтобы обеспечить включение числового значения для каждой строки вместо BLANK.
  • Возможно, потребуется пересмотреть некоторые определения вычисляемого столбца на основе состояний рабочего процесса, используемых проектом. Например, если в проекте используется новая, активная и закрытая вместо предлагаемого, "Выполняется" и "Завершено".
  • Столбец Date , упомянутый в этой статье, не является собственным столбцом в Azure DevOps; Это производный столбец, созданный в PowerBI для упрощения отчета о времени в состоянии . Этот столбец можно создать с помощью существующих столбцов, связанных с датой, например "Измененная дата" или "Дата изменения состояния".

Необходимые компоненты

Примечание.

Чтобы выполнить все меры времени в состоянии, описанные в этой статье, обязательно включите следующие поля в представления аналитики, Power Query или запрос OData: Созданная дата и категория состояния в дополнение к полям по умолчанию: Путь к области, назначенный пути, путь итерации, состояние, название, идентификатор рабочего элемента и тип рабочего элемента.

Кроме того, рекомендуется использовать представление аналитики на основе ежедневной детализации. Примеры в этой статье основаны на представлении Active Bugs Analytics, определенном в отчете о активных ошибках в Power BI, за исключением того, что выбрано 60 дней истории и ежедневной детализации. Определите также, хотите ли вы просмотреть завершенные или закрытые рабочие элементы.

Добавление меры счетчика рабочих элементов

Чтобы упростить быстрое создание отчетов, мы разработали представления Аналитики для работы с агрегатами по умолчанию в Power BI. Чтобы проиллюстрировать разницу между агрегированием по умолчанию и мерой, мы начнем с простой меры количества рабочих элементов.

  1. Загрузите представление Аналитики в Power BI Desktop. Дополнительные сведения см. в разделе "Подключение с помощью соединителя данных Power BI", "Подключение к представлению аналитики".

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

    Снимок экрана: вкладка

  3. Замените текст по умолчанию следующим кодом, а затем установите флажок.

    Work Items Count=CALCULATE(COUNTROWS ('View Name'),LASTDATE ('View Name'[Date]))
    

    Мера "Число рабочих элементов" использует CALCULATEфункции , COUNTROWSа LASTDATE также функции DAX, описанные далее в этой статье.

    Примечание.

    Не забудьте заменить имя представления именем таблицы для представления Аналитики. Например, здесь мы заменим имя представления активными ошибками.

    Снимок экрана: вкладка

Как мера отличается от вычисляемого столбца

Мера всегда вычисляет всю таблицу, в которой вычисляемый столбец зависит от одной строки. Дополнительные сведения см. в разделе "Вычисляемые столбцы и меры" в DAX.

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

Снимок экрана: страница отчета Power BI, две карточки с показателем количества рабочих элементов и свойством идентификатора рабочего элемента.

Чтобы получить правильное число, используя агрегирование по умолчанию, примените фильтр "Current " равно true. Этот шаблон применения фильтров к агрегации по умолчанию является основой для многих примеров, приведенных в этой статье.

Снимок экрана: страница отчета Power BI, количество отфильтрованных идентификаторов рабочих элементов.

Добавление порядка сортировки состояния

По умолчанию Power BI отображает состояния, отсортированные по алфавиту в визуализации. Это может быть вводя в заблуждение, если вы хотите визуализировать время в состоянии и предлагаемое отображается после выполнения. Следующие шаги помогут устранить эту проблему.

  1. Убедитесь, что поле категории состояния включено в представление "Аналитика". Это поле включается во все общие представления по умолчанию.

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

    Снимок экрана: вкладка

  3. Замените текст по умолчанию следующим кодом, а затем установите флажок.

    State Sort Order =  
    SWITCH (  
        'View Name'[State Category],  
        "Proposed", 1,  
        "InProgress", 2,  
        "Resolved", 3,  
        4  
    )  
    

    См. следующий пример.

    Снимок экрана: вкладка

    Примечание.

    Возможно, потребуется пересмотреть определение, если требуется более подробная степень, чем предоставляет категория состояния. Категория состояния обеспечивает правильную сортировку по всем типам рабочих элементов независимо от настроек состояния .

  4. Откройте представление данных и выберите столбец "Состояние".

  5. На вкладке "Инструменты столбцов" выберите "Сортировка по столбцам", а затем выберите поле "Порядок сортировки состояния".

    Снимок экрана: вкладка

Добавление даты назад

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

Date Previous  = 
PREVIOUSDAY ( 'View Name'[Date] )

Однако этот подход имеет две основные проблемы:

  • Он работает только для ежедневных периодов.
  • Он не обрабатывает пробелы в данных. Например, если рабочий элемент перемещается между проектами.

Чтобы устранить эти проблемы, вычисляемый столбец должен найти предыдущий день, сканируя поле Date .

Чтобы добавить столбец "Дата предыдущего вычисления", на вкладке "Инструменты таблиц" выберите "Создать столбец ", а затем замените текст по умолчанию следующим кодом и установите флажок.

Date Previous =
CALCULATE (
    MAX ( 'View Name'[Date] ),
        ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
        'View Name'[Date] < EARLIER ( 'View Name'[Date] )
)

В столбце Date Previous вычисляется три функции DAX, ALLEXCEPTMAXи EARLIERболее подробно описано далее в этой статье. Так как столбец вычисляется, он выполняется для каждой строки в таблице и при каждом запуске он имеет контекст этой конкретной строки.

Снимок экрана: табличная диаграмма Power BI и вкладка

Совет

В контекстном меню полей "Дата" и "Предыдущая дата" выберите "Дата" (вместо иерархии дат), чтобы просмотреть одну дату для этих полей.

Добавление диффа даты в днях

Дата назад вычисляет разницу между предыдущей и текущей датой для каждой строки. При использовании Diff даты в днях вычисляется количество дней между каждым из этих периодов. Для большинства строк в ежедневном моментальном снимке значение равно 1. Однако для многих рабочих элементов, имеющих пробелы в наборе данных, значение больше 1.

Внимание

Требуется, чтобы вы добавили в таблицу столбец Date Previous .

Важно рассмотреть первый день набора данных, где дата назад пуста. В этом примере мы присвоим этой строке стандартное значение 1, чтобы обеспечить согласованность вычислений.

На вкладке "Моделирование " выберите новый столбец и замените текст по умолчанию следующим кодом и установите флажок.

Date Diff in Days =
IF (
    ISBLANK ( 'View Name'[Date Previous] ),
    1,
    DATEDIFF (
        'View Name'[Date Previous],
        'View Name'[Date],
        DAY
    )
)

В этом вычисляемом столбце используются ISBLANK функции DAX, DATEDIFF описанные далее в этой статье.

Добавление является последним днем в состоянии

На следующем шаге мы вычисляем, является ли указанная строка последним днем, когда определенный рабочий элемент был в состоянии. Он поддерживает агрегирование по умолчанию в Power BI, который мы добавим в следующий раздел, где мы добавим столбец "Время состояния" в днях .

На вкладке "Моделирование " выберите новый столбец и замените текст по умолчанию следующим кодом и установите флажок.

Is Last Day in State = 
ISBLANK (CALCULATE (
    COUNTROWS ( 'View Name' ),
        ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
        'View Name'[Date] > EARLIER ( 'View Name'[Date] ),
        'View Name'[State] = EARLIER ( 'View Name'[State] )
))

Добавление времени состояния в днях

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

Внимание

Требуется, чтобы в таблицу был добавлен дифф даты и последний день в вычисляемых столбцах состояния.

На вкладке "Моделирование " выберите новый столбец и замените текст по умолчанию следующим кодом и установите флажок.

State Time in Days = 
CALCULATE (
    SUM ( 'View Name'[Date Diff in Days] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
    'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
    'View Name'[State] = EARLIER ( 'View Name'[State] )
) + 0

Создание диаграмм трендов с накоплением на основе времени состояния в днях

Для демонстрации столбца "Время состояния в днях " создаются следующие диаграммы столбцов с накоплением. На первой диаграмме показано количество рабочих элементов в каждом состоянии с течением времени.

Снимок экрана: диаграмма столбцов с накоплением Power BI и вкладка

Вторая диаграмма иллюстрирует тенденцию среднего дня, когда активные рабочие элементы находятся в определенном состоянии.

Снимок экрана: гистограмма с накоплением Power BI и вкладка

Добавление времени состояния в днях — последнее (последнее время в состоянии)

При оценке времени в состоянии для каждого рабочего элемента в таблице или при фильтрации по полю, например по пути области, не используйте столбец "Время состояния в днях " в агрегации. Агрегирование использует значение для каждого дня, когда рабочий элемент находился в состоянии. Например, если рабочий элемент был выполнен в понедельник и перешел в завершенный в четверг, время в состоянии составляет три дня, но сумма времени в днях составляет шесть дней, 1+2+3что неправильно.

Добавление времени состояния в днях — последнее.

Чтобы устранить эту проблему, используйте время состояния в днях и примените фильтр "Последний день в состоянии" равно true. Он устраняет все исторические данные, необходимые для тренда, и вместо этого фокусируется только на последнем значении для каждого состояния.

Используйте время состояния в днях и примените фильтр

Добавление времени состояния в днях — выполняется

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

На вкладке "Моделирование " выберите новый столбец и замените текст по умолчанию следующим кодом и установите флажок.

State Time in Days - In Progress = 
CALCULATE (
    SUM ( 'View Name'[Date Diff in Days] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
   'View Name'[Date] <= EARLIER('View Name'[Date]),
   'View Name'[State] = "In Progress"
) + 0

Примечание.

Возможно, потребуется изменить определение на основе состояний рабочего процесса, используемых проектом. Например, проект, используемый в примерах в этой статье, использует состояние рабочего процесса "In Progress", однако процессы Agile, Scrum и CMMI обычно используют состояния "Активный" или "Зафиксирован" для представления работы. Общие сведения см. в разделе "Состояния рабочего процесса" и категории состояний.

На следующем рисунке показан эффект рассмотрения всех временных состояний для каждого существующего рабочего элемента (показан слева) и только тех рабочих элементов в определенном состоянии в заданном дне (показан справа).

Сравнение трендов среднего времени в состоянии

Время состояния в днях тенденции нескольких состояний

Анализ производительности в нескольких состояниях также возможен с помощью шаблона "Непрерывный". Однако этот подход работает только с диаграммой тренда.

На вкладке "Моделирование " выберите новый столбец и замените текст по умолчанию следующим кодом и установите флажок.

State Time in Days - Working States = 
CALCULATE (
    SUM ( 'View Name'[Date Diff in Days] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
   'View Name'[Date] <= EARLIER('View Name'[Date]),
   'View Name'[State] IN { "Committed", "In Progress" }
) + 0

Примечание.

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

На диаграмме слева отображается объединенное среднее значение, а в правой части показано каждое отдельное состояние.

Сравнение трендов нескольких состояний

Получение времени состояния в днях— последние для нескольких состояний

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

Последнее время в штатах

Добавление состояния назад

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

Внимание

Требуется, чтобы вы добавили в таблицу столбец Date Previous.

На вкладке "Моделирование " выберите новый столбец и замените текст по умолчанию следующим кодом и установите флажок.

State Previous =
LOOKUPVALUE (
    'View Name'[State],
    'View Name'[Work Item Id], 'View Name'[Work Item Id],
    'View Name'[Date], 'View Name'[Date Previous]
)

Этот вычисляемый столбец использует описанный LOOKUPVALUEдалее в этой статье.

Первый LOOKUPVALUE параметр, 'View Name'[State]указывает, чтобы вернуть значение [State].

Следующий параметр 'View Name'[Work Item Id], 'View Name'[Work Item Id]указывает, что следует учитывать только строки с соответствующим идентификатором рабочего элемента, так как текущая строка должна рассматриваться.

А последний параметр 'View Name'[Date], 'View Name'[Date Previous]указывает, что дата возвращаемой строки должна иметь значение [Дата], соответствующее [предыдущей дате] текущей строки. В моментальном снимке только одна строка может соответствовать этим критериям.

Добавление состояния изменено

С помощью столбца State Previous можно пометить строки для каждого рабочего элемента, в котором произошел переход состояния. Вычисляемый столбец " Этап изменен" имеет два особых вопроса:

  • Пустые значения *State Previous, для которого задано значение "Дата создания " рабочего элемента
  • Создание рабочего элемента считается переходом состояния

Внимание

Требует, чтобы вы добавили в таблицу столбец State Previous.

На вкладке "Моделирование " выберите новый столбец и замените текст по умолчанию следующим кодом и установите флажок.

State Changed =
IF (
    ISBLANK ( 'View Name'[State Previous] ),
    'View Name'[Created Date].[Date] = 'View Name'[Date],
    'View Name'[State Previous] <> 'View Name'[State]
)

Вычисляемый столбец — это логическое значение, определяющее, является ли строка переходом состояния. Используя Not Equal To оператор, вы правильно перехватываете строки, в которых предыдущее состояние не соответствует текущему состоянию, что означает, что сравнение возвращает значение True, как ожидалось.

Добавление потока состояния

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

Внимание

Требует, чтобы вы добавили в таблицу вычисляемые столбцы "Состояние назад" и "Изменено состояние".

На вкладке "Моделирование " выберите новый столбец и замените текст по умолчанию следующим кодом и установите флажок.

State Flow = 
IF([State Changed], [State Previous], [State]) & " => " & [State]

Добавление количества изменений состояния

При переходе на более сложные меры необходимо иметь представление общего количества изменений состояния для сравнения строк данных для заданного рабочего элемента. Мы получаем представление путем добавления вычисляемого столбца "Число изменений состояния".

Внимание

Требуется, чтобы вы добавили в таблицу вычисляемый столбец " Изменено состояние".

На вкладке "Моделирование " выберите новый столбец и замените текст по умолчанию следующим кодом и установите флажок.

State Change Count = 
CALCULATE (
    COUNTROWS ( 'View Name' ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
    'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
    'View Name'[State Changed]
) + 0

Добавление количества изменений состояния — время последнего предлагаемого и времени перезапуска состояния в днях

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

Примечание.

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

На вкладке "Моделирование " выберите новый столбец , а затем замените текст по умолчанию следующим кодом и установите флажок.

State Change Count - Last Proposed = 
CALCULATE (
    MAX ( 'View Name'[State Change Count] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
    'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
    'View Name'[State] = "Proposed"
)

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

На вкладке "Моделирование " выберите новый столбец и замените текст по умолчанию следующим кодом и установите флажок.

State Restart Time in Days = 
CALCULATE (
    SUM ( 'View Name'[Date Diff in Days] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
    'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
    'View Name'[State Change Count] < EARLIER('View Name'[State Change Count - Last Proposed] ),
    'View Name'[State] <"Proposed"
) + 0

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

Добавление времени повторного выполнения состояния в днях

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

  1. Создайте столбец "Число изменений состояния — первое завершение". Этот столбец отслеживает количество переходов рабочего элемента в состояние "Завершено" из любого другого состояния.

    State Change Count - First Completed =
    VAR CompletedState = "Completed"
    RETURN
    CALCULATE(
       COUNTROWS('YourTable'),
       FILTER(
           'YourTable',
           'YourTable'[State] = CompletedState
           && 'YourTable'[State Change Date] = MIN('YourTable'[State Change Date])
       )
    )
    
  2. На вкладке "Моделирование " выберите новый столбец и замените текст по умолчанию следующим кодом и установите флажок.

    State Rework Time in Days = 
    IF (
        ISBLANK ( 'View Name'[State Change Count - First Completed] ),
        0,
        CALCULATE (
            SUM ( 'View Name'[Date Diff in Days] ),
            ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
            'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
            'View Name'[State Change Count] <= EARLIER ( 'View Name'[State Change Count - First Completed] ),
            'View Name'[State] IN {"Completed", "Closed", "Cut" } = FALSE()
        ) + 0
    )
    

    Примечание.

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

функций DAX;

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

Function Description
ALLEXCEPT Удаляет все фильтры контекста в таблице, кроме фильтров, примененных к указанным столбцам. По сути, ALLEXCEPT ('View Name'', 'View Name'[Work Item Id]) уменьшает количество строк в таблице до тех, которые используют тот же идентификатор рабочего элемента, что и текущая строка.
CALCULATE Эта функция является основой почти для всех примеров. Базовая структура — это выражение, за которым следует ряд фильтров, применяемых к выражению.
COUNTROWS Эта функция COUNTROWS ( 'View Name' )просто подсчитывает количество строк, оставшихся после применения фильтров.
DATEDIFF Возвращает количество границ интервалов, пересекаемых между двумя датами. DATEDIFF Вычитает дату назад из даты , чтобы определить количество дней между ними.
EARLIER Возвращает текущее значение указанного столбца во внешнем проходе оценки указанного столбца. Например, 'View Name'[Date] < EARLIER ( 'View Name'[Date] ) дополнительно уменьшает набор данных только на те строки, которые произошли до даты текущей строки, на которую ссылается EARLIER функция. EARLIER не ссылается на предыдущие даты; он специально определяет контекст строки вычисляемого столбца.
ISBLANK Проверяет, является ли значение пустым и возвращает значение TRUE или FALSE. ISBLANK вычисляет текущую строку, чтобы определить, имеет ли дата назад значение. Если это не так, инструкция If задает значение Date Diff в днях 1.
LASTDATE Мы применяем LASTDATE фильтр к выражению, например LASTDATE ( 'View Name'[Date] ), чтобы найти последнюю дату во всех строках таблицы и исключить строки, которые не используют одну и ту же дату. С помощью таблицы моментальных снимков, созданной представлением аналитики, этот фильтр эффективно выбирает последний день выбранного периода.
LOOKUPVALUE Возвращает значение в result_columnName для строки, которая соответствует всем критериям, заданным search_columnName и search_value.
MAX Возвращает наибольшее числовое значение в столбце или между двумя скалярными выражениями. Для определения последней даты после применения всех фильтров мы применяем MAX ( 'View Name'[Date] ).