Forum Discussion

Iamnvt's avatar
Iamnvt
Continued Contributor
6 years ago
Solved

Remove duplicate values after separator in Calculated Column

hi,

 

I need to use DAX calculate column function to remove the dupplicate value:

 

InputExpected Output
A, A, BA, B
B, B, CB, C

 

how to do this?

thanks

 

  • Hey Iamnvt ,

     

    in Power Pivot you are able to use the CALENDAR function as is described here:

    https://www.sqlbi.com/articles/generating-a-series-of-numbers-in-dax/

     

    Here is the DAX statement from above now using the function CALENDAR:

     

    output calendar = 
    
    var _in = 'Table'[input]
    var _inAsPath = SUBSTITUTE(_in , ", " , "|")
    var _inPathLength = PATHLENGTH(_inAsPath)
    var _T = DISTINCT(SELECTCOLUMNS(ADDCOLUMNS(SELECTCOLUMNS(CALENDAR(1 , _inPathLength), "_Value", INT(''[Date])), "@item", PATHITEM(_inAsPath , [_Value] , TEXT)) , "@@item", [@item]))
    return
    CONCATENATEX(_T ,  [@@item], ", ")

     

    Regards,

    Tom

3 Replies

  • Hey Iamnvt ,

     

    you can use this DAX to create a calculated column:

    output = 
    var _in = 'Table'[input]
    var _inAsPath = SUBSTITUTE(_in , ", " , "|")
    var _inPathLength = PATHLENGTH(_inAsPath)
    var _T = CONCATENATEX(DISTINCT(SELECTCOLUMNS(ADDCOLUMNS(GENERATESERIES(1 , _inPathLength) , "@PathItem" , PATHITEM(_inAsPath , [Value] , TEXT)) , "@@pahItme" , [@PathItem])), [@@pahItme] , ", ")
    return
    _T 

    This is how it looks like:

     

    • Iamnvt's avatar
      Iamnvt
      Continued Contributor

      TomMartens  thanks for the answer

       

      DAX in Power Pivot doesn't have GENERATESERIES function. 

      is there any other way around?

      • TomMartens's avatar
        TomMartens
        Super User

        Hey Iamnvt ,

         

        in Power Pivot you are able to use the CALENDAR function as is described here:

        https://www.sqlbi.com/articles/generating-a-series-of-numbers-in-dax/

         

        Here is the DAX statement from above now using the function CALENDAR:

         

        output calendar = 
        
        var _in = 'Table'[input]
        var _inAsPath = SUBSTITUTE(_in , ", " , "|")
        var _inPathLength = PATHLENGTH(_inAsPath)
        var _T = DISTINCT(SELECTCOLUMNS(ADDCOLUMNS(SELECTCOLUMNS(CALENDAR(1 , _inPathLength), "_Value", INT(''[Date])), "@item", PATHITEM(_inAsPath , [_Value] , TEXT)) , "@@item", [@item]))
        return
        CONCATENATEX(_T ,  [@@item], ", ")

         

        Regards,

        Tom