要從Excel兩欄找出相同的值
都是將要去搜尋的值,有在另外一欄出現的話,就顯示它
沒有的話就顯示0
公式一:
=IF(ISERROR(MATCH(F2,$E$2:$E$22344,0)),"0",F2)
公式二:
=IF(MATCH(F2,$E$2:$E$22344,0),F2,"0")
但是為何只有公式一才可以成功地將沒有出現的值顯示0
公式二的話則出現#N/A
有人知道是什麼原因嗎?
因為公式一中有ISERROR()
=ISERROR(參數1)
如果參數1
的值是錯誤(#N/A
, #DIV/0!
, #NAME?
,...)的話,會回傳True
ISERROR(檢定值)
是判斷檢定值是否為錯誤值,是傳回TRUE,否則傳回FALSE。
IF(判斷值, 值一, 值二)
若判斷值為是傳回值一,否則傳回值二
講白一點。會出現 #N/A 就是代表法數無法計算或是運算。
但對if來說。它還是算有「真」值。因為#N/A對if來講還是算有值。
所以第一個再掛入一個ISERROR就是為了讓它可以回傳真偽值。讓if可以判定。
考考你,想回答就回答。在excel欄位中輸入0然後if判斷。它是真值還是偽值呢??
可以試試看。
三元性(True
, False
, 錯誤
)
你的意思是假如A1=0,=if(A1,"True","False")嗎? 我這邊得出的結果是False
如果你是用if。的確會直接得到真偽值沒錯。
但目前你的問題是,你用的是MATCH運算式。
運算式除了計算出來的數值之外。還有一個是無法計算。
但無法計算是算錯誤值。並非是偽值。
所以為何會用一個ISERROR的原因。就是要將錯誤值變成真值來處理。
這樣你是否有了解呢??
就像是在某些程式裏
a=0; //偽值
a='0'; //真值
要了解這些真偽值的應用。在程式的世界中,除了真偽值還有其它類的值會有不一樣的計算。再加上智能轉換類型。你一個沒搞懂就掛了。