excel28

题目

2. 在工作表 “身份证校对”中按照下列规则及要求对员工的身份证号进行正误校对:

① 中国公民的身份证号由18位组成,最后一位即第18位为校验码,通过前17位计算得出。第18位校验码的计算方法是: 将身份证的前17位数分别与对应系数相乘,将乘积之和除以11,所得余数与最后一位校验码一一对应。从第1位到第17位的对应系数以及余数与校验码对应关系参见工作表“校对参数”中所列。 

② 首先在工作表“身份证校对”中将身份号的18位数字自左向右分拆到对应列。

先做这一问起,使用MID函数

填充完这一个,再向右拉,最后向下双击全部填充

注意:第一行是$C3,不是$C$3,不要多此一举!

③ 通过前17位数字以及工作表“校对参数”中的校对系数计算出校验码,填入V列中。

在计算效验码输入=VLOOKUP(MOD(SUM(D3:T3*校对参数!$E$5:$U$5),11),校对参数!$B$5:$C$15,2,0)

解释:

SUM(D3:T3*校对参数!$E$5:$U$5-----按题目要求,相乘(用sum函数)

MOD(SUM(D3:T3*校对参数!$E$5:$U$5),11)-------求余数

=VLOOKUP(MOD(SUM(D3:T3*校对参数!$E$5:$U$5),11),校对参数!$B$5:$C$15,2,0)--------用vlookup函数求余数所对应的验证码 

输入完=VLOOKUP(MOD(SUM(D3:T3*校对参数!$E$5:$U$5),11),校对参数!$B$5:$C$15,2,0)发现显示#value!,因为引用的sum用了数组函数,按enter是不可以的,所以要按ctrl+shift+enter

④ 将原证号的第18位与计算出的校验码进行对比,比对结果填入W列,要求比对相符时输入文本“正确”,不符时输入“错误”。 

用if函数

第一行:之所以加&"  ",是因为U列是文本,V列是数值,而输入的能将其全部转化为文本

第二行:正确

第三行:错误

⑤ 如果校对结果错误,则通过设置条件格式将错误证号所在的数据行以“红色”文字、浅绿类型的颜色填充。

选中数据区域B3:W122,→开始→条件格式→新建规则→使用公式确定要设置的单元格;=$W$3="错误"【点击w3单元格,但是要把1个$删掉】→格式:字体红色;填充浅绿

3.在工作表 “员工档案”中,按照进行下列要求对员工档案数据表进行完善:

 ① 输入每位员工的身份证号,员工编码与身份证号的对应关系见工作表“身份证校对”。如果已校对出错误,应将正确的身份证号填写入工作表“员工档案”中(假设所有错误号码都是由于最后一位校验码输错导致的)。

利用vlookup函数,前17位+第18位校正的

示例:=LEFT(VLOOKUP(A3,身份证校对!$B$3:$C$122,2,0),17)&VLOOKUP(A3,身份证校对!$B$3:$V$122,21,0)

因为全部输入完,显示的函数而不是数值,因为数字格式影响了。因此选中身份证列,将常规改为文本

第一行:当行的编号

第二行:选择B-C列编号和身份证表2列数据

left函数

并上的vlookup函数

第一行:当行的编号

第二行:选中B列-V列【编号-身份证号-第1~18位-第18位的校验码】


② 计算每位员工截止2016年12月31日的年龄,每满一年才计算一岁,一年按365天计算。

示例:=INT((DATE(2016,12,31)-E3)/365)

(DATE(2016,12,31)-E3)/365------日期-出生日期/365算年龄,另外INT取整

注意如果输入完结果显示日期,将日期改为常规

③ 在“工作状态”列的空白单元格中填入文本“在职”。 

找到“工作状态”列,右键下拉按钮→取消全选,只勾选空白→选中空白区域→在编辑栏输入:在职→按ctrl+enter→在“工作状态”下拉勾选全选

④ 计算每位员工在本公司工作的工龄,要求不足半年按半年计、超过半年按一年计,一年按365天计算,保留一位小数。其中,“在职”员工的工龄计算截止于2016年12月31日,离职和退休人员计算截止于各自离职或退休的时间。

示例:=CEILING((IF(K3=" ",DATE(2016,12,31),K3)-J3)/365,0.5)          【注:当输入完还显示日期,将日期改为常规】

分析:求工龄,其实就是求离职时间-入职时间,难点在于离职时间有的列出来,有的是空白,而空白需要照着题目用2016,12,31来代替

因此专注于K3离职时间,若=" ",则是2016,12,31;否则就等于K3本身的时间

运用if函数。

示例:=IF(K3=" ",DATE(2016,12,31),K3)         【注:直接加一对双引号,中间不要空格,不然会导致数据出错】

第一行:如果K列离职列没有的话

第二行:按题要求,输入2016.12.31

第三行:有的话,就选择当行的离职时间

if函数写完后,记得减去入职时间,因为if函数求出的仅是离职时间

再除以365,就是工龄

再运用CEILING函数四舍五入

第二行按题要求填0.5

再更改数字,保留一位。最后再双击填充

⑤ 计算每位员工的工龄工资,公式:工龄工资=本公司工龄×50。--------简单

⑥ 计算员工的工资总额,公式:工资总额=工龄工资+签约工资+上年月均奖金。-------简单

4.在工作表 “社保计算”中,按照下列要求计算每个员工本年度每月应缴社保金额:

 ① 依据工作表“员工档案”中的数据,筛选出所有“在职”员工的“员工编号”、“姓名”和“工资总额”三列数据,依次填入B、C、D中,并按员工编号由小到大排序。

首先在员工档案表中、工作状态列,取消全选,勾选在职

在选中员工编号、姓名2列数据,复制,在社保计算表中的B4单元格点击粘贴值

同理将工资总额列复制粘贴过来

点击B4单元格→开始→排序和筛选→升序

 ② 本市上年职工平均月工资为7086元,首先将其定义为常量“人均月工资”,然后依据下列规则计算出每位员工的“社保基数”填入相应E列中,计算时需要在公式中调用新定义的常量“人均月工资”:社保基数最低为人均月工资7086元的60%,最高为人均月工资7086元的3倍:

第一问:随便点表中的单元格→公式→定义名称→更名:人均月工资;引用的位置:7086

第二问:运用if函数

第一行:D4<人均月工资*0.6 (看题给的表,工资总额小于最低基数,而最低基数也就是题目所说的人均月工资的60%)

第二行:人均月工资*0.6   (看题给的表,第一行条件如果成立的话,则社保基数就是最低基数,即人均月工资的60%)

第三行:否则的话还有2种情况,再嵌入一个if函数

示例:IF(D4>人均月工资*3,人均月工资*3,D4)

解释:按照题给的表,如果工资总额>最高基数,就是最高基数(就是人均月工资的3倍);如果不是,就是第三种情况,就是公司总额也就是D4

③ 每个人每个险种的应缴社保费=个人的社保基数×相应的险种费率,按照工作表“社保费率”中所列险种费率分别计算每位在职员工应缴的各险种费用,包括公积负担和个人负担部分。其中:医疗个人负担=社保基数×医疗个人负担比例 +个人额外费用3元 

很简单,别看题目字很多!

红线框出来的计算非常简单,即用社保基数*对应的公司/个人的负担,❗注意点:需要绝对引用,并且题目给出医疗个人还需要加上一个数,勿忘!

当第一行全部填充完,双击填充时,会发现前2列下面出现#VALUE!------解决:将该2列的第一行公式修改,分别改为*B4/C4,但是这样做即使绝对引用还是无效,因此去复制第3列第一行后面乘的东西

改为*社保费率!$B$4/*社保费率!$C$4即可,修改完第一行再双击重新填充即可

④ 为数据表设置恰当的数字格式,套用一个表格格式并取消自动筛选标记。

第一问:选中数值区域,格式改为:货币2位,符号为无

第二问:可随点一个单元格再套用表格格式

5. 以工作表“社保计算”的结果为数据源,参照下列图1所示样例,自新工作表“透视分析”的A3单元格开始生成数据透视表,要求如下

随便点一个单元格→插入透视表→双击重命名

照着样例拖动到右下角

分析:参考样例,发现社保基数分了组,因此需要分组

随点第一列的一个单元格→右键→创建组→再相应根据样例修改


再将第四列数据进行修改成百分比→再右下角的下拉三角形,点击最后一行:值字段设置→值显示方式→列汇总的百分比;再参考样式改名称

① 列标题应与示例图相同。 ----很简单,照着样例修改名称

② 按图中所示调整工资总额的数字格式。----选择第3列→改数字格式:货币2位,无

③ 改变数据透视表样式。---随便点一个单元格→设计→中等深浅26(在中等深浅4行第5个)

-2020.1.18

你可能感兴趣的:(excel28)