
excel中,为何我将==INDEX(AM$1:AM$111,SMALL(IF(TRIM($AM$1:$AM$111)<>"",ROW($1:$111),4^9),ROW()),)
公式改为这样就不会出错了:
=INDEX(C:C,SMALL(IF(TRIM(C$1:C$111)<>"",ROW($1:$111),4^8),ROW()))&""
如果C1:C111这个区域是不会存在空格(注:空格跟空白不一样)的情况,公式还可以精简点:
=INDEX(C:C,SMALL(IF(C$1:C$111<>"",ROW($1:$111),4^8),ROW()))&""
原公式一旦下拉的行数超出了C列不等于空的行数,公式就会返回#REF的错误值!
例如,C列有9行是有数据的,公式下拉至第10行即开始出错,并返回#REF错误值!
这主要是因为公式前面部份=INDEX(C$1:C$111 与后面的4^9(一般是4^8)这不对称引起的,这两部份相当行数。
公式在一开始就固定在C1:C111共111行这个区域中,但后面的4^9=262144行,前面是要求固定读取范围在111行,后面却要求读取第262144行的数据,后者不能大于前者,一般是两者是相等的,可现在相差巨大啊。
如果C列有正常结果,即文字,也有非正常结果 #N/A,公式修改为这样就行了:
=INDEX(C:C,SMALL(IF(ISERROR(TRIM(C$1:C$111)<>""),4^8,ROW($1:$111)),ROW()))&""
我在g1输入,然后下拉在g1就出错了
c列有16000行。
都需要运算
4^9是什么意思请问
原来绝对引用的我没有改,相对引用我肯定改了。三键操作
除非C$1:C$111全部是空白单元格
C列有正常结果,即文字,也有非正常结果 #N/A
截图或者放例表上来看看
不要让别人靠猜测来帮你解决问题