Excel数组与数组公式

  数组(Array,繁体版称作阵列)是由数据元素组成的集合,数据无素可以是数值、文本、日期、逻辑、错误值等,数据元素以行和列的形式组织起来,构成一个数据矩阵。

  根据构成元素的不同,在Microsoft_Excel有两类数组:常量数组和单元格区域数组。

  ①常量数组
   常量数组可以同时包含数字、文字、逻辑值和错误值等多种数据类型。它用{}将构成数组的常量括起来,行中的元素用逗号,分隔,行之间用分号;分隔,文本必须用双引号围起来(例如,"playkid")。数组常数不能包含带有逗号、美元符号、括号、百分号的数字,不能包含其他数组、公式或函数。在二维数组中,常量不得含有不同长度的行或列。
   {2,"greensky",TRUE,#N/A,}是一个1行4列的常量数组。

  ②单元格区域数组
   单元格区域数组则是通过对一组连续的单元格区域进行引用而得到的数组。
   {A1:B4}是一个4行2列的单元格区域数组。

  数组的维数,数组可以是一维的也可以是二维的。

  ①一维数组就是一列或一行数。
   {2,"greensky",TRUE,#N/A,}是一个1行4列的一维常量数组。

  ②二维数组就是一片单元格区域,包含多行和多列。纵向数字由分号隔开,横向数字由逗号隔开(逗列分行)。
   {1,2,3;4,5,6}则为一个2行3列的二维常量数组。


  数组公式
  数组公式是指可以在数组的一项或多项上执行多个计算的公式。数组公式可以可以对一批单元格应用一个公式,产生单个结果,也可以同时分列显示多个结果。
  一个数组其实就是一组同类型的数据,可以当做一个整体来处理,而无须对每个单元格一一应用公式。
  数组公式可以认为是Excel对公式和数组的一种扩充,换一句话说,是Excel公式在以数组为参数时的一种应用。

  求1到100的和,答案是5050,在编辑栏中输入=SUM(1+2+3+4+……+98+99+100),这是很SB的方法。
  第2种方法:=SUMPRODUCT(ROW(1:100))
  第3种方法:=SUM(ROW(1:100),之后按Ctrl+Shift+Enter转换成数组。

  如果把数组公式的返回值放入到一个单元格区域内可以呈现返回数组的各个元素的值,这样的公式称为多单元格公式。而位于单元格中的数组公式称为单元格公式。

  每次输入数组公式完成后,不要直接按回车键(Enter),都必须按(Ctrl+Shift+Enter)(不要自己键入花括号),才能完成数组公式。否则,公式就会返回不正确的结果或者返回#VALUE!。

  不能在数组公式中使用列引用(例如"A:A"或"D:D");不能使用逗号和分号连接单元格。

  下面选择D6单元格,输入公式=SUM(B2:B5*C2:C5),按下[Shift]+[Ctrl]+[Enter]键,公式外面会自动加上了一对大括号{},SUM函数将这些销售额相加,就得到了总的销售额。

  在D2到D5单元格中分别输入统一公式=B2:B5*C2:C5,按下[Shift]+[Ctrl]+[Enter]键,D2到D5的格中都会出现用大括弧{}框住的函数式,这表示该数组公式是针对整个数组来处理。

  在上图中,也可以输入公式=SUM(B2:B5*{789;345;233;567})({789;345;233;567}为数组常数),然后按下[Shift]+[Ctrl]+[Enter]键。


  数组的编辑

  数组包含数个单元格,这些单元格形成一个整体,所以,使用数组公式后,数组里的某一单元格不能独立编辑。在编辑数组前,必须先选取整个数组。
  F5→定位→定位条件→当前数组(或者Ctrl+/)
    删除数组:选定存放数组的所有单元格,然后按Delete。
  

  数组的扩充

  =SUM({1,2,3}+{4,5,6})
  =SUM({1;2;3}+{4;5;6})
  =(1+4)+(2+5)+(3+6)
  =5+7+9
  =21
  如果将公式写成=SUM({1,2,3}+4),则第二个数据并不是数组,而是単个数值,为了要和第一个数组相加,Excel会自动将数值扩充成一个数组,使用=SUM({1,2,3}+{4,4,4})做计算。

  =SUMPRODUCT(ROW(1:100))
  =SUMPRODUCT(ROW(1:100),{1;1;1;1;1;...})
  =SUMPRODUCT({1;2;4;5;6;...;100},{1;1;1;1;1;...})
  =1*1+2*1+3*1+4*1+5*1+6*1+…+100*1
  =SUM(1+2+3+4+……+98+99+100)
  =5050
  SUMPRODUCT函数只有一组,为了和第一个数组相加,Excel会自动生成一个数组{1;1;1;1;1;...},也就是就变成了直接求和。

你可能感兴趣的:(软件应用)