Excel函数公式引用教学
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Excel函数公式引用教学
这几个函数都非常简单易用,掌握这些函数几乎不需要具备什么背景知识或技巧,使用Excel的自动求和功能甚至可以帮你自动生成这些函数公式。
这里唯一需要提醒的,就是要注意COUNT函数和COUNTA函数的区别。这两个函数都是用来统计个数,但前者的统计对象只有数值,而后者会把其他类型的数据单元格也包含其中,只要不是空白单元格,就都会统计进去。
例如上面这张图当中,同样都是对7个单元格进行统计,但COUNT函数的眼里只有那三个数字,剩下的几个名字都被忽略了;而COUNTA函数就把包含数字和名字的这几个单元格一股脑儿统计在内,只把空白单元格排除在外。COUNTA函数名称当中的字母A可以看作是英文“All”全部、所有的意思。
第一个例子,有B列这样一列文本,每个单元格的内容是两个站点的名称,需要将其中的两个名称分别提取出来,生成C列和D列这样的结果。这里由于每个站点名称的长度都不尽相同,如果单纯使用LEFT或RIGHT函数很难找到一个统一的第二参数一次性得到全部对象的提取结果。
因此更科学高效的方案是利用每两个站点名称当中出现的标志性字符“至”,比如“新天地至南京西路”中间的“至”、“上海图书馆至静安寺”中间的“至”,利用这个字的分隔性作用,借助FIND函数来找到这个字的所在位置,再根据这个位置进行一些调整,这样就能够确定LEFT或RIGHT函数所需要的第二参数的具体取值了。我们来看一下下面这张图:
先通过FIND函数先查找“至”字所在的位置,将这个位置减去1,就是左侧站点名称的长度;类似的,如果将整个字符串的长度减去“至”的位置,就可以确定右侧站点名称的长度。有了这两个长度结果,最后再使用LEFT和RIGHT函数就可以分别提取出左侧站点和右侧站点的名称了。
所以最终的解决方案可以是下面图中这个样子的,C列使用第12行中所显示的公式,D列的公式显示在第13行当中:
第二个例子,B列当中有中文和英文数字混排的字符串,比较有规律的地方在于中文字符都在左侧,而字母和数字都出现在右侧,没有相互混杂的情况,现在需要把这两部分分别提取出来,生成C列和D列这样的结果。这个问题应该如何处理呢?
需要说明的是,到目前为止,Excel当中还没有能够自动识别中文还是英文的这样一个函数,但是中文字符和英文字符以及数字之间,存在一个比较隐蔽的差异,就是中文字符都是全角字符,每个字符包含两个字节;而普通的英文数字都是半角字符,每个字符只包含一个字节。利用这个特性,我们可以使用LEN函数和LENB函数分别测量出目标字符串中的字符个数和字节个数,两者对比产生的差异,就可以反映出其中中文字符的个数了。
具体的原理可以看一下下面这张图:
使用LENB函数可以获取整个字符串当中所包含的字节数,比如图上的这些A就代表了字节;而使用LEN函数可以获取整个字符串当中的字符个数,这张图上的这些B就代表了字符;可以很明显的看出来,每个汉字会多出一个A,因此A的总数量会比B的数量多出4个,也就是其中汉字的个数。所以,汉字的个数就等于字节数减去字符数。
所以最终的解决方案可以是上面图中的这个样子,通过LENB和LEN函数分别获取字符串中的字节个数和字符个数,通过两者的差值得到汉字个数,再用LEFT函数将其提取出来;另一方面,英文和数字的个数就等于总字符个数减去汉字个数,做一下数学换算可以知道实际就等价于两倍的字符个数减去字节个数,获取到这个结果以后就可以使用RIGHT函数提取出右边的这些字母和数字,这样就能实现中英文的分离处理了。
所以通过上面的两个例子,我们可以了解到对于一些复杂的字符串处理问题,通常都需要多种不同功能的文本处理函数一起协同工作、配合使用,才能有效的达到目的。
其实,在Excel当中,日期的实质就是从1900年1月1日这天开始每天累计递增的一个数字,了解了这个本质特性之后,日期的常规运算都可以转化成数学上简单的算术运算。要处理一些更复杂的日期换算呢就需要用到图上所显示的这些常用的日期函数了,但这些日期函数在使用上也都算不上复杂,
只有一些简单的参数设置。
YEAR/MONTH/DAY函数可以从日期当中分别拆分出年/月/日信息;
TODAY和NOW函数可以自动获取系统当前的日期和时间,可以用于建立一些具备到期提醒功能的自动化模型;WEEKDAY和WEEKNUM可以处理与星期相关的问题;
而WORKDAY和NETWORKDAYS函数则主要进行跟工作日有关的运算。
这里我选择了一些有时间限制的游戏卡牌作为他们的象征。
其中值得特别一提的是WORKDAY函数,它可以用来推算若干个工作日以后的具体日期,在一些项目管理的场景中应用较多。在常规的用法当中,这个函数对工作日的定义就是一周当中排除掉周六和周日以后的其他几天。比如下面图中所显示的这个例子:
2016年4月25日之后的第10个工作日的日期,使用WORKDAY函数得到的结果是2016年5月9日,实际上就是把这段日期当中所包含的四个周六和周日都排除在外了,可以看一下下面这张图的示意:
但是除了常规的周六周日之外,有时候也会有一些法定假日不能算在工作日之内,比如今年的五一节,除了30号和1号之外,五月二号礼拜一也是安排为假日。在这种情况下,如何可以把法定假日也排除在外,正确的推算工作日日期呢?
在这种情况下就可以利用WORKDAY函数隐含的第三个参数,来为函数指定一些需要特殊处理的非周末假期。具体操作方法是将这些非周末假期罗列在表格当中,然后使用WORKDAY函数时将第三参数引用这个罗列了假期的单元格区域,就可以正确计算了。具体公式可以看下面这张图。与此类似,NETWORKDAYS函数也可以在计算工作日天数时排除一些特定的假期。
下面这张图就示意了定义过特殊假期以后,WORKDAY函数的实际运算方式:
从这个案例当中,可以了解到,有些函数会包含一些比较隐蔽的参数,这些参数在平常函数的使用中可以不参与不出现,所以往往容易被人忽略,但有一些时候这些参数却能起到非常重要的作用,除了上面提到的WORKDAY、NETWORKDAYS函数之外,类似的情况还有RANK函数的第3个参数、FIND 函数的第3个参数、SUBSTITUTE函数的第4个参数等等。
下面图片当中简单罗列了这些需要注意的函数: