MS Excel IF语句混淆
我正在尝试为我销售的某些日历制作电子表格。 我有一个定价scheme,取决于客户购买多less日历。 我希望能够跟踪销售情况,但是我不想input每个销售单位的价格。 我build立了一个IF语句,除了最后一个variables之外,它似乎工作正常。 这里有一个截图:
正如你所看到的,它一直工作到最后一个。 数量达到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)
进入并向下拖动。
这种方法的好处是,你可以改变左边的下限数,你将得到一个调整,而不必更新公式。 尝试将Count
的2
更改为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标准。