Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreNext up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now
Hi there,
I have a data source containing numbers separated by multiple decimal places. This is important as this is the format which we use in other systems.
My issue is I am not sure what data type to use to store this information.
The Data might look like this;
2.2
2.2
2.3
2.3
2.3.6.1
2.3.6.2
2.4
When I use data type decimal it comes out like this;
2.2
2.2
2.3
2.3
Error
Error
2.4
Using Text comes out like this;
2.2
2.2
2.99988888888888
2.99988888888888
2.3.6.1
2.3.6.2
2.3999989879
Can anyone advise on which data type I should be using for this?
Thanks in advance.
Simon
Solved! Go to Solution.
Try this Power Query solution. The concept is to determine if the original value is number or text; if number, round to the appropriate number of decimal places, otherwise return the original value.
let
Source = Table.FromRows(
Json.Document(
Binary.Decompress(
Binary.FromText("i45WMtIzUorVAdHGaLQJjK9npmeIxAaqjwUA", BinaryEncoding.Base64),
Compression.Deflate
)
),
let
_t = ((type nullable text) meta [Serialized.Text = true])
in
type table [#"Original Column" = _t]
),
AddDataTypeColumn = Table.AddColumn(
Source,
"Data Type",
each
let
result = try Number.From([Original Column]) otherwise "Text",
resultType = if result = "Text" then "Text" else "Number"
in
resultType
),
AddNewColumn = Table.AddColumn(
AddDataTypeColumn,
"New Column",
each
if [Data Type] = "Number" then
Number.Round(Number.FromText([Original Column]), 1)
else
[Original Column]
),
ChangeType = Table.TransformColumnTypes(AddNewColumn, {{"New Column", type text}})
in
ChangeType
Proud to be a Super User!
Try this Power Query solution. The concept is to determine if the original value is number or text; if number, round to the appropriate number of decimal places, otherwise return the original value.
let
Source = Table.FromRows(
Json.Document(
Binary.Decompress(
Binary.FromText("i45WMtIzUorVAdHGaLQJjK9npmeIxAaqjwUA", BinaryEncoding.Base64),
Compression.Deflate
)
),
let
_t = ((type nullable text) meta [Serialized.Text = true])
in
type table [#"Original Column" = _t]
),
AddDataTypeColumn = Table.AddColumn(
Source,
"Data Type",
each
let
result = try Number.From([Original Column]) otherwise "Text",
resultType = if result = "Text" then "Text" else "Number"
in
resultType
),
AddNewColumn = Table.AddColumn(
AddDataTypeColumn,
"New Column",
each
if [Data Type] = "Number" then
Number.Round(Number.FromText([Original Column]), 1)
else
[Original Column]
),
ChangeType = Table.TransformColumnTypes(AddNewColumn, {{"New Column", type text}})
in
ChangeType
Proud to be a Super User!
I'll give this a try and reply with my findings, if you don't mind. Thanks for the possible solution.
Simon
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
| User | Count |
|---|---|
| 48 | |
| 44 | |
| 40 | |
| 19 | |
| 18 |
| User | Count |
|---|---|
| 69 | |
| 69 | |
| 32 | |
| 32 | |
| 32 |