数组公式和普通公式,差别在于思维方式的不同! 要用看数组的方式看待数据

总结

数组公式和普通公式,差别在于思维方式的不同! 要用看数组的方式看待数据

 

1 案例1: 查找行里最后1个数值

1.1 方法1:用数组公式写

  • 着眼于,数组

脑中里要把这些一行数看成一个个数组

  • 红框,紫框里都是1个1个数组

思路如下

  • 要处理的数据,是哪几个数组
  • 数组内是什么样的
  • 如何取到这个数组里符合要求的哪个数?

 

={MAX(IF(C7:N7="",0,1)*C$6:N$6)}

={INDEX($21:$21,MAX(IF(C22:N22="",0,1)*COLUMN(C21:N21)))}

={INDEX($21:$21,MAX(IF(C22:N22<>"",1*COLUMN(C$21:N$21),0)))}

 

 

1.2 方法2:用普通公式写

  • 着眼于,单元格,要找出表里 range里的那个单元格
  • 用公式怎么查到符合条件的单元格

=LOOKUP(9999,C7:N7,C$6:N$6)

 

2 案例2  判断1行里多个数是否相等

 

2.1 方法1: 数组公式

  • 把要查找的这一部分行看成1个数组
  • 先考虑如何判断,所有数都相等    B6:F6-B6 如果全是 0,0,0 就是
  • 但还可能有空值,需要先判断空值
  • 两个条件交叉起来
  • 下面这个公式是网上找的例子,技巧很高,我还需要学习

脑中里要把这些一行数看成一个个数组

  • 红框,紫框里都是1个1个数组

{IF(OR((B6:F6<>"")*(B6:F6-B6)),FALSE,TRUE)}

 

 

2.2 方法2:普通单元格考虑,公式

  • 考虑的是单元格
  • 用如下的思路考虑

IF(MAX(B7:F7)=MIN(B7:F7),TRUE,FALSE)

if(countif()=counta(),true,false) 也是一样的

 

3 案例3

  • 这个用数组公式更好做

 

脑中里要把这些一行数看成一个个数组

  • 红框,紫框里都是1个1个数组

 

3.1 方法1 数组公式

我写的数组公式

SUM(IFERROR(0+LEFT($B$2:$F$5,IFERROR(FIND(H$1,$B$2:$F$5)-2,0)),0))

别人写的,说实话没懂,但也是对的。。。

SUM(IFERROR(--SUBSTITUTE(LEFT($B$2:$F$5,FIND("-",$B$2:$F$5)-1),"/"&H1,""),0))

 

 

 

3.2 方法2:用普通公式做?

暂时没想到

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值