返回列表 上一主題 發帖

[發問] match 或 lookup 函數功能問題

回復 1# ricky8751

LOOKUP及MATCH用法如下

    L2 =OFFSET($A$1,0,MATCH(30,B2:K2,))
L22 =LOOKUP(,0/(B22:K22=30),$B$1:$K$1)

下拉複製
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

本帖最後由 ML089 於 2014-7-23 22:34 編輯

回復 6# p212
>>可否煩請ML089版主賜教?
>>1、L2 =OFFSET($A$1,0,MATCH(30,B2:K2,))
>>(1)其match_type「省略」和輸入「1」是一樣的,但為何在1#的範例檔會呈現#N/A?
>>(2)您對match_type為何不用「0」?(1#不是用MATCH指定尋找「30」)


回覆:
(1)
如果 match_type 是 1,則 MATCH 函數會找到等於或僅次於 lookup_value 的值。Lookup_array 必須以遞增次序排列:...-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE。
原公式中因Lookup_array沒有遞增次序排列所以錯誤
(2)
=OFFSET($A$1,0,MATCH(30,B2:K2)) 這樣match_type是省略為 1
=OFFSET($A$1,0,MATCH(30,B2:K2,))這樣match_type是要輸入沒有輸入為 0 (這是簡化輸入的壞習慣,請見諒)


>>2、L22 =LOOKUP(,0/(B22:K22=30),$B$1:$K$1)
>>(1)其lookup_value為何可省略?省略的值表示為「0」?
>>(2)在此LOOKUP得到的陣列是什麼?


回覆:
(1)
L22 =LOOKUP(,0/(B22:K22=30),$B$1:$K$1)
lookup_value並沒有省略只是要輸入沒有輸入時為 0 (這是簡化輸入的壞習慣,請見諒)
(2)
B34:K34 = {100,100,30,100,100,100,100,100,100,100}
0/(B34:K34=30) = {#DIV/0!,#DIV/0!,0,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!}
L34 =LOOKUP(,0/(B34:K34=30),$B$1:$K$1) = 3
LOOKUP具有容錯能力,雖然 Lookup_vector中有#DIV/0!錯誤資料時並不會中斷仍會繼續進行作業,符合時 0/TRUE = 0,lookup_value 用  0可找符合條件任一筆(一般用於唯一符合條件),用 1可找符合條件最後一筆。
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

        靜思自在 : 稻穗結得越飽滿,越會往下垂,一個人越有成就,就要越有謙沖的胸襟。
返回列表 上一主題