Forum Discussion

Uzi2019's avatar
Uzi2019
Community Champion
3 years ago
Solved

Split data month wise

Hi Experts,
I have 3 columns Date( Continuous Date), Campaign Start Date, Campaign End date.


I want month wise split as I mentioned in screenshot.
Please help me to get this done.

Thank you in advance.

  • Uzi2019 , You can do that power query, expand the same table

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTLXNzTRNzIwMgKyLfWNIcxYnWglkICZvpEFTBLItoTKxgIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"S N" = _t, #"Start Date" = _t, #"End Date" = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Start Date", type date}, {"End Date", type date}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "New Start Date", each let 
    _s =[Start Date],
    _q= List.Select( List.Dates([Start Date], Duration.Days([End Date]-[Start Date])+1,#duration(1,0,0,0)), each _ = List.Max({_s,Date.StartOfMonth(_)}))
    in 
    _q),
        #"Expanded New Start Date" = Table.ExpandListColumn(#"Added Custom", "New Start Date"),
        #"Changed Type1" = Table.TransformColumnTypes(#"Expanded New Start Date",{{"New Start Date", type date}}),
        #"Added Custom1" = Table.AddColumn(#"Changed Type1", "New End Date", each List.Min({[End Date], Date.EndOfMonth([New Start Date])}))
    in
        #"Added Custom1"

3 Replies

  • Uzi2019 , Try a new table like

     

     

    Table = Distinct(SELECTCOLUMNS(ADDCOLUMNS(GENERATE(Data, CALENDAR([Start Date],[End Date])), "Start Date 1", max(eomonth([Date],-1)+1,[Start Date]) , "End 1", Min(EOMONTH([Date],0), [End Date])), "Start Date", [Start Date], "End date", [End Date],  "New Start", [Start Date 1],"New end", [End 1]))

     

    Find the attached file after signature

     

     

    • Uzi2019's avatar
      Uzi2019
      Community Champion

      Hi amitchandak 
      Thank you for your response.
      But I want the result in measure or column.  Need to show againts various different measures and metrics. 
      So cant create seperte table fo this.

      • amitchandak's avatar
        amitchandak
        Super User

        Uzi2019 , You can do that power query, expand the same table

         

        let
            Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTLXNzTRNzIwMgKyLfWNIcxYnWglkICZvpEFTBLItoTKxgIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"S N" = _t, #"Start Date" = _t, #"End Date" = _t]),
            #"Changed Type" = Table.TransformColumnTypes(Source,{{"Start Date", type date}, {"End Date", type date}}),
            #"Added Custom" = Table.AddColumn(#"Changed Type", "New Start Date", each let 
        _s =[Start Date],
        _q= List.Select( List.Dates([Start Date], Duration.Days([End Date]-[Start Date])+1,#duration(1,0,0,0)), each _ = List.Max({_s,Date.StartOfMonth(_)}))
        in 
        _q),
            #"Expanded New Start Date" = Table.ExpandListColumn(#"Added Custom", "New Start Date"),
            #"Changed Type1" = Table.TransformColumnTypes(#"Expanded New Start Date",{{"New Start Date", type date}}),
            #"Added Custom1" = Table.AddColumn(#"Changed Type1", "New End Date", each List.Min({[End Date], Date.EndOfMonth([New Start Date])}))
        in
            #"Added Custom1"