Forum Discussion

jcbutts's avatar
jcbutts
Helper I
6 years ago
Solved

Replace Column Headers with current dates

Hi,   I'm new to this:   I'm trying to replace column headers with the current week in one column and iterate from there.  For example, I have columns that say "week 1", "week 2", "week 3".....et...
  • Jimmy801's avatar
    Jimmy801
    6 years ago

    Hello jcbutts 

     

    I recognized that I got you wrong. So week 1 is always the current week.

    I fixed this now. Check out this one if it works

    let
    	Source = #table
    	(
    		{"week 1","week 2","week 3","other data","abc","week 52"},
    		{
    			{"","","","","",""}
    		}
    	),
        ColumnNames = Table.ColumnNames
        (
            Source
        ),
        TransformWeekInDate = List.Transform
        (
            ColumnNames,
            (row)=> try
            if Text.Contains(row,"week") or Text.Contains(row,"Week") then 
                Text.From(Date.AddDays(Date.AddDays( Date.From(DateTime.FixedLocalNow()), Date.DayOfWeek(DateTime.FixedLocalNow())*-1), (Number.From(Text.Replace(row, "week ", ""))-1)*7))
                else 
                row
            otherwise
            row
        ),
        RenameColumnHeader = Table.RenameColumns
        (
            Source,
            List.Zip({ColumnNames,TransformWeekInDate})
        )
    in
    	RenameColumnHeader

     

    Jimmy