首页 > 其他分享 >转换考勤系统中的数据(II)(Power Query)

转换考勤系统中的数据(II)(Power Query)

时间:2023-12-10 15:22:05浏览次数:23  
标签:Power type 考勤 II 姓名 序号 Table 打卡 Column1

let
    源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    添加姓名列 = Table.AddColumn(源, "姓名", each if [列10] = "姓名:" then [列5] & [列11] else null),
    姓名列填充 = Table.FillDown(添加姓名列,{"姓名"}),
    筛选掉不需要的行 = Table.SelectRows(姓名列填充, each ([列4] <> 4 and [列4] <> "工号:") and ([姓名] <> null)),
    按姓名分组组内整理 = Table.Group(筛选掉不需要的行, {"姓名"}, {"内容", each Table.SelectRows(Table.Transpose(Table.DemoteHeaders(_)), each ([Column1] <> "姓名"))}),
    添加序号列 = Table.AddIndexColumn(按姓名分组组内整理, "序号", 1),
    展开11列 = Table.ExpandTableColumn(添加序号列, "内容", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6","Column7", "Column8", "Column9", "Column10", " Column11"}),
    打卡时间转成一列 = Table.UnpivotOtherColumns(展开11列, {"姓名", "Column1", "序号"}, "属性", "打卡时间"),
    打卡时间一行一时间 = Table.TransformColumnTypes(Table.ExpandListColumn(Table.TransformColumns(打卡时间转成一列, {{"打卡时间", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "打卡时间"), {"打卡时间", type time}),
    按姓名日期分组组内整理 = Table.Group(打卡时间一行一时间, {"姓名", "Column1"}, {"内容", each  Table.AddIndexColumn(_, "次数", 1)}),
    展开 = Table.ExpandTableColumn(按姓名日期分组组内整理, "内容", {"序号", "打卡时间", "次数"}),
    打卡时间横排 = Table.Pivot(Table.TransformColumnTypes(展开, {{"次数", type text}}, "zh-CN"), List.Distinct(Table.TransformColumnTypes(展开, {{"次数", type text}}, "zh-CN")[次数]), "次数", "打卡时间"),
    整理日期列 = Table.TransformColumnTypes( Table.RenameColumns(Table.ReplaceValue(打卡时间横排,"列","2023-10-",Replacer.ReplaceText,{"Column1"}), {"Column1", "日期"}),{"日期", type date}),
    整理顺序 = Table.RemoveColumns(Table.Sort(整理日期列,{{"序号", Order.Ascending}, {"日期", Order.Ascending}}), {"序号"})
in
    整理顺序

 

标签:Power,type,考勤,II,姓名,序号,Table,打卡,Column1
From: https://www.cnblogs.com/officeplayer/p/17892694.html

相关文章

  • 为什么ESP-idf这个powershell窗口有时会打不开,有人遇到过这个问题吗
    ESP-IDF,全称EspressifIoTDevelopmentFramework,是乐鑫官方的物联网开发框架。它主要适用于ESP32、ESP32-S、ESP32-C和ESP32-H系列SoC的开发。此外,它还基于C/C++语言提供了一个自给自足的软件开发工具包(SDK),为用户在这些平台上开发通用应用程序提供了方便。同时,ESP-IDF支持多种网络......
  • PowerShell原生Cmdlets Get-Command详细使用介绍
    在我们学习PowerShell的初始阶段,我们最需要知道的应该是PowerShell本身给我们提供那些原生的Cmdlets。为了达到这个目的,使用PowerShell的get-command是个不二之选。为了了解这个命令输出的是什么对象,我们可以输入下面的命令进行了解Get-Command|Get-Member从输出种我们可以看到从上......
  • iic
    主机主动释放I2C_SDA,为读ack做准备。为什么主机要释放SDA线呢?因为主机和从机将的SDA线连接是通过&,所以从机在操作总线时,主机要释放总线。(从机在什么时候需要操作总线?1.从机应答2.主机读数据(从机写))如主机不释放总线的话,那么SDA线上可能是0,也可能是1,假设现在SDA线上是0,那么不......
  • Recommendation as Instruction Following: A Large Language Model Empowered Recomm
    目录概InstructRecInstructionGenerationZhangJ.,XieR.,HouY.,ZhaoW.X.,LinL.,WenJ.Recommendationasinstructionfollowing:alargelanguagemodelempoweredrecommendationapproach.2023.概通过指令跟随来利用大模型进行推荐,本文介绍了不同的指令......
  • 代码随想训练营第五十九天(Python)| 503.下一个更大元素II、42. 接雨水
    [503.下一个更大元素II]循环问题用2*n,i%n的方式n=len(nums)ans=[-1]*nstack=[]foriinrange(2*n):whilelen(stack)>0andnums[i%n]>nums[stack[-1]]:ans[stack[-1]]=nums[i%n......
  • Power BI - 5分钟学习拆分列
    每天5分钟,今天介绍PowerBI拆分列功能。什么是拆分列?有时导入PowerBI的数据表中,某列内容都包含同样的特殊字符如@/&/-/_等,可以利用这个特殊字符进行拆分列的操作,获得我们想要的信息。操作举例:首先,导入一张【Sales】样例表(Excel数据源导入请参考每天5分钟第一天)。样例列内容......
  • Power BI - 5分钟学习透视列
    每天5分钟,今天介绍PowerBI透视列功能什么是透视列?透视列就是把行数据转换成列数据,也就是大家在工作中常说的'行转列'。如何进行逆透视操作:1,导入的【Sales】表,样例内容如下:2,【Home】->【Transformdata】->【Transformdata】;3,选择要透视的列【Actual/Budget】;4,......
  • 【Nginx/IIS】解决uniapp/Vue history模式下页面刷新404
    uniapp/Vue开启History模式本地开发:二级页面刷新或者通过链接进入二级页面是正常的打包部署后:二级页面刷新或者通过链接进入二级页面会报错404页面找不到 解决方案:Nginx配置:在nginx.conf的对应location里配置一行代码try_files$uri$uri//index.html;location/h5{......
  • IIS 漏洞Http.sys 远程代码执行
     漏洞描述弱点描述:在微软4月14日补丁日发布的补丁中,有一个针对IIS服务器的远程代码执行漏洞危害非常大,安恒信息提醒广大用户注意。漏洞信息远程执行代码漏洞存在于HTTP协议堆栈(HTTP.sys)中,当HTTP.sys未正确分析经特殊设计的HTTP请求时会导致此漏洞。成......
  • P5048 [Ynoi2019 模拟赛] Yuno loves sqrt technology III
    题意给定序列\(s\),每次询问\(l,r\)的区间众数的出现次数。强制在线。空间:\(62.5MB\)。Sol蒲公英卡常卡空间版。考虑优化那个\(n\timesm\)的数组。我们要求\(l,r\)之中某个数的个数。乍一看不好弄,仔细想想就会发现,如果我们知道当前的最优答案。在长常数时间内就......