|
楼主 |
发表于 2023-1-12 15:56
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
更新一个 let 源 = Excel.Workbook(File.Contents("C:\Users\Mitu\Downloads\员工刷卡记录表9月\员工刷卡记录表9月.xlsx"), null, true)[Data]{0}, 只保留月份内行 = Table.SelectColumns(源, List.Transform({1..31},each "Column" & Text.From(_))), //去除31号后的空列 工号位置 = List.PositionOf(只保留月份内行[Column1],"工号:",2), //工号所在行位置 补足工号位数 = List.InsertRange(工号位置,List.Count(工号位置),{List.Last(工号位置)+4}), //给最后一个工号加2行 员工信息 = Table.SelectColumns(Table.SelectRows(源, each ([Column1] = "工号:")), List.Transform({"1","3","10","11","17","18"},each "Column" & _)), 添加索引 = Table.AddIndexColumn(员工信息, "索引", 0, 1, Int64.Type), 添加考勤信息 = Table.AddColumn(添加索引, "添加考勤信息", each Table.Transpose(Table.Range(只保留月份内行,补足工号位数{_[索引]}+1,补足工号位数{_[索引] +1}-补足工号位数{_[索引]}-1))), //取得考勤信息 展开考勤信息 = Table.ExpandTableColumn(添加考勤信息, "添加考勤信息", {"Column1", "Column2", "Column3"}, {"添加考勤信息.Column1", "添加考勤信息.Column2", "添加考勤信息.Column3"}), 拆分1 = Table.SplitColumn(展开考勤信息, "添加考勤信息.Column2", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), {"添加考勤信息.Column2.1", "添加考勤信息.Column2.2"}), 拆分2 = Table.SplitColumn(拆分1, "添加考勤信息.Column3", Splitter.SplitTextByDelimiter("#(#)(lf)", QuoteStyle.Csv), {"添加考勤信息.Column3.1", "添加考勤信息.Column3.2"}), 删除的列 = Table.RemoveColumns(拆分2,{"Column1","Column10","Column17","Column18","索引"}), 重命名的列 = Table.RenameColumns(删除的列,{{"Column3", "工号"}, {"Column11", "姓名"}, {"添加考勤信息.Column1", "日期"}, {"添加考勤信息.Column2.1", "时间01"}, {"添加考勤信息.Column2.2", "时间02"}, {"添加考勤信息.Column3.1", "时间03"}, {"添加考勤信息.Column3.2", "时间04"}}) in 重命名的列 |
|