2015-07-10 38 views
1

(不知道我是否在合適的社區,請讓我知道這個問題是否適合另一個問題)。根據一定範圍將列分成組

無論如何,我想創建一個新的列組編號根據特定的範圍,將在旁邊的列中查找。考慮VLOOKUP和if語句,這實際上會做的工作,所以我沒有創造VBA的東西,但它不工作:

=if(AC487>=600;3;if(600>AC487>=300;2;if(300>AC487>=60;1;if(60>AC487>=-60;0;if(-60>AC487>=-300;-1;if(-300>AC487>=-600;-2;if(-600>AC487;-3))))))) 

Column AC Column AD (expected results) 
2304  3 
760  3 
467  2 
1500  3 
-500  -2 
    10  0 
    25  0 
-146  -1 
-249  -1 
132  1  
+0

這個問題確實需要樣品數據以及預期結果。 – Jeeped

+0

嘗試用逗號替換你的分號。此外,打破你的雙重條件檢查,所以而不是-300> AC487> = - 600,使用AND(-300> AC487,AC487> = - 600) –

+0

@Jeeped,我插入samlple數據和預期結果。 – Saud

回答

0

W如果條件被測試,它將證明是真或假。如果爲true,則返回適當的結果。如果爲false,則考慮下一個條件。在第二次評估中沒有理由重申第一個條件(已經被證明是錯誤的)。

=IF(AC487>=600, 3, 
    IF(AC487>=300, 2, 
    IF(AC487>=60, 1, 
    IF(AC487>=-60, 0, 
    IF(AC487>=-300, -1, 
    IF(AC487>=-600, -2, -3)))))) 

第二IF不必評估是否小於600,我們知道它是小於600,因爲第一IF失敗,並通過控制切換至第二。

可供選擇的非IF:

=LOOKUP(AC487, 
     {-1E+99,-600,-300,-60,60,300,600}, 
     {-3,-2,-1,0,1,2,3}) 

(是的,你可以有換行的公式中,以幫助它的意義。)

LOOKUP and nested IF conditions

+0

這就是我最初開始if語句的過程,但我最終一定已經忘記了「-3」。無論如何,謝謝你的回覆。 – Saud

1

試試這個:

= IF(AC487> = 600,3,IF(AND(600> AC487,AC487> = 300),2,IF(AND(300> AC487,AC487> = 60),1,IF(AND(60> AC487, AC487> = - 60),0,IF(AND(-60> AC487,AC487> = - 300), - 1,IF(AND(-300> AC487,AC487> = - 600), - 2,-3) )))))

+0

Thx,Go​​rdon!這是工作。 – Saud