【问题标题】:Nested IF statements assistance嵌套 IF 语句帮助
【发布时间】:2018-01-03 17:41:37
【问题描述】:

我制作了一个小工作簿,完全模仿了我发布的原始公式。工作簿的目的是根据输入的各种组合(如下所列)计算每个员工的奖金。以下是我的工作簿的布局方式:

  1. 数据选项卡
  2. 奖励标签
  3. 基础奖励标签
  4. 摘要选项卡

我用来输入不同组合的数据选项卡的图片: Data Tab

组合列表:

  • 员工百分比(单元格 B3)和公司百分比(单元格 B4)单元格输入了数字 = 组合 1(范围:0%-100%)
  • Employee $(单元格 B5)和 Company $(单元格 B6)单元格输入了数字 =Combo 2(范围:$0-无限制)
  • 基本工资 (B2) 为“是”,员工百分比(单元格 B3)已输入单元格 = 组合 3(基本工资为“是”或空白)
  • 基本工资 (B2) 为“是”,已输入职位 (A8) 和员工百分比(单元格 B8)单元格 = 组合 5

我将单元格 C1 用于 IF 语句,以根据上述组合指定要使用的公式。 (例如 B5 和 B6 中的数字 = 1)

=IF(AND($B$2<>"",$A$8<>"",$B$8<>""),5,IF(AND($B$2<>"",$B$3<>""),3,IF($B$3<>"",1,IF($B$5<>"",2))))

奖励标签的图片:Bonus Tab

基本奖励选项卡的图片:Base Bonus Tab

摘要选项卡的图片:Summary Tab

我已经为每个组合分别创建了公式,但是当我尝试将它们组合成一个时,我会收到太多参数错误消息,因为组合 3 和组合 5 在 IF 语句中使用 false。我试图避免制作计算表,并且更愿意在 B 列中由员工在摘要选项卡上使用一个公式。

我将进一步具体解释组合 3 - 如果基本奖金低于常规奖金,则乘以基本奖金 * 员工百分比 + 公司&供应商奖金 * 公司百分比。如果基本奖金高于常规奖金,则乘以常规奖金 * 员工 % + 公司和供应商奖金 * 公司 %。

例子:

鲍比

基本奖金 $50

50 美元 * 50% 员工百分比 = 25 美元 + 200 美元的公司 + 0 美元的供应商 * 50% 的公司 = 100 美元

如果,如果基本红利,最终答案是 125 美元

我将进一步具体解释组合 5 - 如果基本奖金低于常规奖金,则乘以基本奖金 * 员工职位 员工 % + 公司&供应商奖金 * 职位公司 %。如果基本奖金高于常规奖金,则乘以常规奖金 * 员工职位 员工 % + 公司和供应商奖金 * 职位公司 %。

例子:

鲍比

基本奖金 $50

查找 Bobby 的职位以确定员工百分比和公司百分比

75% 员工百分比为高级职员,50% 为公司百分比

75% * 50 美元 + 50% *(200 美元公司和 0 美元供应商)= 137.5 美元

如果,最终答案是 137.5 美元的基本红利

这里是每个公式的组合列表:

组合一:

=IF(Data!$C$1=1,Data!$B$3*Bonus!D2+Data!$B$4*(Bonus!E2+Bonus!F2))

组合2:

=IF(Data!$C$1=2,IF(SUM(Bonus!B2:C2)<1,0,1)*Data!$B$6+Data!B5))

组合3:

=IF(Data!$C$1=3,IF(VLOOKUP(Summary!A2,'Base Bonus'!$A$2:$B$5,2,FALSE)<VLOOKUP(Summary!A2,Bonus!$A$2:$D$5,4,FALSE),VLOOKUP(Summary!A2,'Base Bonus'!$A$2:$B$5,2,FALSE)*Data!$B$3+Data!$B$4*(Bonus!E2+Bonus!F2),VLOOKUP(A2,Bonus!$A$2:$D$5,4,FALSE)*Data!$B$3+Data!$B$4*(Bonus!E2+Bonus!F2)))

组合 5:

IF(Data!$C$1=5,IF(VLOOKUP(Summary!A2,'Base Bonus'!$A$2:$B$5,2,FALSE)<VLOOKUP(Summary!A2,Bonus!$A$2:$D$5,4,FALSE),VLOOKUP(Summary!A2,'Base Bonus'!$A$2:$B$5,2,FALSE)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A$16:$B$19,2,FALSE),Data!$A$8:$C$11,2,FALSE)+(Bonus!E2+Bonus!E2)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A$16:$B$19,2,FALSE),Data!$A$8:$C$11,3,FALSE),VLOOKUP(A2,Bonus!$A$2:$D$5,4,FALSE)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A$16:$B$19,2,FALSE),Data!$A$8:$C$11,2,FALSE)+(Bonus!E2+Bonus!E2)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A$16:$B$19,2,FALSE),Data!$A$8:$C$11,3,FALSE)))

希望这比我最初的帖子更清晰,并且可以轻松复制。如果您有任何问题,请告诉我,谢谢!

【问题讨论】:

  • A=1 和 A*D=2 是什么意思?这些规则是什么意思? “组合公式”是什么意思?您的电子表格中的一些示例数据和示例期望结果在这里会有所帮助。
  • 我试图简化它,但似乎效果不佳。我将努力编辑原始帖子,使其更具可操作性。
  • @Hery0502 是的,我认为在这里最好使用一些虚假数据进行更详细的细分......我现在将删除我的答案,因为它是错误的,我会在编辑后查看我能做什么。
  • @RichardTompsett - 我有办法发布或发送我的工作簿吗?如果我尝试将所有数据都放在那里,将很难理解该帖子,但如果这是唯一的选择,当然可以尝试。
  • @Hery0502 谢谢,如果有人在那之前没有提供帮助,我明天再看看...有一些紧迫的工作要做。

标签: excel if-statement excel-formula nested-if


【解决方案1】:

我在您的公式中发现了一些问题

  1. Combo3 在 else 选项中,A2 遵循模式,它应该是 Summary!A2

  2. Combo5 的总和在您拥有(Bonus!E2+Bonus!E2) 的同一单元格中,它应该是(Bonus!E2+Bonus!F2)

  3. 我没有记录最初的嵌套 If 来比较它为什么不起作用。我得到了这个:

最终嵌套:

    =IF(Data!$C$1=1,Data!$B$3*Bonus!D2+Data!$B$4*(Bonus!E2+Bonus!F2),IF(Data!$C$1=2,IF(SUM(Bonus!B2:C2)<1,0,1)*Data!$B$6+Data!B5,IF(Data!$C$1=3,IF(VLOOKUP(Summary!A2,'Base Bonus'!$A$2:$B$5,2,FALSE)<VLOOKUP(Summary!A2,Bonus!$A$2:$D$5,4,FALSE),VLOOKUP(Summary!A2,'Base Bonus'!$A$2:$B$5,2,FALSE)*Data!$B$3+Data!$B$4*(Bonus!E2+Bonus!F2),VLOOKUP(Summary!A2,Bonus!$A$2:$D$5,4,FALSE)*Data!$B$3+Data!$B$4*(Bonus!E2+Bonus!F2)),IF(VLOOKUP(Summary!A2,'Base Bonus'!$A$2:$B$5,2,FALSE)<VLOOKUP(Summary!A2,Bonus!$A$2:$D$5,4,FALSE),VLOOKUP(Summary!A2,'Base Bonus'!$A$2:$B$5,2,FALSE)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A$16:$B$19,2,FALSE),Data!$A$8:$C$11,2,FALSE)+(Bonus!E2+Bonus!F2)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A$16:$B$19,2,FALSE),Data!$A$8:$C$11,3,FALSE),VLOOKUP(B2,Bonus!$A$2:$D$5,4,FALSE)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A$16:$B$19,2,FALSE),Data!$A$8:$C$11,2,FALSE)+(Bonus!E2+Bonus!F2)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A$16:$B$19,2,FALSE),Data!$A$8:$C$11,3,FALSE)))))

【讨论】:

  • 感谢您的回复。在不参考实际工作簿的情况下很难发布这些问题,但您发布的解决方案绝对是一种绕过一英里长的嵌套 IF 语句的方法。唯一的问题是我必须这样做的数据量,但它可能是唯一的选择。
  • 哦,我明白了,当我有这种功能时,我会创建一个新表并将公式拆分为多个字段。这让我看到了简化最终方程的模式。然后,您可以使用 VBA 或 vlookup 创建带有案例的函数。
  • 我更新了我的答案。我希望这对你有帮助。它在我的excel文件中工作。如果您需要,请告诉我。
  • 它完全按照我的意愿工作,非常感谢您的耐心和帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多