看到一位前辈对如下公式的解释,觉得大有收获,特与各位分享~ =LOOKUP(1,0/(F4=C1:C7),D1:D7)
F4=C1:C7这部份就是说C1:C7这7个单元格中当等于或不等于F4时,分别返回TRUE或是FLASE的值,(等于时返回TRUE(真值),否则FLASE(假值)),由于EXCEL运算中把TRUE当作1处理,FLASE当作0处理,所以这部份回的值类似这样{TRUE;FALSE;..........FALSE;TURE...}共7个,实际上就是类似{1;0;....0;1....},再用0除以这七个值,当0/TURE时=0/1得到0,当0/FLASE时=#DIV!0错误值。LOOKUP函数自动忽略,只对0进行运算。
注意,LOOKUP函数的第二参数要求是升序排列的,即1,2,3。。。。这样,或是1、1、1、或是6、6、6(第二参数所有数字相同也当作是升序)。
所以公式中的0/(F4=C1:C7),实际上是返回{0;0;#DIV!0;0.....0}这样的形式,那个#DIV!0是错误值,LOOKUP函数自动忽略,只对0进行运算。
前面第一个参数以1,在这一堆0中查找,返回最后一个最接近且比1小的0所对应的D1:D7区域的值。
|