如何从下向上查找报表,返回多个满足条件记录中的最后一条?

标签:
逆向查找lookup0/从下往上二分法 |
分类: 实例解析 |
【问题】如何从下向上查找报表,返回多个满足条件记录中的最后一条?微博链接
【思路】
1、用A$2:A$10=A15部分对产品种类进行条件判断,返回由逻辑值组成的数组{TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE}
2、由于逻辑值参与运算时分别将true和false转换为1和0,所以用0/条件返回由0和错误值组成的数组{0;#DIV/0!;#DIV/0!;#DIV/0!;0;#DIV/0!;0;#DIV/0!;0}。
3、Lookup查找时兼容错误值,在第二步返回的数组中查找1,由于各元素都比1小,Lookup找不到查找值时,根据数组中小于查找值的最大值返回匹配值。
4、由于数组中有多个0满足条件,Lookup按照二分法返回满足条件的记录中的最后一条。
通用公式=Lookup(1,0/((条件1)*(条件2)*...*(条件n)),数据区域)
注意使用此通用公式时,Lookup的第一参数要大于第二参数的所有元素才能保证结果正确。
正确:=Lookup(2,1/((条件1)*(条件2)*...*(条件n)),数据区域)
错误:=Lookup(0,0/((条件1)*(条件2)*...*(条件n)),数据区域)
【公式】
=LOOKUP(1,0/(A$2:A$10=A15),C$2:C$10)