位置:首頁 > 軟件操作教程 > 辦公軟件 > Excel > 問題詳情

Lookup函數(shù)“0/”結(jié)構(gòu)的詳細(xì)剖析

提問人:周麗平發(fā)布時間:2021-08-17

【例】在G4中設(shè)置公式,根據(jù)G2的入庫時間和G3的產(chǎn)品名稱,從左表中查找對應(yīng)的入庫單價。

image.png

G2公式:

=LOOKUP(1,0/((B3:B8=G2)*(C3:C8=G3)),D3:D8)

有很多同學(xué)提問,為什么要用0/的結(jié)構(gòu)?其實該結(jié)構(gòu)廣泛應(yīng)用于lookup查找公式中,為了幫助同學(xué)們理解以便能靈活應(yīng)用。今天就此進(jìn)行詳細(xì)的剖析:

首先,先看看(B3:B8=G2)*(C3:C8=G3)運算后是什么個結(jié)果?

在excel公式中如果:

A和B的值相等,=A=B 會返回結(jié)果True,True在四則運算中相于數(shù)字1

A和B的值不相等,=A=B 會返回結(jié)果False,F(xiàn)alse在四則運算中相于數(shù)字0

所以(B3:B8=G2)的結(jié)果是由false和true構(gòu)成的一組值,如果放在單元格中,結(jié)果如F7:F12區(qū)域值所示:

image.png

同樣(C3:C8=G3)的結(jié)果也是由True和Fasle組成的一組數(shù)值,而2個相同大小的一組值相乘,True*True=1,True*False=0,F(xiàn)alse*False=0,相乘的最終結(jié)果是由1和0組成的一組數(shù)。如下圖 H7:H12 所示。

image.png

由上圖可以看出,相乘結(jié)果中值為1的行(H9所示),正是符合兩個條件的行。那么怎么把這個1的位置提取出來呢?

Lookup函數(shù)的查找原理是二分法。按二分法原理,lookup函數(shù)會在在二分位處查找,要想準(zhǔn)確查找到,這組值需要按升序排列,而只是公式(B3:B8=G2)*(C3:C8=G3)的結(jié)果是不符合要求的。

于是高手們想出了用0除的方法,把結(jié)果由1和0變成了由1和錯誤值構(gòu)成的一組值。唯一符合條件的值為0,其他的均為錯誤值#DIV/0!

image.png

Lookup函數(shù)還有一個關(guān)鍵的特征,查找時可以忽略錯誤值,這樣一組數(shù)值忽略后只剩下一個值,這時只需要使用任一個大于等于0的值查找即可。即:

=LOOKUP(1,0/((B3:B8=G2)*(C3:C8=G3)),D3:D8)

補(bǔ)充:0/的目的就是把符合條件的變成0,其他的變成錯誤值,利用lookup查找忽略錯誤值的特征查找到符合條件的值。

繼續(xù)查找其他問題的答案?

回復(fù)(0)
返回頂部