根据特定范围将列分成组

时间:2015-07-10 09:29:06

标签: excel function excel-formula

(不确定我是否在合适的社区,如果这个问题更适合另一个问题,请告诉我。)

无论如何,我想根据特定范围创建一个新列,该列将在其旁边的列中查找。考虑了vlookup和if语句,它实际上可以完成这项工作,所以我不必在VBA中创建一些东西,但它不起作用:

generate_context

=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)))))))

2 个答案:

答案 0 :(得分:1)

试试这个:

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

答案 1 :(得分:0)

当条件被测试时,它将证明为真或假。如果为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