复制嵌套的if函数

时间:2014-01-01 19:51:35

标签: excel if-statement nested

我创建了一个在一个单元格中工作的嵌套if函数,但当我将它拖到同一列中的不同单元格时,它会开始生成我不想要的奇怪结果。

  

= IF(F2 = 4,G515,IF(F2 = 5,G514,IF(F2 = 6,G514,IF(F2 = 7,G513,IF(F2 = 8,G513,IF(F2 = 9, G512,IF(F2 = 10,G512,IF(F2 = 11,G511,IF(F2 = 12,G511,IF(F2 = 13,G510,IF(F2 = 14,G510,IF(F2 = 15,G509, IF(F2 = 16,G509,IF(F2 = 17,G508,IF(F2 = 18,G508,IF(F2 = 19,G507,IF(F2 = 20,G507,IF(F2 = 21,G506,IF( F2 = 22,G505,IF(F2 = 23,G505,IF(F2 = 24,G504,IF(F2 = 25,G504,IF(F2 = 26,G503,IF(27,G502,IF(F2 = 28, G502,IF(F2 = 29,G501,IF(F2 = 30,G501,IF(F2 = 31,G500,IF(F2 = 32,G499,IF(F2 = 33,G499,IF(F2 = 34,G498, IF(F2 = 35,G498,IF(F2 = 36,G497)))))))))))))))))))))))))))))))))

就是这样,我希望它与F3,F4,F5等相同。

任何帮助?

4 个答案:

答案 0 :(得分:1)

尝试使用美元符号$

修复公式引用

This article can help

答案 1 :(得分:1)

当您向下或向下拖动某些X单元格时,公式中的所有引用都将向下或向右移动X个数字。要防止这种情况,请使用$为不希望更改的引用元素添加前缀。例如:

  • F2:移动公式时会更改引用的行和列。
  • $F2:只会在移动公式时更改行。该列将始终保持F
  • F$2:只会在移动公式时更改列。该行将始终保持2
  • $F$2:无论公式移动到哪里,都将始终保持F2

答案 2 :(得分:0)

即使您将G替换为G$ s,公式仍可能会产生意外结果,因为...IF(27,G502,IF(F2=28...语法不正确。

= IF(F2 = 4,G $ 515中,IF(OR(F2 = 5,F2 = 6),G $ 514中,IF(OR(F2 = 7,F2 = 8),G $ 513 IF(F2 = 9 ,G $ 512 IF(OR(F2 = 10,F2 = 11),G $ 511 IF(OR(F2 = 12,F2 = 13),G $ 510中,IF(F2 = 14,G $ 510中,IF(OR(F2 = 15,F2 = 16),G $ 509 IF(OR(F2 = 17,F2 = 18),G $ 508中,IF(OR(F2 = 19,F2 = 20),G $ 507 IF(F2 = 21,G $ 506 IF(OR(F2 = 22,F2 = 23),G $ 505 IF(OR(F2 = 24,F2 = 25),G $ 504中,IF(F2 = 26,G $ 503中,IF(OR(F2 = 27 ,F2 = 28),G $ 502中,IF(OR(F2 = 29,F2 = 30),G $ 501中,IF(F2 = 31,G $ 500中,IF(OR(F2 = 32,F2 = 33),G $ 499, IF(或(F2 = 34,F2 = 35),G $ 498,IF(F2 = 36,G $ 497))))))))))))))))))))

是一个修正版本,具有正确的语法和美元符号,但仍然比您的版本略短,通过使用OR,并应按预期复制。

如果您可以确定只有337之间的整数值会填充F2等,那么其中一个IF语句就是多余的。

如果您可以创建一个类似于此的数组(其中'G'数字代表单元格中的值):

SO20872551 example

一个相当短的公式应该足够了:

=IF(ISEVEN(F2),VLOOKUP(F2,$F$497:$G$515,2,0),VLOOKUP(F2,$E$497:$G$515,3,0))   

答案 3 :(得分:0)

尝试使用选择公式并将范围命名为.hope帮助