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
sridhar71
Helper I
Helper 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, promoted the headers into labels

sridhar71_0-1673291716357.png

 

When I changed the data type to Date, the Year because 2023 instead of 2022??

sridhar71_1-1673291751146.png

 

Now my visual will not show any data that is before 31-DEC-22

 

How do I solve this?

1 ACCEPTED SOLUTION
sevenhills
Super User
Super 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:

sevenhills_0-1673293225103.png

 

Hope it helps!

View solution in original post

2 REPLIES 2
sevenhills
Super User
Super 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:

sevenhills_0-1673293225103.png

 

Hope it helps!

Thanks. I will try this

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.