Forum Discussion
sridhar71
3 years agoHelper I
Text to Date has the wrong year
Hi. I have an csv with the following columns Year|Week_Num|Start Date|End Date 2022|1|3-Jan|9-Jan 2022|2|10-Jan|16-Jan 2022|3|17-Jan|23-Jan 2022|4|24-Jan|30-Jan I imported it into Power BI, ...
- 3 years ago
You need to combine (i.e., merge) with year data and then convert to date type.
I copied your sample data in M query and did this ...
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjIwMqoxrDHW9UrMq7EEkUqxOlBhoIQBWNzQDFXCuMbQHCxhZIwqYVJjZAKWMDaASMQCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Year|Week_Num|Start Date|End Date" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Year|Week_Num|Start Date|End Date", type text}}), #"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "Year|Week_Num|Start Date|End Date", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Year|Week_Num|Start Date|End Date.1", "Year|Week_Num|Start Date|End Date.2", "Year|Week_Num|Start Date|End Date.3", "Year|Week_Num|Start Date|End Date.4"}), #"Renamed Columns" = Table.RenameColumns(#"Split Column by Delimiter",{{"Year|Week_Num|Start Date|End Date.1", "Year"}, {"Year|Week_Num|Start Date|End Date.2", "Week_Num"}, {"Year|Week_Num|Start Date|End Date.3", "Start Date"}, {"Year|Week_Num|Start Date|End Date.4", "End Date"}}), #"Inserted Merged Column" = Table.AddColumn(#"Renamed Columns", "Start Date 2", each Text.Combine({[Start Date], [Year]}, "-"), type text), #"Inserted Merged Column1" = Table.AddColumn(#"Inserted Merged Column", "End Date 2", each Text.Combine({[End Date], [Year]}, "-"), type text), #"Removed Columns" = Table.RemoveColumns(#"Inserted Merged Column1",{"Start Date", "End Date"}), #"Changed Type1" = Table.TransformColumnTypes(#"Removed Columns",{{"Year", Int64.Type}, {"Week_Num", Int64.Type}, {"Start Date 2", type date}, {"End Date 2", type date}}), #"Renamed Columns1" = Table.RenameColumns(#"Changed Type1",{{"Start Date 2", "Start Date"}, {"End Date 2", "End Date"}}) in #"Renamed Columns1"Output:
Hope it helps!
sevenhills
3 years agoSuper User
You need to combine (i.e., merge) with year data and then convert to date type.
I copied your sample data in M query and did this ...
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjIwMqoxrDHW9UrMq7EEkUqxOlBhoIQBWNzQDFXCuMbQHCxhZIwqYVJjZAKWMDaASMQCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Year|Week_Num|Start Date|End Date" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Year|Week_Num|Start Date|End Date", type text}}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "Year|Week_Num|Start Date|End Date", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Year|Week_Num|Start Date|End Date.1", "Year|Week_Num|Start Date|End Date.2", "Year|Week_Num|Start Date|End Date.3", "Year|Week_Num|Start Date|End Date.4"}),
#"Renamed Columns" = Table.RenameColumns(#"Split Column by Delimiter",{{"Year|Week_Num|Start Date|End Date.1", "Year"}, {"Year|Week_Num|Start Date|End Date.2", "Week_Num"}, {"Year|Week_Num|Start Date|End Date.3", "Start Date"}, {"Year|Week_Num|Start Date|End Date.4", "End Date"}}),
#"Inserted Merged Column" = Table.AddColumn(#"Renamed Columns", "Start Date 2", each Text.Combine({[Start Date], [Year]}, "-"), type text),
#"Inserted Merged Column1" = Table.AddColumn(#"Inserted Merged Column", "End Date 2", each Text.Combine({[End Date], [Year]}, "-"), type text),
#"Removed Columns" = Table.RemoveColumns(#"Inserted Merged Column1",{"Start Date", "End Date"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Removed Columns",{{"Year", Int64.Type}, {"Week_Num", Int64.Type}, {"Start Date 2", type date}, {"End Date 2", type date}}),
#"Renamed Columns1" = Table.RenameColumns(#"Changed Type1",{{"Start Date 2", "Start Date"}, {"End Date 2", "End Date"}})
in
#"Renamed Columns1"
Output:
Hope it helps!
sridhar71
3 years agoHelper I
Thanks. I will try this