2013-02-14 66 views
-1

如果我們有45歲以上的人,他們的服務年限爲2年或更長,我需要if公式的幫助,我必須能夠查看2年並給出終止僱員的通知期限的結果。IF結果中的錯誤

  • 年齡是H24是45
  • 服務的新年是C61是2 1
  • 表爲一年R73和通知期週中的1

我V73已經把in =IF(H24>=45,C61>=2,VLOOKUP(2,R73:V73,5,)),這會導致如果我改變的時間,就2 0

FALSE沒有結果,我得到 - 我已經把in =IF(H24>=45,C61>=2,VLOOKUP(2,R73:V73,5,)),這導致假不0

如果我改變的時間,就1或2,前43,我得到的結果 - 我已經把in =IF(H24>=45,C61>=2,VLOOKUP(2,R73:V73,5,)),這導致在1

幫助FALSE沒有結果!

回答

2

這聽起來像你的IF語句的結構應是這樣的:

=IF(AND(H24>=45, C61>=2), Value-If-True, Value-If-False) 

因爲你想要的員工爲45以上,且服務年限爲2以上。

而且你需要仔細檢查您的VLOOKUP的行爲被測試它的IF塊外,這樣的預期:

=VLOOKUP(2,R73:V73,5) 

檢查結果是否你所期望的。

0

在這個問題上有太多不太正確的地方可能會有一些教育價值。

下圖中的上部區段代表你正在使用的語法,爲什麼你的三個測試的結果,你發現了什麼(除了我認爲第二次測試將返回TRUE而不是FALSE):

SO14868030 example

IF函數語法的第一個元素是logical_test。那裏是H24>=45和H24是45,value_if_true(打勾,上部分支)評估(如你的前兩個測試)。正如您所注意到的,對於第一次測試C61是1,因此=C61>=2返回FALSE。對於第二次測試,我相信它會返回TRUE(儘管你想要一個數字)。

對於你的第三個測試,logical_test失敗,第二個(與十字,下分支)被採取。這對VLOOKUP函數產生了不小的影響。

在下面的塊是@塞繆爾的建設表示。這裏logical_test是複合 - 兩個元素(AND)必須「通過」才能繼續進行上分支,其中value_if_false的圖像設置爲0

然而,VLOOKUP也存在一個或兩個問題。 V是垂直的,提供的範圍是水平的。因此,無論使用哪個搜索詞(lookup_value - 2在上面的塊中),結果總是會變成V73中的任何內容,從您的測試看來,它會顯示爲FALSE或返回FALSE的內容。鏈接提到對於table_array「需要兩列或更多列數據」。

V73中的值部分返回,因爲查找函數中的第四個參數(range_lookup)尚未輸入,因此假定爲TRUE。在這種情況下,「返回確切的或近似的匹配」。如果未找到完全匹配,則返回「小於lookup_value的下一個最大值」 - 提供的範圍按升序排序,否則「VLOOKUP可能不會提供正確的值」。

因此您需要VLOOKUP或HLOOKUP是否根據您的數據佈局來決定的查找功能,擴大到至少兩列或行,很可能添加FALSE作爲第四(range_lookup)參數。