Forum Discussion

DYY94's avatar
DYY94
Helper I
3 years ago

Duplicate rows by ID

Hello Community, 

 

  •  I want to duplicate rows by Code_ISIN for each dates.
  •  I want each date in a row with the same Code_ISIN. 

NB:  Dates it's a measure ! 

 

So I thought to convert the Measure 'dates' into column first ! 

 

Any Ideas ? 

 

This is my measure : 

 

dates = 
VAR str = SELECTCOLUMNS(BTA_Output,"d",BTA_Output[Maturite])&"-"&[MR/365]
VAR _date =
    FORMAT (SELECTCOLUMNS(BTA_Output,"d",BTA_Output[Maturite]), "yyyy/mm/dd" )
VAR _num =
    [MR/365] 
VAR _cal =
    "-"
VAR tmp =
    FILTER (
        ALL ( 'Date' ),
        YEAR ( [Date] )
            > YEAR ( _date ) - _num
            && YEAR ( [Date] ) < YEAR ( _date )
            && MONTH ( [Date] ) = MONTH ( _date )
            && DAY ( [Date] ) = DAY ( _date ) 
    )
VAR _a =
    CONCATENATEX ( tmp, [Date], "
" )
RETURN
    SWITCH ( TRUE (), _cal = "-", _a )

 

 

Output: 

 

 

 

 

 

 

Thanks ! 

2 Replies

  • Greg_Deckler's avatar
    Greg_Deckler
    Community Champion

    DYY94 You might be able to use GENERATE to do this as a calculated table. Hard to tell what you are trying to do here. Sorry, having trouble following, can you post sample data as text and expected output?
    Not really enough information to go on, please first check if your issue is a common issue listed here: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882

    Also, please see this post regarding How to Get Your Question Answered Quickly: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

    The most important parts are:
    1. Sample data as text, use the table tool in the editing bar
    2. Expected output from sample data
    3. Explanation in words of how to get from 1. to 2.

    • DYY94's avatar
      DYY94
      Helper I

      Hi Greg_Deckler , 

      Thanks for Answer ! 

       

      you can use the steps to understant my needs. 

       

      1- First create table date: 

       

      Table = CALENDAR(DATE(2022,1,1),DATE(2028,04,13))

       

       

       

      2- Create this measure. 

       

      dates =
      VAR str = "2028/04/13-5"
      VAR _date =
          FORMAT ( LEFT ( str, 10 ), "yyyy/mm/dd" )
      VAR _num =
          RIGHT ( str, 1 )
      VAR _cal =
          MID ( str, 11, 1 )
      VAR tmp =
          FILTER (
              ALL ( 'Table' ),
              YEAR ( [Date] )
                  >= YEAR ( _date ) - _num
                  && YEAR ( [Date] ) < YEAR ( _date )
                  && MONTH ( [Date] ) = MONTH ( _date )
                  && DAY ( [Date] ) = DAY ( _date )
          )
      VAR _a =
          CONCATENATEX ( tmp, [Date], "
      " )
      RETURN
          SWITCH ( TRUE (), _cal = "-", _a )

       

       

      this gave me this output when i replaced ( VAR str )  with my column maturite: 

       

       

      Now i just want split this date in rows with the same Code_ISIN.

       

      Hope you understand me.

       

      Thanks.