excel 数组公式引用列求值

大神们早上好。。

现有一个数组公式如下:
=INDEX(B:B,SMALL(IF((A$1:A$100={"ABC","BCD","CDE"})*(C$1:C$100<>0),ROW($1:$100),4^8),ROW(A1)))&""

然后得到的B列值如下:
2
3
4
2
3
1
2
1

但是我求B列的和时得到的是空值。。。公式为=sum(B1:B100)

请问该如何修改呢。。。多谢。。

我不看你的话了 我把公式详细的说一遍
首先是数组公式 输入 修改后要按CTRL+SHIFT+回车

第一层 IF(L3="","",....)

就是如果L3是空那公式就显示空 要不就返回后面的公式 就是 下面这个咯

INDIRECT(ADDRESS(SMALL(IF($A$3:$I$32=L3,ROW($A$3:$I$32)),COUNTIF($L$3:L3,L3)),RIGHT(SMALL(IF($A$3:$I$32=L3,ROW($A$3:$I$32)*1000+COLUMN($A$3:$I$32)),COUNTIF($L$3:L3,L3)),3)-1))

indirect 是引用的意思

ADDRESS是返回一个单元格的地址的意思

连起来就是引用ADDRES返回的单元格里面的数据的意思

address分 行 和列 2个参数

SMALL(IF($A$3:$I$32=L3,ROW($A$3:$I$32)),COUNTIF($L$3:L3,L3))是你的行

RIGHT(SMALL(IF($A$3:$I$32=L3,ROW($A$3:$I$32)*1000+COLUMN($A$3:$I$32)),COUNTIF($L$3:L3,L3)),3)-1)

是你的列

如果行等于1 列等于2

那么INDIRECT(DEERESS(1,2))

就是 1 行 2列 就是B2了

好了 现在INDIRECT addres 说好了 主要讲里面的2个参数返回的原理

SMALL(IF($A$3:$I$32=L3,ROW($A$3:$I$32)),COUNTIF($L$3:L3,L3))

意思是 取出IF($A$3:$I$32=L3,ROW($A$3:$I$32))这里面的第COUNTIF($L$3:L3,L3)小的数字

IF($A$3:$I$32=L3,ROW($A$3:$I$32))意思是如果$A$3:$I$32=L3 那么就返回$A$3:$I$32的行号

这里其实可能不止一个相等 所以返回的是一个数组

后面COUNTIF($L$3:L3,L3) 意思是计算$L$3:L3 里面有几个L3 这里是1个 但走你公式看 下拉后$L$3:L3 会变成4 5 6 那么肯定就不是一个了

结合前面的我理解是返回$A$3:$I$32=L3 里面行号最大的那个行号 COUNTIF($L$3:L3,L3)是相同的数量 SMALL符合条件里面第“ 相同数量” 最小的一个

假设4个相同 那返回第4小的 那么就是最大的咯

下面是列

RIGHT(SMALL(IF($A$3:$I$32=L3,ROW($A$3:$I$32)*1000+COLUMN($A$3:$I$32)),COUNTIF($L$3:L3,L3)),3)-1)

里面SMALL(IF($A$3:$I$32=L3,ROW($A$3:$I$32)*1000+COLUMN($A$3:$I$32)),COUNTIF($L$3:L3,L3))类似上面的解释你应该可以理解

RIGHT意思是取最右面3个

最后减 1 是最外层的 就是RIGHT后减1
不知理解否?
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-11
因为你的公式中,为了使不符合条件引用的空单元格不显示0,公式加了“&""”,使数字变为文本格式。
文本数字是不能用SUM求和的。
方法1、把原公式的“&""”去掉,拖公式时,拖到出现0为止。
(或者在工具——选项——视图中,将“零值”的选勾去掉。)
方法2、求和公式用=SUMPRODUCT(1*B1:B100)
(数据区域不能包含非数字文本。)
第2个回答  2013-04-11
将公式改为:
=--(INDEX(B:B,SMALL(IF((A$1:A$100={"ABC","BCD","CDE"})*(C$1:C$100<>0),ROW($1:$100),4^8),ROW(A1)))&"")
然后再求和就好了。
第3个回答  2013-04-11
公式改为=--INDEX(B:B,SMALL(IF((A$1:A$100={"ABC","BCD","CDE"})*(C$1:C$100<>0),ROW($1:$100),4^8),ROW(A1)))&""
第4个回答  2013-04-11
B列是文本?

excel 数组公式引用列求值
首先是数组公式 输入 修改后要按CTRL+SHIFT+回车 第一层 IF(L3="","",...)就是如果L3是空那公式就显示空 要不就返回后面的公式 就是 下面这个咯 INDIRECT(ADDRESS(SMALL(IF($A$3:$I$32=L3,ROW($A$3:$I$32)),COUNTIF($L$3:L3,L3)),RIGHT(SMALL(IF($A$3:$I$32=L3,ROW($...

excel中用数组公式为一列数组的赋值问题,求教高手
indirect("sheet!$H$"&A5&":$H$"&B5))A5和B5分别是5和100,那么得到的单元格区域是sheet!H5:H100,不是sheet!H5:H10 OFFSET(INDIRECT("sheet!$H$"&A5&":$H$"&B5),1,-7)A5和B5分别是5和100,用这个公式得到的单元格区域就是sheet!A6:A101,不是sheet!A6:A11 这样的公式不是数组公式 ...

excel数组公式求值
E2使用公式:=A2&";"&B2,然后向下填充。然后全选填充区域,Ctrl+C,Ctrl+V粘贴为数值。然后选择粘贴区域,菜单栏数据,删除重复项。然后,数据分列,上面使用;连接,现在在使用;分列就行。最后使用公式:=SUMIFS(C:C,A:A,E2,B:B,F2)向下填充即可。

EXCEL中引用一列数据,如果碰到空白值,怎么通过函数的方法,直接跳过空白...
通过数组公式引用,=INDIRECT("a"&SMALL(IF(NOT(ISBLANK($A$1:$A$5000)),ROW($A$1:$A$5000),36550),ROW(A1)))假设数据在a列,将以上公式输入某一列的第一个单元格CRrl+Shift+Enter 数组 ,然后下拉

Excel怎么用数组公式从一列中提取非空单元格值
Excel用数组公式从一列中提取非空单元格值 如果不使用筛选,还可以用下面的数组公式:假如数据在A2:A20区域中,将提取后的数据放到B列中,在B2单元格中输入数组公式:=INDEX($A$2:$A$20,SMALL(IF($A$2:$A$20="","",ROW($A$2:$A$20)-ROW($A$2)+1),ROW($A2)-ROW($A$2)+1))...

Excel数组公式怎么使用呢?
数组常量不包含单元格引用、长度不等的行或列、公式或特殊字符$(美元符号)、括号或%(百分号)。在使用数组常量或者设置数组常量的格式时,需要注意以下几个问题。数组常量应置于大括号({})中。不同列的数值用逗号(,)分开。例如,要表示数值10、20、30和40,必须输入{10,20,30,40}。这个...

excel从两列中提取相同或不相同数据的数组公式
1.获取A列和B列中相同的数据,在D2中输入数组公式:=INDEX($B$2:$B$15,MATCH(1,COUNTIF(D$1:D1,$B$2:$B$15)+IF(COUNTIF($A$2:$A$20,$B$2:$B$15),1,0),0))或:=INDEX(A:A,SMALL(IF(COUNTIF($B$2:$B$15,$A$2:$A$20),ROW($A$2:$A$20),4^8),ROW(A1))...

EXCEL里面如何引用数组公式得出的结果,如何在数组公式里面在加如其他...
在编辑栏修改公式时,用鼠标将 "XXX" 扫黑,然后点击 张三,李四,王五 所在的单元格。按住ctrl+shift+enter 即可。

EXCEL数组求值问题
假定B1:E1内容为1 2 3 4,A2:A4内容为A B C,其他数据在B2:E4区域,公式如下:=INDEX(B2:E4,MATCH(X,A2:A4,),MATCH(Y,B1:E1,))将X和Y代入公式即可.注意:A B C字符代入公式时要加双引号,如"C".

Excel统计一列中连续相同值的几个数组公式
一、统计“合格”的最大的连续次数 如本例A列中“合格”的连续次数有2次、7次等,最多的为7次。在D2中输入数组公式:=MAX(FREQUENCY(IF(A2:A20="合格",ROW(1:19)),IF(A2:A20>"合格",ROW(1:19)))公式输入完毕后按Ctrl+Shift+Enter结束,下同。公式返回的结果为“7”。说明:本例只有1...

相似回答