if
配合条件可以实现if-else
countif
计算某个区域中满足某个条件的单元格的数量
case:数据对齐
清单a包含清单b所有数据,并且数据比b还多。需求是找出属于a但不属于b的。
使用countif,如果在,则返回1,不在就返回0。再配合if实现输出
=IF(COUNTIF(B:B,A1)>0,"该行A列中值B列有","该行A列中值B列没有")
match
https://jingyan.baidu.com/article/2fb0ba40b4933941f3ec5f71.html
用来找某个单元格值在某个区域中的位置(排序的序号)
case
清单a和清单b内容一样,但顺序不一样,需求是让b按a的顺序排序。
使用match得到b的值在a中的序号,然后根据这个序号排序即可。
查找函数
choose(args0,{args1,args2…})
根据args0的值,去后面的集合中选取值返回
case
根据月份返回季度值:=CHOOSE(MONTH(A2),1,1,1,2,2,2,3,3,3,4,4,4)
跨列选取,计算所有选中的列
=SUM(CHOOSE({1,2,3},B2:B11,D2:D11,F2:F11))
{1,2,3}表示索引1、2、3位置的值都返回
随机抽取:=CHOOSE(RANDBETWEEN(1,9),B2,B3,B4,B5,B6,B7,B8,B9,B10)
返回多层关联的值:=CHOOSE(MATCH(B2,{0,50,100,150,260}),0,10%,20%,40%,50%)
MATCH函数返回的也是索引
lookup
就是查找的意思。在某区域中查到指定的值,然后返回指定的值。相当于利用主键在表里查数据。
返回只能返回一列
因为其底层二分查找的原理,先确定目标值所在的半个分区,然后筛掉另一半。所以正常使用时需要先排序。
但可以通过取巧的方式在不排序的情况下找到对应值。
https://zhuanlan.zhihu.com/p/318455266
case
从某列找出对应的值,然后将值同行的其他列的值返回:=LOOKUP(1,0/(查找范围=查找值),结果范围)
=LOOKUP(1,0/($H$1:$H$5=J1),$I$1:$I$5)