ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 27363|回复: 79

[原创] 庖丁解牛:学习自己需要的函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-4-19 11:23 | 显示全部楼层 |阅读模式
庖丁解牛之:
人力资源实战应用系列函数
对于常用EXCEL的人来说,函数这个字眼也许并不陌生,但至于函数的用途与威力,了解或熟悉的人恐怕是少之又少。我们常见的函数中,有常用函数,统计函数,文本函数,信息函数,财务函数等等。但好像未有听说过人力资源函数这个字眼。我在这里所说的人力资源函数并不是一组专门的函数,而是根据人力资源实践工作中,把经常用到的一些函数集中起,以实现人力资源工作者在实践中用极少数相关的函数在来完成大部分工作。我们在EH论坛中随便看看,不泛好帖,特别是函数,每天数以千计的帖子中,光是精华帖就可以让人目不接霞,如http://club.excelhome.net/viewth ... p;extra=&page=1http://club.excelhome.net/viewth ... p;extra=&page=1http://club.excelhome.net/viewth ... p;extra=&page=1,,,http://www.excelhome.net/catalog.asp?cate=4  等等,都即细致,又全面,是函数初学者了良师益友。我也常常拜读。但是,里边好的东西太多了,而我们真正用到得虽然在其中,但要想把他归纳总结出来,为自己所用,恐怕是“冰冻三尺,非一日之寒。”一个人的精力是用限的,人一生要做的事太多,好的东西我们不可能把占完,特别是知识,够用就好,或者说,先解当务之急,只知其然,待抽出时间,自己也有点底子是再知其所以然。闲话少说,接下来就跟着我一起开始我们的EXCEL人力资源函数之旅吧。
当然,我们要想学习函数,首先,一点点基础还是要的,至少我们要知道函数是怎么回事吧。那下面我们就来看一看函数的一点点基础知识,对公式和函数有个初步的了解。


为了便于阅读,本人在此作一下整理,目录如下:

二楼:函数基础知识帖

三楼:人力资源建与建表函数索引

八楼:身份证号的性别提取

十二楼:工龄与年龄的提取:日期函数操作

十三楼:身份证号的出生日期提取  MID

二十楼:附件下载

二十四楼:籍贯提取

三十一楼:18位身份证号的原15位号提取

三十五楼:身份证编码规则与验证。

(下接二楼)

[ 本帖最后由 宏业教育 于 2010-5-11 18:15 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-19 11:25 | 显示全部楼层
一、函数应用基础
(一)函数和公式
1.什么是函数
Excel 函数即是预先定义,执行计算、分析等处理数据任务的特殊公式。以常用的求和函数SUM 为例,它的语法是“SUM(number1,number2,......)”。其中“SUM”称为函数名称,一个函数只有唯一的一个名称,它决定了函数的功能和用途。函数名称后紧跟左括号,接着是用逗号分隔的称为参数的内容,最后用一个右括号表示函数结束。参数是函数中最复杂的组成部分,它规定了函数的运算对象、顺序或结构等。使得用户可以对某个单元格或区域进行处理,如分析存款利息、确定成绩名次、计算三角函数值等。按照函数的来源,Excel 函数可以分为内置函数和扩展函数两大类。前者只要启动了Excel,用户就可以使用它们;而后者必须通过单击“工具→加载宏”菜单命令加载,然后才能像内置函数那样使用。
2.什么是公式
函数与公式既有区别又互相联系。如果说前者是Excel预先定义好的特殊公式,后者就是由用户自行设计对工作表进行计算和处理的公式。以公式“=SUM(E1:H1)*A1+26”为例,它要以等号“=”开始,其内部可以包括函数、引用、运算符和常量。上式中的“SUM(E1:H1)”是函数,“A1”则是对单元格A1 的引用(使用其中存储的数据),“26”则是常量,“*”和“+”则是算术运算符(另外还有比较运算符、文本运算符和引用运算符)。如果函数要以公式的形式出现,它必须有两个组成部分,一个是函数名称前面的等号,另一个则是函数本身。
(二)函数的参数
函数右边括号中的部分称为参数,假如一个函数可以使用多个参数,那么参数与参数之间使用半角逗号进行分隔。参数可以是常量(数字和文本)、逻辑值(例如TRUE 或FALSE)、数组、错误值(例如#N/A)或单元格引用(例如E1:H1),甚至可以是另一个或几个函数等。参数的类型和位置必须满足函数语法的要求,否则将返回错误信息。
1.常量
常量是直接输入到单元格或公式中的数字或文本,或由名称所代表的数字或文本值,例如数字“2890.56”、日期“2003-8-19”和文本“黎明”都是常量。但是公式或由公式计算出的结果都不是常量,因为只要公式的参数发生了变化,它自身或计算出来的结果就会发生变化。
2.逻辑值
逻辑值是比较特殊的一类参数,它只有TRUE(真)或FALSE(假)两种类型。例如在公式“=IF(A3=0,"",A2/A3)”中,“A3=0”就是一个可以返回TRUE(真)或FALSE(假)两种结果的参数。当“A3=0”为TRUE(真)时在公式所在单元格中填入“0”,否则在单元格中填入“A2/A3”的计算结果。
3.数组
数组用于可产生多个结果,或可以对存放在行和列中的一组参数进行计算的公式。Excel 中有常量和区域两类数组。前者放在“{}”(按下Ctrl+Shift+Enter 组合键自动生成)内部,而且内部各列的数值要用逗号“,”隔开,各行的数值要用分号“;”隔开。假如你要表示第1 行中的56、78、89 和第2 行中的90、76、80,就应该建立一个2 行3 列的常量数组“{56,78,89;90,76,80}。
区域数组是一个矩形的单元格区域,该区域中的单元格共用一个公式。例如公式“=TREND(B1:B3,A1:A3)”作为数组公式使用时,它所引用的矩形单元格区域“B1:B3,A1:A3”就是一个区域数组。
4.错误值
使用错误值作为参数的主要是信息函数,例如“ERROR.TYPE”函数就是以错误值作为参数。它的语法为“ERROR.TYPE(error_val)”,如果其中的参数是#NUM!,则返回数值“6”。
5.单元格引用
单元格引用是函数中最常见的参数,引用的目的在于标识工作表单元格或单元格区域,并指明公式或函数所使用的数据的位置,便于它们使用工作表各处的数据,或者在多个函数中使用同一个单元格的数据。还可以引用同一工作簿不同工作表的单元格,甚至引用其他工作簿中的数据。根据公式所在单元格的位置发生变化时,单元格引用的变化情况,我们可以引用分为相对引用、绝对引用和混合引用三种类型。以存放在F2 单元格中的公式“=SUM(A2:E2)”为例,当公式由F2 单元格复制到F3 单元格以后,公式中的引用也会变化为“=SUM(A3:E3)”。若公式自F 列向下继续复制,“行标”每增加1 行,公式中的行标也自动加1。如果上述公式改为“=SUM($A $3:$E $3)”,则无论公式复制到何处,其引用的位置始终是“A3:E3”区域。
混合引用有“绝对列和相对行”,或是“绝对行和相对列”两种形式。前者如“=SUM($A3:$E3)”,后者如“=SUM(A$3:E$3)”。上面的几个实例引用的都是同一工作表中的数据,如果要分析同一工作簿中多张工作表上的数据,就要使用三维引用。假如公式放在工作表Sheet1 的C6 单元格,要引用工作表Sheet2 的“A1:A6”和Sheet3 的“B2:B9”区域进行求和运算,则公式中的引用形式为“=SUM(Sheet2!A1:A6,Sheet3!B2:B9)”。也就是说三维引用中不仅包含单元格或区域引用,还要在前面加上带“!”的工作表名称。假如你要引用的数据来自另一个工作簿,如工作簿Book1中的SUM 函数要绝对引用工作簿Book2 中的数据,其公式为“=SUM([Book2]Sheet1! SA S1: SA S8,[Book2]Sheet2! SB S1:SB S9)”,也就是在原来单元格引用的前面加上“[Book2]Sheet1!”。放在中括号里面的是工作簿名称,带“!”的则是其中的工作表名称。即是跨工作簿引用单元格或区域时,引用对象的前面必须用“!”作为工作表分隔符,再用中括号作为工作簿分隔符。不过三维引用的要受到较多的限制,例如不能使用数组公式等。
提示:上面介绍的是Excel 默认的引用方式,称为“A1引用样式”。如果你要计算处在“宏”内的行和列,必须使用“R1C1 引用样式”。在这种引用样式中,Excel 使用“R”加“行标”和“C”加“列标”的方法指示单元格位置。启用或
关闭R1C1 引用样式必须单击“工具→选项”菜单命令,打开对话框的“常规”选项卡,选中或清除“设置”下的“R1C1引用样式”选项。由于这种引用样式很少使用,限于篇幅本文不做进一步介绍。
6.嵌套函数
除了上面介绍的情况外,函数也可以是嵌套的,即一个函数是另一个函数的参数,例如“=IF(OR(RIGHTB(E2,1)="1",RIGHTB(E2,1)="3",RIGHTB(E2,1)="5",RIGHTB(E2,1)="7",RIGHTB(E2,1)="9"),"男","女")”。其中公式中的IF 函数使用了嵌套的RIGHTB 函数,并将后者返回的结果作为IF 的逻辑判断依据。
7.名称和标志
为了更加直观地标识单元格或单元格区域,我们可以给它们赋予一个名称,从而在公式或函数中直接引用。例如“B2:B46”区域存放着学生的物理成绩,求解平均分的公式一般是“=AVERAGE(B2:B46)”。在给B2:B46 区域命名为“物理分数”以后,该公式就可以变为“=AVERAGE(物理分数)”,从而使公式变得更加直观。
给一个单元格或区域命名的方法是:选中要命名的单元格或单元格区域,鼠标单击编辑栏顶端的“名称框”,在其中输入名称后回车。也可以选中要命名的单元格或单元格区域,单击“插入→名称→定义”菜单命令,在打开的“定义名称”对话框中输入名称后确定即可。如果你要删除已经命名的区域,可以按相同方法打开“定义名称”对话框,选中你要删除的名称删除即可。
由于Excel 工作表多数带有“列标志”。例如一张成绩统计表的首行通常带有“序号”、“姓名”、“数学”、“物理”等“列标志”(也可以称为字段),如果单击“工具→选项”菜单命令,在打开的对话框中单击“重新计算”选项卡,选中“工作簿选项”选项组中的“接受公式标志”选项,公式就可以直接引用“列标志”了。例如“B2:B46”区域存放着学生的物理成绩,而B1 单元格已经输入了“物理”字样,则求物理平均分的公式可以写成“=AVERAGE(物理)”。
需要特别说明的是,创建好的名称可以被所有工作表引用,而且引用时不需要在名称前面添加工作表名(这就是使用名称的主要优点),因此名称引用实际上是一种绝对引用。但是公式引用“列标志”时的限制较多,它只能在当前数据列的下方引用,不能跨越工作表引用,但是引用“列标志”的公式在一定条件下可以复制。从本质上讲,名称和标志都是单元格引用的一种方式。因为它们不是文本,使用时名称和标志都不能添加引号。
(三)函数输入方法
对Excel 公式而言,函数是其中的主要组成部分,因此公式输入可以归结为函数输入的问题。
1.“插入函数”对话框
“插入函数”对话框是Excel 输入公式的重要工具,以公式“=SUM(Sheet2!A1:A6,Sheet3!B2:B9)”为例,Excel 输入该公式的具体过程是:
首先选中存放计算结果(即需要应用公式)的单元格,单击编辑栏(或工具栏)中的“fx”按钮,则表示公式开始的“=”出现在单元格和编辑栏,然后在打开的“插入函数”对话框中的“选择函数”列表找到“SUM”函数。如果你需要的函数不在里面,可以打开“或选择类别”下拉列表进行选择。最后单击“确定”按钮,打开“函数参数”对话框。
对SUM 函数而言,它可以使用从number1 开始直到number30 共30 个参数。对上面的公式来说,首先应当把光标放在对话框的“number1”框中,单击工作簿中的“Sheet2!”工作表标签,“Sheet2!”即可自动进入其中,接着鼠标拖动选中你要引用的区域即可。接着用鼠标单击对话框的“number2”框,单击工作簿中的“Sheet3!”工作表标签,其名称“Sheet3!”即可自动进入其中,再按相同方法选择要引用的单元格区域即可。
上述方法的最大优点就是引用的区域很准确,特别是三维引用时不容易发生工作表或工作簿名称输入错误的问题。
2.编辑栏输入
如果你要套用某个现成公式,或者输入一些嵌套关系复杂的公式,利用编辑栏输入更加快捷。
首先选中存放计算结果的单元格;鼠标单击Excel 编辑栏,按照公式的组成顺序依次输入各个部分,公式输入完毕后,单击编辑栏中的“输入”(即“√”)按钮(或回车)即可。手工输入时同样可以采取上面介绍的方法引用区域,以公式“=SUM(Sheet2!A1:A6,Sheet3!B2:B9)”为例,你可以先在编辑栏中输入“=SUM()”,然后将光标插入括号中间,再按上面介绍的方法操作就可以引用输入公式了。但是分隔引用之间的逗号必须用手工输入,而不能像“插入函数”对话框那样自动添加。

档案附件.rar

158.43 KB, 下载次数: 704

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-19 11:26 | 显示全部楼层
二、人力资源建库与建表的几个函数
一般说来,企业要对人员进行管理,一个简单明了的花名册与人员的电子档案是必有可少的,但企业的人员是在不断的流动的,特别是针对一些低技能的劳动密集型企业,员工的流动量是相当大的,每进出一个员工,人事部门要人事部门都要做若干的资料,一些大型一点的企业,一个月一招就是好几百,上千人。这样的工作量相当大。通常情况下,人事档案主要是根据企业的一些基本事项与员工的身份证信息作为基础来建立,而真正麻烦与肯出错的内容也就是身份证,如姓名,性别,出生日期,籍贯,身份证号,年龄,工龄,等等,都是围绕着身份证来的,特别是身份证号,最简单的18个数字,也是最容易出错的,对果用手工对的话,相当枯燥无味,当然正确率比较低,特别是一些假证,我们不能每一个都是靠肉眼去识别。如果用函数解决,就很多问题都迎刃而解了。
(附件)
根据附件表来看,这张简单的人事档案表有21项,除去无们要隐藏的辅助列也还有十七八列,如果是一项一项输,就算是100个人,我们够输入一阵子的了,一名人事工作者不可能只做输入档案一项工作。如果把大量的时间花在档案上,其它的工作也就无法展开了。接下来,我看就从第一个涉及函数的单元格开始讲解:
=IF(M3="","",IF(MOD(RIGHT(LEFT(M3,17)),2),"男","女"))
在E3单元格中,我们看到了有这样一个公式,她是由四个函数构成的,其目的是根据身份证号的第17位数来判断该编号人员的性别。
我们先来解析这四个函数中的第一个:IF 函数。IF函数是一个条件判断函数,我们来看下她的写法与用途。
用途:执行逻辑判断,它可以根据逻辑表达式的真假,返回不同的结果,从而执行数值或公式的条件检测任务。 语法:IF(logical_test,value_if_true,value_if_false)。 参数:Logical_test 计算结果为TRUE 或FALSE 的任何数值或表达式;Value_if_true 是Logical_test 为TRUE 时函数的返回值,如果logical_test 为TRUE 并且省略了value_if_true, 则返回TRUE。而且Value_if_true 可以是一个表达式;Value_if_false 是Logical_test 为FALSE 时函数的返回值。如果logical_test 为FALSE 并且省略value_if_false, 则返回FALSE。Value_if_false 也可以是一个表达式。 实例:公式“=IF(C2>=85,"A",IF(C2>=70,"B",IF(C2>=60,"C",IF(C2<60,"D"))))”, 其中第二个IF 语句同时也是第一个IF 语句的参数。同样,第三个IF 语句是第二个IF 语句的参数,以此类推。例如,若第一个逻辑判断表达式C2>=85 成立,则D2 单元格被赋值“A”;如果第一个逻辑判断表达式C2>=85 不成立,则计算第二个IF 语句“IF(C2>=70”;以此类推直至计算结束,该函数广泛用于需要进行逻辑判断的场合。
在本例中,IF 函数主要起到了两个作用,第一次出现(IF(M3=””,””……,这是什么意思呢,它是起一个错误控制的作用,意思为如果M3为空值,(即M3这个单元格没有内容的话,就不对它进行任何的操作,其反回结果为空;第二次出现(……IF(MOD(……,在这里又是什么意思呢?在这个地方是前边一个条件的补充,即如果M3单元格不为空呢,就执行后边的操作。

[ 本帖最后由 宏业教育 于 2010-4-20 18:26 编辑 ]

性别附件.rar

5.29 KB, 下载次数: 466

TA的精华主题

TA的得分主题

发表于 2010-4-19 11:27 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-4-19 11:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主辛苦了,谢谢分享经验.

TA的精华主题

TA的得分主题

发表于 2010-4-19 11:37 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-4-19 11:42 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-19 12:04 | 显示全部楼层
上接三楼)接下来,再分析=IF(M3="","",IF(MOD(RIGHT(LEFT(M3,17)),2),"男","女"))中的LEFT函数。
用途:根据指定的字符数返回文本串中的第一个或前几个字符。此函数用于双字节字符。 语法:LEFT(text,num_chars)或LEFTB(text, num_bytes)。 参数:Text 是包含要提取字符的文本串;Num_chars 指定函数要提取的字符数,它必须大于或等于0。Num_bytes按字节数指定由LEFTB 提取的字符数。 实例:如果A1=电脑爱好者,则LEFT(A1,2)返回“电脑”,LEFTB(A1,2)返回“电”。
该函数在这里的作用是将M3中的18位身份证号的前17号提取出来,以供我们的MOD函数使用。为什么要把它取出来呢,我们都知道,按身份证编码的规则,18位数的身份证前17位是性别位,它所记录的是性别信息。所以,我们先将它提取出来。
接下来,要分析的是=IF(M3="","",IF(MOD(RIGHT(LEFT(M3,17)),2),"男","女"))中的RIGHT函数,RIGHT 或RIGHTB
用途:RIGHT 根据所指定的字符数返回文本串中最后一个或多个字符。RIGHTB根据所指定的字节数返回文本串中最后一个或多个字符。 语法:RIGHT(text,num_chars),RIGHTB(text,num_bytes) 。参数:Text 是包含要提取字符的文本串;Num_chars 指定希望RIGHT 提取的字符数,它必须大于或等于0。如果num_chars 大于文本长度,则RIGHT 返回所有文本。如果忽略num_chars, 则假定其为1。Num_bytes 指定欲提取字符的字节数。 实例:如果A1=学习的革命,则公式“=RIGHT(A1,2)”返回“革命”,=RIGHTB(A1,2)返回“命”。  
从边来的解释来看,RIGHT函数是把LEFT函数所提取出来的17位数最又边的一位数取出来,当然,这里的两步如果换成MID(M3,17,1)其效果也是一样的。到于MID,安排到另外的实例中讲解。
接下来就是MOD出场了。公式中的MOD函数其用途为:返回两数相除的余数,其结果的正负号与除数相同。语法:MOD(number,divisor) 参数:Number为被除数,Divisor为除数(divisor不能为零)。 实例:如果A1=51,则公式“=MOD(A1,4)”返回3; =MOD(-101,-2)返回–1。
看了上边的解释,我们应该可以看得出,MOD在这里就是将前边两位函数所取出来的身份证编码中的第17位数除以2,得出其余数,根据余数来验证第身份证的第17位数是奇数还是偶数。最后把任务交给公式中的第二个IF函数。
编码规则中,如果第17位是奇数,则该身份证为男性,为偶数则是女性。这一个IF函数在这里就是根据MOD所求出来的余数确定,如有余数,则是男,反之,则是女,这就是后边那的“男”,与“女”。
根据以上的步骤,我们就完成了第一个公式的编写。
最后,我也用一句小学老师的语气问一下,大家是否明白了呢。如果明白,请自己动手操作。我知道在EH论坛,这点东西也就是雕虫小技,班门弄斧。如帖子有不妥之处,还敬请各位老师与朋友批评批评。

[ 本帖最后由 宏业教育 于 2010-4-19 18:14 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-4-19 12:12 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-4-19 13:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
支持一下楼主,辛苦了,期待楼主讲完,这个帖对于人力资源人员来说,很有价值,谢谢。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-8 01:57 , Processed in 0.034403 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表