“戏说”数组和多单元格数组
to 66楼:数组——可以这么理解:是由单个或多个元素按照行和列组成的具有“矩形”尺寸的元素的集合。比如A1:C4是一个4行3列的具有12个元素的数组,比如{1,2,3;3,4,5}是一个2行3列的具有6个元素的数组。 多单元格数组公式数组公式可以同时进行多个计算并返回一种或多种结果。 计算单个结果此类数组公式通过用一个数组公式代替多个公式的方式来简化工作表模式。 计算多个结果一些工作表函数返回多组数值,或需要将一组值作为一个参数。如果要使数组公式能计算出多个结果,则必须将数组输入到与数组参数具有相同的列数和行数的单元格区域中。——这个就是多单元格数组公式了。 首先,我们在A1输入=small({1,2,3,6},{2,4})直接回车或者按三键回车形成单个数组公式,可以看到返回的结果是2,实际上——返回的结果是{2,6}(用前面介绍的“独孤九剑”F9键在编辑栏可以查看得到的。把公式下拖右拖都一样,显示的都是2——这是因为普通公式只能显示返回数组的左上角的第一个元素。(注意:数组的尺寸、形状概念)
戏说
Excel规定:在一个单元格只能显示一个元素,于是元素们要打架,谁都想争着先上镜头(一个单元格像是一个镜头),那怎么行!于是Excel还规定,元素按照自己的行、列的“位置”上镜头,谁也不许抢,各就各位!按下Ctrl+shift+enter结束就是电脑操作者跟Excel说“嘿!我是数组,要按照数组公式给我待遇哦!” 当选择多个单元格输入公式再按下三键结束时,也就是电脑操作者跟Excel说“嘿!我们是多单元格数组,注意给我留好镜头,兄弟们都想露脸呢!” 于是——假如=small({1,2,3,6},{2,4})在一个单元格输入,那么永远只有左上角那个抢得到镜头,假如在多个单元格输入而没有组成多单元格数组公式,那么也是永远只有左上角那个抢得到镜头,只有当组成多单元格数组公式的单元格的形状和尺寸和公式返回的数组的形状尺寸一模一样时,各个元素才能照出“全家福”来,如果尺寸多了,就会多出一些错误值或者别的。 再回来看楼主的问题A1:A4——这是一个4行1列的矩形,而=small({1,2,3,6},{1,2,3,4})则是1行4列的矩形,照不出全家福的,呵呵。应该是A1:D1才对。
不少人对同一个公式三种不同方式(即普通公式、数组公式、多单元格数组公式)返回的3个结果表示疑惑,这里,再用“摄影镜头”的角度来说一说吧:
当它是普通公式的时候这个结果遵循隐含交叉的返回对应行的结果。——相当于你请了一些独立的摄影师想拍全家福,结果摄影师们的镜头转座生锈了,只能拍到他们各自镜头看得见的那个人(隐含交叉到了),如果镜头看不到,拍出来当然是错的。 当它是单个单元格数组公式的时候——相当于你请了一些独立的摄影师想拍全家福,结果摄影师们都只对着“数组左上角的元素”——他最抢镜头。所以洗出照片一看——大家都是一样。 当它是个多单元格数组公式的时候——相当于你请了1个摄影师想拍全家福,而且这个摄影师的镜头不错,全都包进去了(如果摄影师技术差一些[数组返回结果的个数与组成多单元格数组公式的单元格格数不一致],就会漏掉几个人[单元格设少了]或者多拍到了边上的闲杂人[单元格设多了])
[此贴子已经被作者于2006-5-23 9:20:06编辑过] |