Forum Discussion
group filter to sort similar value
- 6 years ago
Hi Anonymous - this is certianly possible. Here is one way. This simply goes through the data converting the employee "number" (I put that in quotes as your employee numbers are text, which is usually the best way to handle it) to a numberic value and if it works, it classifies it as "Numberic." If it fails, it removes the first character and tries again. If it works, it is 1 char, otherwise, it tries again removing the first two characters. It doesn't classifiy anything starting with A or B. Leaves those null. You can change that in the M code below.
The full M code of my example is here.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQyVorViVYyMTUD0+YWlmA6GShhAmEZw+SSk2Gqk5NhYknlYFYsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Employee Number" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Employee Number", type text}}), #"Added Grouping" = Table.AddColumn( #"Changed Type", "Grouping", each if List.Contains({"a".."b"}, Text.Start([Employee Number], 1)) then null else if (try Number.FromText([Employee Number]))[HasError] = false then "Numeric" else if (try Number.FromText( Text.End([Employee Number], Text.Length([Employee Number]) -1) ) )[HasError] = false then "One Letter" else if (try Number.FromText( Text.End([Employee Number], Text.Length([Employee Number]) -2) ) )[HasError] = false then "Two Letters" else null ) in #"Added Grouping"1) In Power Query, select New Source, then Blank Query
2) On the Home ribbon, select "Advanced Editor" button
3) Remove everything you see, then paste the M code I've given you in that box.
4) Press Done
5) See this article if you need help using this M code in your model.
Hi Anonymous - this is certianly possible. Here is one way. This simply goes through the data converting the employee "number" (I put that in quotes as your employee numbers are text, which is usually the best way to handle it) to a numberic value and if it works, it classifies it as "Numberic." If it fails, it removes the first character and tries again. If it works, it is 1 char, otherwise, it tries again removing the first two characters. It doesn't classifiy anything starting with A or B. Leaves those null. You can change that in the M code below.
The full M code of my example is here.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQyVorViVYyMTUD0+YWlmA6GShhAmEZw+SSk2Gqk5NhYknlYFYsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Employee Number" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Employee Number", type text}}),
#"Added Grouping" =
Table.AddColumn(
#"Changed Type",
"Grouping", each
if List.Contains({"a".."b"}, Text.Start([Employee Number], 1)) then null
else if (try Number.FromText([Employee Number]))[HasError] = false then "Numeric"
else if (try Number.FromText(
Text.End([Employee Number], Text.Length([Employee Number]) -1)
)
)[HasError] = false then "One Letter"
else if (try Number.FromText(
Text.End([Employee Number], Text.Length([Employee Number]) -2)
)
)[HasError] = false then "Two Letters" else null
)
in
#"Added Grouping"
1) In Power Query, select New Source, then Blank Query
2) On the Home ribbon, select "Advanced Editor" button
3) Remove everything you see, then paste the M code I've given you in that box.
4) Press Done
5) See this article if you need help using this M code in your model.
- Anonymous6 years agoNot applicable
Thank you for the post and appreciate your helping but, it doesn't meet the requirements.
We have a column that has multiple values such as numeric and alphanumeric. We want to create a new column where we can select the filter options that will result in just numbers, starting A character or first two characters sorting functionality.
Please let me know if that is possible.
Thank you
- Anonymous6 years agoNot applicable
I don't understand if your original problem is solved or not.
Could you give some input table and expected results, possibly in a format wich is easily copyable?
- Anonymous6 years agoNot applicable
here is my employee column and on the left-hand side G1, G2 and G3. I would like G1, G2..... Gx is a new column so that I can filter them out as an option and select what I want to pick.
For example, G3 includes 2 characters starting with C. I want that as one group.
Numeric under the G1.
Does this make sense?