let
源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
向下填充姓名 = Table.FillDown(源,{"姓名"}),
删除第一列空值 = Table.SelectRows(向下填充姓名,each [列1] <> null),
将课替换为上下午 = Table.ReplaceValue(删除第一列空值,null,null,(x,y,z)=>if x < "第6节" then "上午" else "下午",{"列1"}),
逆透视星期列 = Table.UnpivotOtherColumns(将课替换为上下午, {"列1", "姓名"}, "属性", "值"),
合并下午与星期 = Table.CombineColumns(逆透视星期列,{"属性", "列1"},Text.Combine,"已合并"),
透视列星期与上下午 = Table.Pivot(合并下午与星期, List.Distinct(合并下午与星期[已合并]), "已合并", "值", List.NonNullCount),
课数为0替换为没课 = Table.ReplaceValue(透视列星期与上下午,null,null,(x,y,z)=> if x=0 then "没课" else "有课",{"星期一上午", "星期二上午", "星期四上午", "星期三上午", "星期五下午", "星期三下午", "星期五上午", "星期一下午", "星期二下午"}),
重排序的列 = Table.ReorderColumns(课数为0替换为没课,{"姓名", "星期一上午", "星期一下午", "星期二上午", "星期二下午", "星期三上午", "星期三下午", "星期四上午", "星期五上午", "星期五下午"})
in
重排序的列 |