Forum Discussion

GokilaRaviraj's avatar
GokilaRaviraj
Helper II
1 year ago
Solved

Copy and paste entire column value to another column

Hi , Currently my input table looks like this, I am fetching current month + remaining months of the year+ next year all the months. This is the logic to fetch months every time.  These months I am...
  • dufoq3's avatar
    1 year ago

    Hi GokilaRaviraj, check this:

     

    Output

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTI0ABJGIMIYRJiACAWKcKxOtJITzUx2po3JsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [company = _t, #"estimate q1" = _t, #"estimate q2" = _t, #"estimate q3" = _t, #"estimate q4" = _t, Sep_cfy = _t, Oct_cfy = _t, Nov_cfy = _t, Dec_Cfy = _t, #"Jan _NFY" = _t, Feb_NFY = _t, Mar_NFY = _t, Apr_NFY = _t, May_NFY = _t, Jun_NFY = _t, Jul_NFY = _t, Aug_NFY = _t, Sep_NFY = _t, Oct_NFY = _t, Nov_NFY = _t, Dec_NFY = _t]),
        // You can probably delete this step when applying on real data.
        ReplacedValue = Table.ReplaceValue(Source," ",null,Replacer.ReplaceValue, Table.ColumnNames(Source)),
        MonthColNames = List.Buffer(List.Select(Table.ColumnNames(ReplacedValue), each List.Contains({"cfy", "nfy"}, _, (x,y)=> Text.EndsWith(y, x, Comparer.OrdinalIgnoreCase)))),
        ChangedType = Table.TransformColumnTypes(ReplacedValue,{{"estimate q1", type number}, {"estimate q2", type number}, {"estimate q3", type number}, {"estimate q4", type number}}),
        ReplacedValue1 = Table.ReplaceValue(ChangedType,null,"0",Replacer.ReplaceValue, MonthColNames),
        Unpivoted = Table.Unpivot(ReplacedValue1, MonthColNames, "Year_Month", "Value"),
        YearMonthCorrectFormat = Table.TransformColumns(Unpivoted, {{"Year_Month", each Text.Combine(List.Transform(List.ReplaceMatchingItems(Text.Split(_, "_"), {{"cfy", DateTime.ToText(DateTime.FixedLocalNow(), "yyyy")}, {"nfy", DateTime.ToText(Date.AddYears(DateTime.FixedLocalNow(), 1), "yyyy")}}, Comparer.OrdinalIgnoreCase), Text.Trim), "_"), type text}}),
        Ad_Quarter = Table.AddColumn(YearMonthCorrectFormat, "Quarter", each "q" & Text.From(Date.QuarterOfYear(Date.FromText("01_" & [Year_Month], [Format="dd_MMM_yyyy", Culture="en-US"]))), type text),
        Ad_QuarterValue = [ a = List.Buffer(Table.ColumnNames(Ad_Quarter)),
        b = Table.AddColumn(Ad_Quarter, "Quarter Value", each Record.ToList(Record.SelectFields(_, List.Select(a, (x)=> Text.EndsWith(x, [Quarter], Comparer.OrdinalIgnoreCase)))){0}?, type number)
      ][b],
        RemovedColumns = Table.RemoveColumns(Ad_QuarterValue,{"Value", "Quarter"}),
        Pivoted = Table.Pivot(RemovedColumns, List.Distinct(RemovedColumns[Year_Month]), "Year_Month", "Quarter Value", List.Sum)
    in
        Pivoted