MS Excel IF语句混淆

我正在尝试为我销售的某些日历制作电子表格。 我有一个定价scheme,取决于客户购买多less日历。 我希望能够跟踪销售情况,但是我不想input每个销售单位的价格。 我build立了一个IF语句,除了最后一个variables之外,它似乎工作正常。 这里有一个截图:

Excel示例

正如你所看到的,它一直工作到最后一个。 数量达到11后,单位价格应降至6,但不是! 我知道这肯定是一个简单的解决方法,但我不太了解IF语句,所以我被卡住了。 请帮忙!

如果您必须使用IF语句,请尝试:

 =IF(G10=1,9,IF(G10<=5,8,IF(AND(G10>5, G10<11),7,IF(G10>=11,6,IF(G10="",""))))) 

你的问题是它将永远不会读取if(G10>=11部分,因为它已经评估if(G10>5

如果G10为空白时应该没有输出,请使用以下变体:

 =IF(ISBLANK(G10),"",IF(G10=1,9,IF(G10<=5,8,IF(AND(G10>5, G10<11),7,IF(G10>=11,6,IF(G10="","")))))) 

如果您在下面设置类似于我的设置的价格表,则可以使用VLOOKUP公式使其更加灵活。

在这里输入图像说明

H10的公式是:

 =VLOOKUP(G10,$B$1:$C$5,2,TRUE) 

进入并向下拖动。

这种方法的好处是,你可以改变左边的下限数,你将得到一个调整,而不必更新公式。 尝试将Count2更改为3 ,您将立即看到调整。

一个额外的好处是你可以添加更多的价值观的表进一步定价括号。

我同意@Nanashi把价格门槛放在一个单独的表中,并使用vlookup是一个更好的解决scheme。 这样就可以改变价格点,而无需编辑多个公式。

=if(g10="","",if(g10=1,9,if(g1<=6,8,if(g10<=10,7,6))))只是得到你的公式工作,试试这个: =if(g10="","",if(g10=1,9,if(g1<=6,8,if(g10<=10,7,6))))

请注意:

  • 你不需要(也可能不需要)引用你的数字值
  • testing的顺序很重要。 在你的原始文件中, g10>=11的testing从来没有达到,因为它在g10>5函数的else部分。

数量和定价结合VLOOKUP公式的正确构build的表格将是最好的方式去和减轻未来的价格变化。 但为了多样性,您的简单定价结构也可以通过以下方式处理:

=(6+(G10<11)+(G10<6)+(G10<2))*(G10>0)

在公式中,“G10> 5”应该是“G10 <= 10”。 否则,当它达到11时,仍然符合G10> 5标准。