这主要是因为公式前面部份=INDEX(C$1:C$111 与后面的4^9(一般是4^8)这不对称引起的,这两部份相当行数。公式在一开始就固定在C1:C111共111行这个区域中,但后面的4^9=262144行,前面是要求固定读取范围在111行,后面却要求读取第262144行的数据,后者不能大于前者,一般是两者是相等的,可...
这个函数就是提取A列的非空单元格=INDEX($A$1:$A$100,SMALL(IF(A$1:A$100<>"",ROW($1:$100),65536),ROW(A1)))&""
意思是说,如果$A$1:$A$13中不重复的,就指向A65536,前提条件就是A65536使用。当公式取到A65536的值时,因这个单元格是空的,所以返回0值,加&""是将其转为文本空值。
获取一系列的行号后,由SMALL函数从中选取一个,然后用INDEX函数根据这个行号,从B列中找出对应的单元格。
1、index(c:c,x)取c列第x单元。2、small(a,b)取数组a中第b小的值。3、if(a,b,c)a为真取b值,a为假,取c值。4、row(A1)取a1的行号即1,往下拉变row(A2)=2,用这个的目的就是在公式下拉时产生一个序列数。5、&""数字转文本,在这里的作用是避免公式下拉超过最后一个可提取数据时...
=INDEX(B:B,SMALL(IF($A$1:$A$100=$F$1,ROW($1:$100),4^8),ROW(A1)))数组公式,按下SHIFT+CTRL+ENTER三键结束输入,再右拉,下拉复制公式 如果不想出现0值 公式改成 =INDEX(B:B,SMALL(IF($A$1:$A$100=$F$1,ROW($1:$100),4^8),ROW(A1)))&""如图 ...
=INDEX(明细!D:D,SMALL(IF(明细!$C$1:$C$2000=$I$5,ROW($1:$2000),2^10),ROW(A1)))&""公式表示:将明细表中满足C列等于当前工作表的I5单元格条件的对应明细表中的D列数据筛选出来、逐一罗列。
这个公式的意思是返回A1:D1中没有在A3:D3中出现的数据,不管公式输入在哪个单元格,公式都不需要变动,直接用原公式即可。这里的SMALL(……,COLUMN(A$1))指的是第1小,右拉依次为第2小……。数组公式,必须CTRL+SHIFT+ENTER三键齐按结束公式编辑。
这是没问题的 如果不是$A$1,就会跳位 原因我也弄不明白 只知道调整公式如下 =INDEX($B$1:$I$1,SMALL(IF($B$2:$I$2=$C$8,COLUMN($B$2:$I$2)-1,8^8),ROW(B1)))或者 =INDEX($A$1:$I$1,SMALL(IF($A$2:$I$2=$C$8,COLUMN($A$2:$I$2),8^8),ROW(B1)))
因为在向下填充的时候,当条件不在满足时,会出现零值 为了避免零值的出现,后面连接了一个&"",已经强制转换为文本 你可以将&""去掉验证一下