Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Unique value Index (duplicates are same)

How would I create a unique value index with Dax code? I am in the process of creating a ragged heirachy using a Tabular model so it has to be done using DAX code (I can't use PQ, etc). What I am looking for is a column which will assign an index for each instance where the item is distinct. If it is duplicated on another row I want it to be assigned the same index (as shown in the picture).

 

Thanks

 

  • Anonymous It seems simpler to me like this:

    Index Column = RANKX ( Table, Table[Item],, ASC, DENSE )

     

    Try it!

    B.

3 Replies

  • Anonymous It seems simpler to me like this:

    Index Column = RANKX ( Table, Table[Item],, ASC, DENSE )

     

    Try it!

    B.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thanks, at first glance this looks to work. I have 57k rows though so I need to make sure that its consistent.

  • Greg_Deckler's avatar
    Greg_Deckler
    Community Champion

    Anonymous Indexes in DAX are not particularly easy and were once thought impossible. Hard to guarantee any sort of sort order, not that I see what sort order you would want. You can try this:

    Column = 
      VAR __Item = [Item]
      VAR __Text = CONCATENATEX('Table',[Item],"|")
      VAR __Count = PATHLENGTH(__Text)
      VAR __Table = 
        ADDCOLUMNS(
          GENERATESERIES(1,__Count,1),
          "__Item",PATHITEM(__Text,[Value])
        )
      VAR __TableFinal = 
        SUMMARIZE(__Table,[__Item],"Index",MINX(FILTER(__Table,[__Item]=EARLIER([__Item])),[Value]))
    RETURN
      MINX(FILTER(__TableFinal,[__Item] = __Item),[Index])

    Original concept is from The Mythical DAX Index: (2) The Mythical DAX Index - Microsoft Power BI Community