Excel 函数 专题二
前面一节课我们讲了 最常用的10个函数 中的前5个,接下来我们接着讲解后面的5个函数。
6.CHOOSE 函数
使用 index_num 返回数值参数列表中的数值。 使用 CHOOSE 可以根据索引号从最多 254 个数值中选择一个。 例如,如果 value1 到 value7 表示一周的 7 天,那么将 1 到 7 之间的数字用作 index_num 时,CHOOSE 将返回其中的某一天。
语法:CHOOSE(index_num, value1, [value2], ...)
index_num 必需。 用于指定所选定的数值参数。 index_num 必须是介于 1 到 254 之间的数字,或是包含 1 到 254 之间的数字的公式或单元格引用。如果 index_num 为 1,则 CHOOSE 返回 value1;如果为 2,则 CHOOSE 返回 value2,以此类推。如果 index_num 小于 1 或大于列表中最后一个值的索引号,则 CHOOSE 返回 #VALUE! 错误值。如果 index_num 为小数,则在使用前将被截尾取整。
value1, value2, ... Value1 是必需的,后续值是可选的。 1 到 254 个数值参数,CHOOSE 将根据 index_num 从中选择一个数值或一项要执行的操作。 参数可以是数字、单元格引用、定义的名称、公式、函数或文本。
如果 index_num 为一个数组,则在计算函数 CHOOSE 时,将计算每一个值。函数 CHOOSE 的数值参数不仅可以为单个数值,也可以为区域引用。例如,下面的公式:=SUM(CHOOSE(2,A1:A10,B1:B10,C1:C10));相当于:=SUM(B1:B10),然后基于区域 B1:B10 中的数值返回值。先计算 CHOOSE 函数,返回引用 B1:B10。 然后使用 B1:B10(CHOOSE 函数的结果)作为其参数来计算 SUM 函数。
7.DATE 函数
如果需要采用三个单独的值并将它们合并为一个日期,使用 Excel 的 DATE 函数。DATE 函数返回表示特定日期的连续序列号。
语法: DATE(year,month,day)
年 必需。 year 参数的值可以包含 1 到 4 位数字。 Excel 根据计算机使用的日期系统解释 年份 参数。 默认情况下,Microsoft Excel for Windows 使用 1900 日期系统,这意味着第一个日期是 1900 年 1 月 1 日。为避免出现意外结果,对 year 参数使用四位数字。 例如,“07”可能意味着“1907”或“2007”。 因此,使用四位数的年份可避免混淆。如果 year 介于 0(零)到 1899 之间(包含这两个值),则 Excel 会将该值与 1900 相加来计算年份。 例如,DATE(108,1,2) 返回 2008 年 1 月 2 日 (1900+108)。如果 year 介于 1900 到 9999 之间(包含这两个值),则 Excel 将使用该数值作为年份。 例如,DATE(2008,1,2) 将返回 2008 年 1 月 2 日。如果 年份 小于 0 或为 10000 或更大,Excel 将返回 #NUM! 。
Month 必需。 一个正整数或负整数,表示一年中从 1 月至 12 月(一月到十二月)的各个月。如果 month 大于 12,则 month 会从指定年份的第一个月开始加上该月份数。 例如,DATE(2008,14,2) 返回表示 2009 年 2 月 2 日的序列数。如果 month 小于 1,则 month 会从指定年份的第一个月开始减去该月份数,然后再加上 1 个月。 例如,DATE(2008,-3,2) 返回表示 2007 年 9 月 2 日的序列号。
Day 必需。 一个正整数或负整数,表示一月中从 1 日到 31 日的各天。如果 day 大于指定月中的天数,则 day 会从该月的第一天开始加上该天数。 例如,DATE(2008,1,35) 返回表示 2008 年 2 月 4 日的序列数。如果 day 小于 1,则 day 从指定月份的第一天开始减去该天数,然后再加上 1 天。 例如,DATE(2008,1,-15) 返回表示 2007 年 12 月 16 日的序列号。
语法:DATE(year,month,day)
例如:=DATE(C2,A2,B2) 将单元格 C2 中的年、单元格 A2 中的月以及单元格 B2 中的日合并在一起,并将它们放入一个单元格内作为日期。 以下示例显示了单元格 D2 中的最终结果。
根据其他日期计算某个日期:
可以使用 DATE 函数创建基于其他单元格中日期的一个日期。 例如,可以使用 YEAR、MONTH 和 DAY 函数来创建基于另一个单元格的周年纪念日期。 假设,某个员工第一天上班的日期为 2016 年 10 月 1 日,则可以使用 DATE 函数创建他上班 5 周年的纪念日期:
DATE 函数会创建一个日期。=DATE(YEAR(C2)+5,MONTH(C2),DAY(C2))
YEAR 函数会查找单元格 C2 并从中提取“2012”。
“+5”表示加上 5 年,并在单元格 D2 中创建“2017”作为周年纪念日的年。
MONTH 函数从单元格 C2 中提取“3”。 这将在单元格 D2 中创建“3”作为月。
DAY 函数从单元格 C2 中提取“14”。 这将在单元格 D2 中创建“14”作为天。
将文本字符串和数字转换为日期:
如果打开来自另一个程序的文件,Excel 将尝试识别数据中的日期。 但有时,日期是无法识别的。 这可能是因为数字与典型的日期不相似,也可能因为数据被设置成了文本格式。 如果是这种情况,则可以使用 DATE 函数将信息转换成日期。 例如,在下图中,单元格 C2 包含采用以下格式的日期:YYYYMMDD。 它也被设置成了文本格式。 若要将其转换成日期,则可以将 DATE 函数与 LEFT、MID 和 RIGHT 函数配合使用。
DATE 函数会创建一个日期。=DATE(LEFT(C2,4),MID(C2,5,2),RIGHT(C2,2))
LEFT 会在单元格 C2 中查找并从左起提取前 4 个字符。 这将在单元格 D2 中创建“2014”作为转换后日期的年。
MID 函数将在单元格 C2 中查找。 它将从第 5 个字符开始,然后向右提取 2 个字符。 这将在单元格 D2 中创建“03”作为转换后日期的月。 因为 D2 的格式设置为 Date,因此“0”不包括在最终结果中。
RIGHT 函数会在单元格 C2 中查找,然后从最右侧开始向左提取前 2 个字符。 这将在 D2 中创建“14”作为日期的日。
按一定的天数加减日期:
若要按一定的天数加减日期,只需向值或包含日期的单元格引用加上或减去天数即可。在以下示例中,单元格 A5 包含我们想加上和减去 7 天(C5 中的值)的日期。
8.DAYS 函数
返回两个日期之间的天数。
语法:DAYS(end_date, start_date)
End_date 必需。 Start_date 和 End_date 是用于计算期间天数的起止日期。
Start_date 必需。 Start_date 和 End_date 是用于计算期间天数的起止日期。
如果两个日期参数为数字,DAYS 使用 EndDate–StartDate 计算两个日期之间的天数。如果任何一个日期参数为文本,该参数将被视为 DATEVALUE(date_text) 并返回整型日期,而不是时间组件。如果日期参数是超出有效日期范围的数值,DAYS 返回 #NUM! 错误值。如果日期参数是无法解析为字符串的有效日期,DAYS 返回 #VALUE! 错误值。
Tips:Excel 可将日期存储为序列号,以便可以在计算中使用它们。 默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39447 天。
9.FIND、FINDB 函数
函数 FIND 和 FINDB 用于在第二个文本串中定位第一个文本串,并返回第一个文本串的起始位置的值,该值从第二个文本串的第一个字符算起。
FIND 适用于使用单字节字符集 (SBCS) 的语言,而 FINDB 适用于使用双字节字符集 (DBCS) 的语言。无论默认语言设置如何,函数 FIND 始终将每个字符(不管是单字节还是双字节)按 1 计数。当启用支持 DBCS 的语言的编辑并将其设置为默认语言时,FINDB 会将每个双字节字符按 2 计数。 否则,FINDB 会将每个字符按 1 计数。
语法:FIND(find_text, within_text, [start_num])
FINDB(find_text, within_text, [start_num])
find_text 必需。 要查找的文本。
within_text 必需。 包含要查找文本的文本。
start_num 可选。 指定开始进行查找的字符。 within_text 中的首字符是编号为 1 的字符。 如果省略 start_num,则假定其值为 1。
FIND 和 FINDB 区分大小写,并且不允许使用通配符。 如果不希望执行区分大小写的搜索或使用通配符,则可以使用 SEARCH 和 SEARCHB 函数。
如果 find_text 为空文本 (""),则 FIND 会匹配搜索字符串中的首字符(即编号为 start_num 或 1 的字符)。
Find_text 不能包含任何通配符。
如果within_text中未显示find_text,FIND 和 FINDB 将返回 #VALUE! 。
如果start_num不大于零,FIND 和 FINDB 将返回 #VALUE! 。
如果start_num大于within_text的长度,FIND 和 FINDB 将返回 #VALUE! 。
可以使用 start_num 来跳过指定数目的字符。 以 FIND 为例,假设要处理文本字符串“AYF0093.YoungMensApparel”。 若要在文本字符串的说明部分中查找第一个“Y”的编号,请将 start_num 设置为 8,这样就不会搜索文本的序列号部分。 FIND 从第 8 个字符开始查找,在下一个字符处找到 find_text,然后返回其编号 9。 FIND 始终返回从 within_text 的起始位置计算的字符编号,如果 start_num 大于 1,则会对跳过的字符计数。
10.INDEX 函数
此函数用于返回表格或区域中的值或值的引用。使用 INDEX 函数有两种方法:如果想要返回指定单元格或单元格数组的值。如果想要返回对指定单元格的引用。
数组形式:返回表元素或数组元素的值,该元素是通过行号和列号索引选定的。当函数 INDEX 的第一个参数为数组常量时,使用数组形式。
语法:INDEX(array, row_num, [column_num])
数组 必需。 单元格区域或数组常量。如果数组只包含一行或一列,则相对应的参数 row_num 或 column_num 为可选参数。如果数组有多行和多列,但只使用 row_num 或 column_num,函数 INDEX 返回数组中的整行或整列,且返回值也为数组。
row_num 必需,除非存在 column_num。 选择数组中的某行,函数从该行返回数值。 如果省略 row_num,则需使用 column_num。Column_num 可选。 选择数组中的某列,函数从该列返回数值。 如果省略 column_num,则需使用 row_num。
如果同时使用 row_num 和 column_num 参数,则 INDEX 返回 row_num 和 column_num 交叉处的单元格中的值。row_num 和 column_num 均必须指向数组内的单元格;否则,INDEX 将返回错误值 #REF! 错误。如果将 row_num 或 column_num 设置为 0(零),则 INDEX 将分别返回整列或整行值的数组。 若要使用作为数组返回的值,请输入 INDEX 函数作为数组公式。
引用格式:返回指定的行与列交叉处的单元格引用。 如果引用由不连续的选定区域组成,可以选择某一选定区域。
语法:INDEX(reference, row_num, [column_num], [area_num])
参考代码 必需。 对一个或多个单元格区域的引用。如果为引用输入一个不连续的区域,必须将其用括号括起来。如果引用中的每个区域均只包含一行(或一列),则 row_num(或 column_num)为可选参数。 例如,对于单行的引用,可以使用函数 INDEX(reference,,column_num)。
row_num 必需。 引用中某行的行号,函数从该行返回一个引用。
Column_num 可选。 引用中某列的列标,函数从该列返回一个引用。
area_num 可选。 选择要返回 row_num 和 column_num 的交叉点的引用区域。 选择或输入的第一个区域的编号为 1,第二个的编号为 2,依此类推。 如果省略 area_num,则 INDEX 使用区域 1。 此处列出的区域必须全部位于一张工作表。 如果指定的区域不位于同一个工作表,将导致 #VALUE!。 错误。 如果需要使用的范围彼此位于不同工作表,建议使用函数 INDEX 的数组形式,并使用其他函数来计算构成数组的范围。 例如,可以使用 CHOOSE 函数计算将使用的范围。
例如,如果引用描述的单元格为 (A1:B4,D1:E4,G1:H4),则 area_num 1 为区域 A1:B4,area_num 2 为区域 D1:E4,而 area_num 3 为区域 G1:H4。
在 reference 和 area_num 选择了特定区域后,row_num 和 column_num 将选择一个特定的单元格:row_num 1 是该区域的第一行,column_num 1 是第一列,依此类推。 INDEX 返回的引用是 row_num 和 column_num 的交叉点。
如果将 row_num 或 column_num 设置为 0(零),INDEX 将分别返回对整列或整行的引用。
row_num、column_num 和 area_num 均必须指向引用中的单元格;否则,INDEX 将返回错误值 #REF! 错误。 如果省略 row_num 和 column_num,则 INDEX 将返回由 area_num 指定的引用区域。
函数 INDEX 的结果为一个引用,且在其他公式中也被解释为引用。 根据公式的需要,函数 INDEX 的返回值可以作为引用或是数值。 例如,公式 CELL("width",INDEX(A1:B2,1,2)) 等价于公式 CELL("width",B1)。 CELL 函数将函数 INDEX 的返回值作为单元格引用。 而在另一方面,公式 2*INDEX(A1:B2,1,2) 将函数 INDEX 的返回值解释为 B1 单元格中的数字。
共有 0 条评论