分享

Excel制表技巧(50)公式及函数C

 甘苦人生2010 2013-12-14

2.1.2.9  INDEX函数

INDEX函数的功能是返回表格或区域中的数值或对数值的引用。INDEX函数有以下两种形式:

1.返回数组中指定单元格或单元格数组的数值。公式为

= INDEX(array,row_num,column_num)  

式中  array—单元格区域或数组常数;

row_num—数组中某行的行序号,函数从该行返回数值。如果省略row_num,则必须有 column_num;

column_num—数组中某列的列序号,函数从该列返回数值。如果省略column_num,则必须有 row_num。

需要注意的是:如果同时使用 row_num 和 column_num,函数 INDEX 返回 row_num 和 column_num 交叉处的单元格的数值。如果数组只包含一行或一列,则相对应的参数row_num 或column_num为可选。如果数组有多行和多列,但只使用row_num 或column_num,函数INDEX返回数组中的整行或整列,且返回值也为数组。如果将row_num或column_num设置为0,函数INDEX则分别返回整个列或行的数组数值。如果需要使用以数组形式返回的数值时,请在一个水平单元格区域中将函数INDEX作为数组公式输入。此外,row_num和column_num必须指向array中的某一单元格,否则,函数INDEX返回错误值#REF!。

例如:de<INDEX({1,2;3,4},2,2)de< = 4。如果作为数组公式输入,则:de<INDEX({1,2;3,4},0,2)de< = {2;4}

2.返回引用中指定单元格。公式为

INDEX(reference,row_num,column_num,area_num) 

式中  reference—对一个或多个单元格区域的引用;

如果为引用输入一个不连续的选定区域,必须用括号括起来。如果引用中的每个区域只包含一行或一列,则相应的参数row_num或column_num分别为可选项。例如,对于单行的引用,可以使用函数INDEX(reference,column_num)。 

row_num—引用中某行的行序号,函数从该行返回一个引用;

column_num—引用中某列的列序号,函数从该列返回一个引用;

area_num—选择引用中的一个区域,并返回该区域中row_num和column_num的交叉区域。选中或输入的第一个区域序号为1,第二个为2,以此类推。如果省略area_num,函数INDEX使用区域1。

说明:row_num、column_num和area_num必须指向reference中的单元格,否则,函数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单元格中的数字。

2.1.2.10  ADDRESS函数

ADDRESS函数的功能是按照给定的行号和列标,建立文本类型的单元格地址。公式为

= ADDRESS(row_num,column_num,abs_num,a1,sheet_text)

式中  row_num—在单元格引用中使用的行号;

column_num—在单元格引用中使用的列标;

abs_num—指明返回的引用类型,其中:当为1或省略时为绝对引用,当为2时为绝对行号,相对列标,当为3时为相对行号,绝对列标,当为4时为相对引用;

a1—用以指明A1或R1C1引用样式的逻辑值。如果A1为TRUE或省略,函数ADDRESS返回A1样式的引用,如果A1为FALSE,函数ADDRESS返回R1C1样式的引用;

sheet_text—一文本,指明作为外部引用的工作表的名称,如果省略sheet_text,则不使用任何工作表名。

de<例如,ADDRESS(2,3)de<等于“$C$2”;de<ADDRESS(2,3,2)de<等于“C$2”。

2.1.2.11  INDIRECT函数

INDIRECT函数的功能是返回由文字串指定的引用。此函数立即对引用进行计算,并显示其内容。当需要更改公式中单元格的引用,而不更改公式本身时,可使用此函数。公式为

= INDIRECT(ref_text,a1)

式中  ref_text—对单元格的引用,此单元格可以包含A1样式的引用、R1C1样式的引用、定义为引用名称或对文字串单元格的引用,如果ref_text不是合法的单元格的引用,函数INDIRECT返回错误值#REF!;

a1—一逻辑值,指明包含在单元格ref_text中的引用的类型,如果a1为TRUE或省略,ref_text被解释为A1样式的引用,如果a1为FALSE,ref_text被解释为R1C1样式的引用。 

需要注意的是,如果ref_text是对另一个工作簿的引用(外部引用),则那个工作簿必须被打开。如果源工作簿没有打开,函数INDIRECT返回错误值 #REF!。 

例如:如果单元格A1包含文本"B2",且单元格B2包含数值1.333,则:de<INDIRECT($A$1)=de<1.333。

上述介绍的几个查找函数LOOKUP、VLOOKUP、HLOOKUP、MATCH、INDEX、ADDRESS、INDIRECT等在财务分析与决策、预测及建立动态图表等中是非常有用的。

2.1.2.12  矩阵函数——TRANSPOSE函数、MINVERSE函数和MMULT函数

1.TRANSPOSE函数

TRANSPOSE函数的功能是求矩阵的转置矩阵。公式为

= TRANSPOSE(array)

式中,Array—需要进行转置的数组或工作表中的单元格区域。

函数TRANSPOSE必须在某个区域中以数组公式的形式输入,该区域的行数和列数分别与array的列数和行数相同。

【例2-7】假设矩阵A中的值如图2-18中单元格区域A2:C5,求其转置矩阵的步骤如下:

Excel制表技巧(50)公式及函数 - 冬日冰点 - 冰点休闲工作室

图2-18  求转置矩阵

(1)选取存放转置矩阵结果的单元格区域,如E2:H4。

(2)单击工具栏上的【粘贴函数】按钮,在【粘贴函数】对话框中选取函数TRANSPOSE,在该函数对话框中输入(可用鼠标拾取)单元格A2:C5,按“Crtl+Shift+Enter”组合键,即得转置矩阵如图2-18所示。

利用TRANSPOSE函数可以把工作表中的某些行(或列)排列的数据转换成列(或行)排列的数据。例如,由于工作需要,要把工作表中的某些行数据改为列数据,若一个一个地改动数据,将是很麻烦也很费时的,而利用TRANSPOSE函数则可以很轻松地进行这项工作。但需要注意的是,利用TRANSPOSE函数对行(列)数据进行转换,则无法单独修改其中转换单元格区域中的某单元格的数据。

2.MINVERSE函数

MINVERSE函数的功能是返回矩阵的逆矩阵。公式为

= MINVERSE(array)

式中,array—具有相等行列数的数值数组或单元格区域。

MINVERSE函数的使用方法与TRANSPOSE函数是一样的。在求解线性方程组时,常常用到MINVERSE函数。

3.MMULT函数

MMULT函数的功能是返回两数组的矩阵乘积。结果矩阵的行数与 array1 的行数相同,列数与 array2 的列数相同。公式为

= MMULT(array1,array2)

式中  array1, array2—要进行矩阵乘法运算的两个数组。

array1的列数必须与 array2 的行数相同,而且两个数组中都只能包含数值。array1和array2可以是单元格区域、数组常数或引用。如果单元格是空白单元格或含有文字串,或是array1的行数与 array2 的列数不相等时,则函数MMULT返回错误值#VALUE!。 

同样地,由于返回值为数组公式,故必须以数组公式的形式输入。

以例2-7的原矩阵和其转置矩阵为例,它们的乘积矩阵求解方法如下:

(1)选取存放乘积矩阵结果的单元格区域,如J2:L5。

(2)单击工具栏上的【粘贴函数】按钮,在【粘贴函数】对话框中选取函数MMULT,在该函数对话框中的array1栏中输入(可用鼠标拾取)单元格区域A2:C5,在array2栏中输入单元格区域E2:H4,然后按“Crtl+Shift+Enter”组合键,即得矩阵的乘积如图2-18所示。

2.1.2.13  ROUND函数

ROUND函数的功能是返回某个数字按指定位数舍入后的数字。公式为

= ROUND(number,num_digits)

式中  number—需要进行舍入的数字;

num_digits—指定的位数,按此位数进行舍入。

如果num_digits大于0,则舍入到指定的小数位;如果num_digits等于0,则舍入到最接近的整数;如果num_digits小于0,则在小数点左侧进行舍入。

利用ROUND函数可以防止利用格式工具栏上的【增加小数位数】或【减少小数位数】所带来的看起来“假数据”问题的出现,使得工作表上显示的数据真实可靠。实际上,如果需要调整数据的小数位数,最好使用ROUND函数,而不要使用格式工具栏上的【增加小数位数】或【减少小数位数】按钮。

例如,若单元格A1中的数据为14.3772,若使用格式工具栏上的【减少小数位数】按钮将小数位数设为两位,则单元格A1中的数据显示为14. 38,看起来似乎单元格A1的数据为14.38,但实际上仍为14.3772。若在单元格B1中输入公式“=3*A1”,则单元格B1中的数据显示为43.13,也许“不明真相”的人认为单元格B1的数据算错了(14.38乘以3应该等于43.14),但实际上单元格的数据为43.1316,这种看起来的“假”数据可能会对实际工作带来不便。因此,正确的方法应是:单元格B1中应输入公式“=ROUND(3*ROUND(A1,2),2)”,结果为43.14,即先将单元格A1的数据用函数ROUND四舍五入,然后再对计算后的数据四舍五入。

        逻辑运算符

       1.AND 
  用途:所有参数的逻辑值为真时返回TRUE(真);只要有一个参数的逻辑值为假,则返回FALSE(假)。

  语法:AND(logical1,logical2,…)。

  参数:Logical1,logical2,…为待检验的1~30个逻辑表达式,它们的结论或为TRUE(真)或为FALSE(假)。 参数必须是逻辑值或者包含逻辑值的数组或引用,如果数组或引用内含有文字或空白单元格,则忽略它的值。如果指定的单元格区域内包括非逻辑值,AND将返回错误值#value!。

  实例:如果A1=2、A=6,那么公式“=AND(A1A2)”返回FALSE。如果B4=104,那么公式“=IF(AND(1

  2.FALSE

  用途:返回逻辑值FALSE。

  语法:FALSE()

  参数:该函数不需要参数

  实例:如果在A1单元格内输入公式“=FALSE()”,回车后即可返回FALSE。若在单元格或公式中输入文字FALSE,Excel会自动将它解释成逻辑值FALSE。

  3.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”;以此类推直至计算结束,该函数广泛用于需要进行逻辑判断的场合。

  4.NOT

  用途:求出一个逻辑值或逻辑表达式的相反值。如果您要确保一个逻辑值等于其相反值,就应该使用NOT函数。

  语法:NOT(logical)

  参数:Logical是一个可以得出TRUE或FALSE结论的逻辑值或逻辑表达式。如果逻辑值或表达式的结果为FALSE,则NOT函数返回TRUE;如果逻辑值或表达式的结果为TRUE,那么NOT函数返回的结果为FALSE。

  实例:如果A1=6、A2=8,那么公式“=NOT(A1

  5.OR

  用途:所有参数中的任意一个逻辑值为真时即返回TRUE(真)。

  语法:OR(logical1,logical2,...)

  参数:Logical1,logical2,...是需要进行检验的1至30个逻辑表达式,其结论分别为TRUE或FALSE。如果数组或引用的参数包含文本、数字或空白单元格,它们将被忽略。如果指定的区域中不包含逻辑值,OR函数将返回错误#value!。

  实例:如果A1=6、A2=8,则公式“=OR(A1+A2>A2,A1=A2)”返回TRUE;而公式“=OR(A1>A2,A1=A2)”返回FALSE。

  6.TRUE

  用途:返回逻辑值TRUE。

  语法:TRUE()

  参数:该函数不需要参数

  实例:如果在A1单元格内输入公式“=TRUE()”,回车后即可返回TRUE。若在单元格或公式中输入文字TRUE,Excel会自动将它解释成逻辑值TRUE。函数TRUE主要用于与其它电子表格程序兼容。

      Excel公式处理文本有妙招

  一、判断单元格数据类型是否为文本 

  有时,我们需要判断单元格中是否包含文本,这时可以借助ISTEXT函数(具体函数功能以及用法请参阅《Excel常用函数及实例剖析》),如图1所示,在B2单元格中输入公式“=ISTEXT(A2)”。如果单元格中包含文本,则返回值为TRUE,反之,返回值为FALSE。 

Excel制表技巧(50)公式及函数 - 冬日冰点 - 冰点休闲工作室


  二、确定文本字符串的长度

  当需要确定文本字符串的长度时,利用LEN函数可以很容易得出答案(具体函数功能以及用法请参阅《Excel常用函数及实例剖析》)。如图2所示,在B2单元格中输入公式“=LEN(A2)”,复制到恰当位置后,即可得出A列单元格中相应字符串的长度。

Excel制表技巧(50)公式及函数 - 冬日冰点 - 冰点休闲工作室
  三、从文本字符串中提取字符

  有时我们可能需要从文本字符串中提取字符,比如从姓名字符串中提取出姓,从包含国家和城市的字符串中提取出城市名等等。在这种情况下,可以供我们使用的常用函数有三个:LEFT、RIGHTMID
  下面我们用三个实例进一步的体会它们的使用方法: 

  1. 使用LEFT函数提取姓名字符串中的姓字符
  2. 使用RIGHT函数提取城市名称 
  3. 使用MID函数提取区域字符
  四、将数值转换为文本并以指定格式显示

  在某些任务中,我们需要将数值转换为文本,并以指定的格式显示,比如在将金额小写转换为大写格式的过程中,就有这种需求。这时在公式中利用TEXT函数可以很好地解决问题。

  五、 在文本中进行替换

  某些情况下,我们需要将文本字符串中的一部分替换为其他文本,可以在公式中使用这两个函数:SUBSTITUTEREPLACE。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多