Как узнать количество дней между двумя датами при одинаковом идентификаторе? - PullRequest
0 голосов
/ 02 августа 2020

У меня есть таблица, которая содержит следующую информацию (пример)

ID     START          END
15234  01.05.2019.   13.05.2019
15234  24.05.2019.   28.05.2019
15234  22.06.2019.   26.06.2019
23456  04.04.2019    23.04.2019
23455  07.07.2019.   11.07.2019
23455  02.10.2019.   02.11.2019

Теперь я хочу узнать

  1. Если идентификатор в строках одинаковый
  2. И если да, если между начальными днями 120 дней
  3. Если между начальными днями 120 или меньше дней, я хочу подсчитать, сколько дней в среднем имеет идентификатор (например, у человека 3 разных rnet начальных и конечных дней - итого, три разных rnet количество дней в целом - мне нужно среднее

Какие dax Formulars вы рекомендуете мне использовать, чтобы получить это информация? Я новичок :)

С уважением Мария

1 Ответ

0 голосов
/ 03 августа 2020

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

Индекс столбца создан только для сортировки данных.

enter image description here

Steps for achieving your required output:

Step-1: In Power Query Editor, first create a custom column to generate the actual date formatted value from START. The script is as shown in the image below-

enter image description here

Step-2: Change the data type of newly created column as date time and the output will be as below-

enter image description here

Step-3: Now order column ID first ascending and then newly added column"converted_start+date" ascending as well.

Step-4: Now add an index column as shown in the picture below-

введите описание изображения здесь

Шаг 5: Теперь вернитесь к отчету, нажав кнопку «Применить и закрыть».

Шаг 6: Создать теперь измерьте значение date_difference с помощью этого кода ниже -

date_difference = 

VAR current_id = your_table_name[ID]
VAR current_start_date = your_table_name[converted_start_date]

VAR prev_row_start_date = 
CALCULATE(
    MAX(your_table_name[converted_start_date]),
    FILTER(
        your_table_name,
        your_table_name[ID] = current_id 
            && your_table_name[converted_start_date] < current_start_date
    )
)

RETURN DATEDIFF(
    prev_row_start_date,
    your_table_name[converted_start_date],
    DAY
)

Надеюсь, это поможет!

...