Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Create unique ID from transaction number if no ID exists

I'm trying to migrate some manual customer data and having issues with blank Unique ID fields. Thanks in advance for any help on how to create this column

 

Some of my rows have a unique ID and some don't. I need to allocate Unique IDs in a new column called UniqueID to all the rows but it's a bit complicated.

Is it somehow possible to do the following in this order?

  • If oldID is not blank and is unique, use oldID
  • else if transactionNumber is not blank use transaction number + instance # of transaction (eg 3rd row containing 5555 will get the id 555503)
  • else prefix the column with E and assign it an incremented unique number

 

EG: 

oldIDTransactionNumberNameUniqueID
 11653Alice1165300
2411654Mark24
 11654Kate1165401
2511655Anne25
611656Peter6
2411657Terence1165701
 11658Andrew1165800
 11658Toby1165801
 11658Laura1165802
  SamanthaE000001
  SarahE000002
  KateE000003

 

1 ACCEPTED SOLUTION
amitchandak
Super User
Super User

@Anonymous ,

 

Add and index column - https://stackoverflow.com/questions/45715963/creating-an-index-column-for-power-bi

 

and create new columns like


rank = "E" & format(rankx(filter(Table, isblank([TransactionNumber]) && isblank([OldID])),[Index],,asc), "00000")

 

UniqueID=

Switch =( True(),
isblank([OldID]) && isblank([TransactionNumber]) , [Rank],
isblank([OldID]) , [TransactionNumber],
[OldID]
)

View solution in original post

3 REPLIES 3
amitchandak
Super User
Super User

@Anonymous ,

 

Add and index column - https://stackoverflow.com/questions/45715963/creating-an-index-column-for-power-bi

 

and create new columns like


rank = "E" & format(rankx(filter(Table, isblank([TransactionNumber]) && isblank([OldID])),[Index],,asc), "00000")

 

UniqueID=

Switch =( True(),
isblank([OldID]) && isblank([TransactionNumber]) , [Rank],
isblank([OldID]) , [TransactionNumber],
[OldID]
)

Anonymous
Not applicable

This looks really promising but it's still doubling up some of my values where the old transaction number exists across multiple records. 

 

Any idea how to add the occurence number to each transaction #? (so first transaction lableled 0400 gets labelled 040001 then 040002 etc)

Anonymous
Not applicable

OK so that woked bout I had to make the random number column go up to 10,000 before it worked properly. To be honest I still don't really understand how this column works but at least it did the job, thanks!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors