如何用excel制作工资条?

网友解答: 用excel制作工资条的方法非常多,比如辅助列排序插空法、神长公式法、VBA法等等,但是,每个方法都有些问题,比如:辅助列排序插空法:每次数据更新得重新搞一次,虽然不复杂,但

网友解答:

用excel制作工资条的方法非常多,比如辅助列排序插空法、神长公式法、VBA法等等,但是,每个方法都有些问题,比如:

辅助列排序插空法:每次数据更新得重新搞一次,虽然不复杂,但也很烦;

神长公式法:公式比较难懂,数据增加后得手动扩展公式,数据量很大时可能出现卡顿;

VBA法:得学好VBA,这个对很多Excel用户来说比较痛苦。

因此,以下给出Excel2016的新功能Power Query(Excel2010或Excel2013可到微软官方下载相应的插件)的解法,虽然步骤有点儿多,而且也用到了Power Query里的函数,但是,总体操作不复杂,每个函数也是单独使用,比Excel中的多个函数嵌套使用更容易理解,关键是,通过Power Query实现的方案可以一键刷新,一劳永逸!具体过程如下:

Step-01:基础的工资表数据获取到PQ后,首先对基础工资表加个索引列,方便后面合并了标题表和空白表后的排序。

为方便后续合并表时写公式,添加后将步骤名称改为“源加索引”:

Step-02:打开【高级编辑器】,通过M函数添加标题表

修改前代码及需要修改的地方:

修改代码,增加以下函数(公式):

标题=Table.FromList(

Table.ToRecords(源),

Record.FieldNames,

Table.ColumnNames(源)

)

修改后如下(注意其中上一步骤中增加的逗号和in后面要修改的内容):

点击【完成】后,标题表就构建完成了,结果如下图所示:

Step-03:同样的,给标题表增加索引列Step-04:类似的,添加空白行表

修改前代码及需要修改的地方如下:

加入以下函数(公式):

空行=Table.FromList(

Table.ToRecords(源),

null,

Table.ColumnNames(源)

)

修改后代码如下:

此时结果如下(全都是错误,不过没有关系,PQ中的错误在Excel中就显示为空白):

Step-05:给空白表加索引Step-06:用M函数将添加了索引列的工资表、标题表和空白表合并在一起

(为写合并表公式时含义明确,按照Step-01的方法分别修改标题表加索引的步骤和空白表加索引的步骤名称为“标题加索引”和“空白加索引”)

修改前代码及需要修改的地方如下:

增加合并表的公式:

合并 = Table.Combine(

{标题加索引,源加索引,空白加索引}

)

修改后代码如下:

Step-07:最后,对索引列排序就OK了

小勤:嗯。过程很清晰,就是那几个函数感觉挺复杂的。

大海:这里面用到的函数的确比较多一点儿。其中:

Table.FromList、Table.ToRecords涉及表和行列结构类型的数据转换,比较复杂一点儿,以后我专门针对不同数据结构之间转换的一系列函数跟你讲,对比着学;

Table.ColumnNames比较简单,就是取一个表的所有的字段名称;

Table.Combine也比较简单,就是将多个表纵向追加到一起。

这几个函数你先试着自己查一下文档理解一下,后面2个函数应该不会有什么问题的。

小勤:好的。关于数据结构之间的转换出个系列吧,感觉这部分内容很重要啊。


更多精彩内容,敬请关注【Excel到PowerBI】私信我即可下载60+Excel函数、数据透视10篇及Power系列功能95篇汇总训练材料我是大海,微软认证Excel专家,企业签约Power BI顾问让我们一起学习,共同进步!

网友解答:

只需要新增一列辅助列,Excel制作工作条将变得无比简单。

首先我们要知道一个概念:什么是辅助列?

在Excel中,存在这样“具有极大价值的”神操作,它就是辅助列。Excel中的辅助列思想讲究的是:退一步海阔天空!指的是添加辅助列往往会增加解决问题的步骤,而增加的解决步骤却会带来每一步难度的大幅降低。

如图所示,是存放员工工资的表格,要把这样的表格中每一行数据添加上表头,形成如下图所示的工资条。

图1:员工工资表

图2:由工资表生成的工资条

解决Excel问题,常用的一个思路是倒推法,这这个工资条的问题,从想要实现的效果来看,它相比原始数据,有什么样的变化?

①每一行需要插入的数据是相同的(都是姓名、基本工资、绩效工资……)②插入的规律是相同的:隔一行插入一行

因此,如果我们能在现有的基础上间隔一行插入一个空行,那么利用Ctrl+G定位空行、Ctrl+Enter批量录入就能解决此问题。再把思维进行扩散,事实上,Excel中本身已经存在大量的空行,何必再插入空行呢?我们只需要将数据行下面的空行翻转到数据行之间即可!

Step1:在最后一列创建辅助列,并填充序号,如图3所示。

图3:创建辅助列,并填充序号

Step2:在辅助列下方,再创建一列数据

通常直接复制已有的辅助列数据即可,这是为了给下面而空行加上序号,如图4所示。

图4:辅助列下方再创建一列数据

Step3:将首行标题粘贴至空白处,并填充,如图5所示

图5:在空白行处填充标题行

Step4:对辅助列按升序排序

就实现了我们预想工资条的效果,如图6所示。

图6:生成的工资条效果

解决这个问题,用到的是转化的思维:把插入空行转化为利用空行(因为Excel表格中,数据区域之外全部是空行)。然后通过创建辅助列建立了通向解题的桥梁,使得已知条件(Excel中的空行)和目标答案(将空行和数据行进行穿插)有效的联系起来,问题迎刃而解。

辅助列思想在Excel中具有非常大的威力,能够以小博大,你学会了么?


「精进Excel」系酷米签约作者,关注我,如果任意点开三篇文章,没有你想要的知识,算我耍流氓!

标签: