Forum Discussion

Brite's avatar
Brite
Helper I
4 years ago
Solved

Custom Quarter Column

Hello,   I am trying to create a custom column with the below requirements:   1) If the Month has more than 30 days, then the quarter should be the same until the next Sunday date 2) Else return...
  • v-yalanwu-msft's avatar
    4 years ago

    Hi, Brite ;

    You add custom in powerbi query.

    [date]-#duration(1,0,0,0)
    = Table.AddColumn(#"Added Custom", "Start of Week", each Date.StartOfWeek([Custom])+#duration(1,0,0,0))
    = Table.AddColumn(#"Inserted Start of Week", "Quarter1", each Date.QuarterOfYear([Start of Week]), Int64.Type)
    = Table.RemoveColumns(#"Inserted Quarter",{"Custom", "Start of Week"})

    M lanuage:

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("fc1BCoAwDETRq0jWlTSTaL1G16X3v0atiCAkXWQRHsxvjcAnIwMbJZL7quzzpZ6miT7oGvLCSmT69lyKc7rI6SJnHE4ayzc5r+JnJTZYZAdLTJdLfQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"W/E Company" = _t, num = _t, Quarter = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"W/E Company", type date}, {"num", Int64.Type}, {"Quarter", type text}}),
        #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"W/E Company", "date"}}),
        #"Added Custom" = Table.AddColumn(#"Renamed Columns", "Custom", each [date]-#duration(1,0,0,0)),
        #"Inserted Start of Week" = Table.AddColumn(#"Added Custom", "Start of Week", each Date.StartOfWeek([Custom])+#duration(1,0,0,0)),
        #"Inserted Quarter" = Table.AddColumn(#"Inserted Start of Week", "Quarter1", each Date.QuarterOfYear([Start of Week]), Int64.Type),
        #"Removed Columns1" = Table.RemoveColumns(#"Inserted Quarter",{"Custom", "Start of Week"})
    in
        #"Removed Columns1"

    The final show:


    Best Regards,
    Community Support Team _ Yalan Wu
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.