要想提升自己的函数水平,一定要弄懂数组,建议那些不会数组函数朋友,可以购买我录制的视频290集案例100元,想学的加我微信18664243619,基本是讲函数的数组用法,290集案例内容详情:用手指点蓝色的字,就可以查看内容详情了。
一、解法1
1、公式截图
2、公式
=LOOKUP(ROW(A1)-1,SUMIF(OFFSET($B$1,,,ROW($A$1:$A$4),1),'<>0'),$A$2:$A$5)&''
3、公式解释
OFFSET($B$1,,,ROW($A$1:$A$4),1)第1参数从B1开始;第2参数不偏移行,还是B1单元格;第3参数:不偏移列,还是在B1单元格;第4参数行高用了数组用法ROW($A$1:$A$4),构建了多维
由于offset函数构建了多维单元格区域,用 sumif函数降维,sumif函数第2参数求和条件是<>'',sumif函数第1参数和第3参数一样,第3参数可以不写
SUMIF(OFFSET($B$1,,,ROW($A$1:$A$4),1),'<>0')得到了一个升序排序的一维数组{0;2;6;9},这就构建lookup函数的第2参数
lookup函数第1参数用row(A1)-1,从一维数组中{0;2;6;9}中,根据lookup二分法原理,首先找和查值相等的,没有相等的就找比查找值小的,小的里面最接近查找值的,最后返回lookup函数第3参数的值
为什么最后面还要联接一个&''是为了屏蔽0值
数组公式,复制好公式放到编辑栏,然后把光标定位到编辑栏,三键一齐下Ctrl Shift 回车
二、解法2
1、公式截图
2、公式
=LOOKUP(ROW(A1)-1,MMULT(N(ROW($A$1:$A$4)>COLUMN($A$1:$D$1)),--$B$2:$B$5),$A$2:$A$5)&''
3、公式解释
MMULT(N(ROW($A$1:$A$4)>COLUMN($A$1:$D$1)),--$B$2:$B$5)这个公式是把B2:B5进行累加
以后大家见到要累加的就要联想到妹妹函数Mmult这个用法
为什么要加N函数,因为妹妹函数mmult不支持true和false
为什么B2:B5要多选一个空单元格,这是MMult函数参数要求:第1参数的列数要与第2参数的行数相等
为什么要给--$B$2:$B$5,因为那个空单元格是空文本,MMult不支持,加--,让最后那个空单元格变成0
联系客服