(不确定我是否在合适的社区,如果这个问题更适合另一个问题,请告诉我。)
无论如何,我想根据特定范围创建一个新列,该列将在其旁边的列中查找。考虑了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)))))))
答案 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})
(是的,您可以在公式中添加换行符以帮助理解它。)