Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

calculate datediff column date using filters

hello, 

I need help using DAX.

Her is my problem: 

I have a table of operation and their date for multiple scenarios with column date and I want to do a datediff on this column using filters: 

Example of my data : 

ID_OPERATIONID_TYPE_SCENARIODATE_XXDATE_YY
1101/01/202302/01/2023
1202/01/202302/01/2023
1310/01/202310/01/2023
2111/01/202311/01/2023
2212/01/202312/01/2023
2313/01/202313/01/2023

I want to calculate for each operation the datediff (DATE_XX where ID_TYPE_SCENARIO =1 , DATE_XX where ID_TYPE_SCENARIO =2, DAY)

Same thing with the other date => for each operation the datediff (DATE_YY where ID_TYPE_SCENARIO =1 , DATE_YY where ID_TYPE_SCENARIO =2, DAY)

Thank you.

  • Anonymous's avatar
    Anonymous
    3 years ago

    I've found the solution , I created a table with : 

    Table =
    VAR xxxx =  
    SUMMARIZECOLUMNS(  
    'dwh BU'[LB_BU],
    'dwh OPERATION_SIMULATION'[CD_OPERATION],

    "datediff_XX", DATEDIFF (   CALCULATE ( FIRSTDATE(  'dwh OPERATION_SIMULATION'[DT_XX] ), 'dwh TYPE_SCENARIO'[LB_TYPE_SCENARIO] = "Premier validé" ),CALCULATE ( FIRSTDATE( 'dwh OPERATION_SIMULATION'[DT_XX] ), 'dwh TYPE_SCENARIO'[LB_TYPE_SCENARIO] = "Référence" ), DAY )  ,
    "datediff_YY", DATEDIFF (   CALCULATE ( FIRSTDATE(  'dwh OPERATION_SIMULATION'[DT_YY] ), 'dwh TYPE_SCENARIO'[LB_TYPE_SCENARIO] = "Premier validé" ),CALCULATE ( FIRSTDATE( 'dwh OPERATION_SIMULATION'[DT_YY] ), 'dwh TYPE_SCENARIO'[LB_TYPE_SCENARIO] = "Référence" ), DAY )  

    )  
    return xxxx
     
     

6 Replies

  • Anonymous ,
    Can you share sample data and sample output in table format? Or a sample pbix after removing sensitive data.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Sample data : 

       

      ID_OPERATIONID_TYPE_SCENARIODATE_XXDATE_YY
      1101/01/202302/01/2023
      1202/01/202302/01/2023
      1310/01/202311/01/2023
      2111/01/202321/01/2023
      2212/07/202312/03/2023
      2313/01/202313/07/2023

      output format is a table or Matrix with the folowing column :

      ID_OPERATIONdiff_date_XXDiff_DATE_YY
      110
      218250
  • Hello,

     

    You could add a column where you use this calclation column = Datediff( DATE_XX, DATE_YY, DAY )
    So you'll have a column based with the how much days for each row, then you can visualise it by ID operation and can see how many days per each operation.

    If I answered your question, please mark my post as solution, Appreciate your Kudos👍

    Follow me on Linkedin

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thank you for your reply.
      I don't want to calculate Datediff( DATE_XX, DATE_YY, DAY ) but using the same date column :
      Datediff( DATE_XX (where ID_TYPE_SCENARIO =1 ), DATE_XX (ID_TYPE_SCENARIO =2), DAY )

  •  

    Diff_xx = 
     VAR _OPERATION = 'Список1'[ID_OPERATION]
     VAR __SCENARIO = 'Список1'[ID_TYPE_SCENARIO]
     ВОЗВРАЩАТЬСЯ
         РАЗНИЦА ДАТ (
             ВЫЧИСЛИТЬ (
                 ВЫБРАННОЕЗНАЧЕНИЕ ('Список1'[DATE_XX]),
                 ФИЛЬТР (
                     ВСЕ ("Список1"),
                     'Список1'[ID_OPERATION] = _OPERATION
                         && 'Список1'[ID_TYPE_SCENARIO] = __SCENARIO - 1
                 )
             ),
             'Список1'[DATE_XX],
             ДЕНЬ
         )
    
    
     Разница_ГГ = 
     VAR _OPERATION = 'Список1'[ID_OPERATION]
     VAR __SCENARIO = 'Список1'[ID_TYPE_SCENARIO]
     ВОЗВРАЩАТЬСЯ
         РАЗНИЦА ДАТ (
             ВЫЧИСЛИТЬ (
                 ВЫБРАННОЕЗНАЧЕНИЕ ("Список1" [ДАТА_ГГ]),
                 ФИЛЬТР (
                     ВСЕ ("Список1"),
                     'Список1'[ID_OPERATION] = _OPERATION
                         && 'Список1'[ID_TYPE_SCENARIO] = __SCENARIO - 1
                 )
             ),
             'Список1'[DATE_YY],
             ДЕНЬ
         ) 

    https://dropmefiles.com/76kiC

     

  • Anonymous's avatar
    Anonymous
    Not applicable

    I've found the solution , I created a table with : 

    Table =
    VAR xxxx =  
    SUMMARIZECOLUMNS(  
    'dwh BU'[LB_BU],
    'dwh OPERATION_SIMULATION'[CD_OPERATION],

    "datediff_XX", DATEDIFF (   CALCULATE ( FIRSTDATE(  'dwh OPERATION_SIMULATION'[DT_XX] ), 'dwh TYPE_SCENARIO'[LB_TYPE_SCENARIO] = "Premier validé" ),CALCULATE ( FIRSTDATE( 'dwh OPERATION_SIMULATION'[DT_XX] ), 'dwh TYPE_SCENARIO'[LB_TYPE_SCENARIO] = "Référence" ), DAY )  ,
    "datediff_YY", DATEDIFF (   CALCULATE ( FIRSTDATE(  'dwh OPERATION_SIMULATION'[DT_YY] ), 'dwh TYPE_SCENARIO'[LB_TYPE_SCENARIO] = "Premier validé" ),CALCULATE ( FIRSTDATE( 'dwh OPERATION_SIMULATION'[DT_YY] ), 'dwh TYPE_SCENARIO'[LB_TYPE_SCENARIO] = "Référence" ), DAY )  

    )  
    return xxxx