Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Hi,
I want to sort the table data based on field, however the field contain alphaneumeric values as per below screen shots.
Current Result:
WD value will be static/it will not change. where same number can have multiple series (a,b,c,d,e).
Current_Result |
WD-2C |
WD-2B |
WD-1B |
WD-1A |
WD-12B |
WD-10A |
WD-1 |
Expected Result
Exp_Result |
WD-1 |
WD-1A |
WD-1B |
WD-2B |
WD-2C |
WD-10A |
WD-12B |
Solved! Go to Solution.
Hi,
I will solve the problem adding a new column to can order the current column. For doing this I create this funtion on Power Query:
"
let
ExtrairNumeroValor = (texto as text) =>
let
num = Text.Select(texto, {"0".."9"}),
alfa = Text.Select(texto, {"A".."Z"}),
numValue = if Text.Length(num) > 0 then Number.FromText(num) else 0,
alfaValue =
if Text.Length(alfa) > 0 then
List.PositionOf({"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}, Text.Upper(alfa)) + 1
else
0
in
numValue * 100 + alfaValue
in
ExtrairNumeroValor
"
And after use them to add a new colum using this script:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCnfRNXJWitWBsJxgLEMEyxHOQpI2QIgqxcYCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [FirstColumn = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"FirstColumn", type text}}),
#"Inserted Text After Delimiter" = Table.AddColumn(#"Changed Type", "Text After Delimiter", each Text.AfterDelimiter([FirstColumn], "-"), type text),
#"Renamed Columns" = Table.RenameColumns(#"Inserted Text After Delimiter",{{"Text After Delimiter", "Split"}}),
AddColumn = Table.AddColumn(#"Renamed Columns", "Valor", each ExtractValue([Split]),Int64.Type)
in
AddColumn
After order the Column by this new column using this path:
Final result:
Proud to be a Super User!
Thank you for the help, it worked.
Hi,
I will solve the problem adding a new column to can order the current column. For doing this I create this funtion on Power Query:
"
let
ExtrairNumeroValor = (texto as text) =>
let
num = Text.Select(texto, {"0".."9"}),
alfa = Text.Select(texto, {"A".."Z"}),
numValue = if Text.Length(num) > 0 then Number.FromText(num) else 0,
alfaValue =
if Text.Length(alfa) > 0 then
List.PositionOf({"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}, Text.Upper(alfa)) + 1
else
0
in
numValue * 100 + alfaValue
in
ExtrairNumeroValor
"
And after use them to add a new colum using this script:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCnfRNXJWitWBsJxgLEMEyxHOQpI2QIgqxcYCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [FirstColumn = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"FirstColumn", type text}}),
#"Inserted Text After Delimiter" = Table.AddColumn(#"Changed Type", "Text After Delimiter", each Text.AfterDelimiter([FirstColumn], "-"), type text),
#"Renamed Columns" = Table.RenameColumns(#"Inserted Text After Delimiter",{{"Text After Delimiter", "Split"}}),
AddColumn = Table.AddColumn(#"Renamed Columns", "Valor", each ExtractValue([Split]),Int64.Type)
in
AddColumn
After order the Column by this new column using this path:
Final result:
Proud to be a Super User!
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
User | Count |
---|---|
60 | |
58 | |
56 | |
38 | |
28 |
User | Count |
---|---|
82 | |
62 | |
45 | |
41 | |
40 |