幫我解釋一下Excel數組公式{=MATCH(,0/FIND(B2,A$1:A$100),

題目:

幫我解釋一下Excel數組公式{=MATCH(,0/FIND(B2,A$1:A$100),
{=MATCH(,0/FIND(B2,A$1:A$100),)} 這是excel數組公式,實現在a1:a100區域查找包含B2的單元格,返回該單元格的行號.能正常實現目的,只是我不明白爲什麼這樣可以算出來,同樣的公式表達式如果不是數組公式又會出錯,而且match的函數的第1、3個參數都省略了,只有第二個參數0/FIND(B2,A$1:A$100),這個參數也跟平時的公式不太一樣的,呵呵,實在是搞不明白,)

解答:

兩個省略的參數,EXCEL會認爲是0,公式實際上是
=MATCH(0,0/FIND(B2,A$1:A$100),0)
FIND(B2,A$1:A$100)中,是在A1:A100搜索B2的值,有匹配值的返回TRUE,找不到的返回FALSE.結果爲由TRUE、FALSE組成的數組.
0/數組,即0分別除以數組中的每一個元素,0/TRUE返回0,0/FALSE返回錯誤值.
MATCH在0和錯誤值組成的數組中,搜索0值,忽略錯誤值,返回第一個0值的位置,從而達到返回第一個符合條件的數據位置.
再問: 有點明白了,FIND(B2,A$1:A$100)是不是這樣理你說的返回結果是由TRUE、FALSE組成的數組,這裡有100個單元格查找,就有100個值,所以我直接顯示其結果{=FIND(B2,A$1:A$100)}顯示的是#VALUE! 有沒有辦法把這個數組顯示出來?
再答: 不好意思,上面所說的不對,FIND(B2,A$1:A$100)返回的是數值和錯誤值組成的數組。 0/數值,返回0;0/錯誤值,返回錯誤值。 一個單元格只能顯示數組中的一個元素,無法顯示整個數組。 在編輯欄中,選中公式的這一部分,按F9,你可以看到數組的值。(數組元素不超過100個時,可以顯示)

添加新評論

暱稱
郵箱
網站