嵌套 IF 语句帮助
Nested IF statements assistance
我制作了一个小练习册,完全模仿了我 post 编辑的原始公式。该工作簿的目的是根据各种输入的组合(如下所列)计算每位员工的奖金。这是我的工作簿的布局方式:
- 数据选项卡
- 奖金标签
- 基本奖励选项卡
- 摘要选项卡
我用来输入不同组合的数据选项卡的图片:
Data Tab
组合列表:
- 员工百分比(单元格 B3)和公司百分比(单元格 B4)单元格已输入数字 = 组合 1(范围:0%-100%)
- 员工 $(单元格 B5)和公司 $(单元格 B6)单元格已输入数字 =Combo 2(范围:$0-无限制)
- 基本工资 (B2) 是并且已输入员工百分比(单元格 B3)单元格 = 组合 3(基本工资是是或空白)
- 基本工资 (B2) 为是且已输入职务 (A8) 和员工百分比(单元格 B8)单元格 = 组合 5
我将单元格 C1 用于 IF 语句,以根据上述组合指定要使用的公式。 (例如 B5 和 B6 中的数字 = 1)
=IF(AND($B<>"",$A<>"",$B<>""),5,IF(AND($B<>"",$B<>""),3,IF($B<>"",1,IF($B<>"",2))))
奖金标签图片:Bonus Tab
基本奖励标签图片:Base Bonus Tab
摘要选项卡的图片:Summary Tab
我已经分别为每个组合创建了公式,但是当我尝试将它们组合成一个时,我收到了太多参数错误消息,因为组合 3 和组合 5 在 IF 语句中使用了 false。我试图避免进行计算 table 并且更愿意在 B 列的员工摘要选项卡上使用一个公式。
我将进一步具体解释组合 3 - 如果基本奖金低于常规奖金,则乘以基本奖金 * 员工百分比 + 公司和供应商奖金 * 公司百分比。如果基本奖金高于常规奖金,则乘以常规奖金 * 员工百分比 + 公司和供应商奖金 * 公司百分比。
示例:
鲍比
基本奖金 $50 < 常规奖金 $100
50 美元 * 50% 员工百分比 = 25 美元
+ 200 美元公司 + 0 美元供应商 * 50% 公司 = 100 美元
如果基本奖金 < 常规奖金,最终答案是 $125
我将进一步具体解释组合 5 - 如果基本奖金低于常规奖金,则乘以基本奖金 * 员工职务 Employee % + Company&Vendor bonus * job title Company %。如果基本奖金高于常规奖金,则乘以常规奖金 * 员工职位员工百分比 + 公司和供应商奖金 * 职位公司百分比。
示例:
鲍比
基本奖金 $50 < 常规奖金 $100
查找 Bobby 的职位以确定员工百分比和公司百分比
75% 的职员百分比和 50% 公司百分比
75% * 50 美元 + 50% *(200 美元公司和 0 美元供应商)= 137.5 美元
如果<常规奖金,最终答案是 137.5 美元的基本奖金
这里是每个公式的组合列表:
组合 1:
=IF(Data!$C=1,Data!$B*Bonus!D2+Data!$B*(Bonus!E2+Bonus!F2))
组合 2:
=IF(Data!$C=2,IF(SUM(Bonus!B2:C2)<1,0,1)*Data!$B+Data!B5))
组合 3:
=IF(Data!$C=3,IF(VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)<VLOOKUP(Summary!A2,Bonus!$A:$D,4,FALSE),VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)*Data!$B+Data!$B*(Bonus!E2+Bonus!F2),VLOOKUP(A2,Bonus!$A:$D,4,FALSE)*Data!$B+Data!$B*(Bonus!E2+Bonus!F2)))
组合 5:
IF(Data!$C=5,IF(VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)<VLOOKUP(Summary!A2,Bonus!$A:$D,4,FALSE),VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,2,FALSE)+(Bonus!E2+Bonus!E2)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,3,FALSE),VLOOKUP(A2,Bonus!$A:$D,4,FALSE)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,2,FALSE)+(Bonus!E2+Bonus!E2)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,3,FALSE)))
希望这比我最初的 post 更清晰,并且可以轻松复制。如果您有任何问题,请告诉我,谢谢!
我在你的公式中发现了一些问题
Combo3 在 else 选项中,您有 A2
遵循模式,它应该是 Summary!A2
Combo5 总和在您拥有的同一个单元格中 (Bonus!E2+Bonus!E2)
它应该是 (Bonus!E2+Bonus!F2)
我没有记录最初的嵌套If来比较它为什么不起作用。我得到这个:
最终嵌套:
=IF(Data!$C=1,Data!$B*Bonus!D2+Data!$B*(Bonus!E2+Bonus!F2),IF(Data!$C=2,IF(SUM(Bonus!B2:C2)<1,0,1)*Data!$B+Data!B5,IF(Data!$C=3,IF(VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)<VLOOKUP(Summary!A2,Bonus!$A:$D,4,FALSE),VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)*Data!$B+Data!$B*(Bonus!E2+Bonus!F2),VLOOKUP(Summary!A2,Bonus!$A:$D,4,FALSE)*Data!$B+Data!$B*(Bonus!E2+Bonus!F2)),IF(VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)<VLOOKUP(Summary!A2,Bonus!$A:$D,4,FALSE),VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,2,FALSE)+(Bonus!E2+Bonus!F2)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,3,FALSE),VLOOKUP(B2,Bonus!$A:$D,4,FALSE)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,2,FALSE)+(Bonus!E2+Bonus!F2)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,3,FALSE)))))
我制作了一个小练习册,完全模仿了我 post 编辑的原始公式。该工作簿的目的是根据各种输入的组合(如下所列)计算每位员工的奖金。这是我的工作簿的布局方式:
- 数据选项卡
- 奖金标签
- 基本奖励选项卡
- 摘要选项卡
我用来输入不同组合的数据选项卡的图片: Data Tab
组合列表:
- 员工百分比(单元格 B3)和公司百分比(单元格 B4)单元格已输入数字 = 组合 1(范围:0%-100%)
- 员工 $(单元格 B5)和公司 $(单元格 B6)单元格已输入数字 =Combo 2(范围:$0-无限制)
- 基本工资 (B2) 是并且已输入员工百分比(单元格 B3)单元格 = 组合 3(基本工资是是或空白)
- 基本工资 (B2) 为是且已输入职务 (A8) 和员工百分比(单元格 B8)单元格 = 组合 5
我将单元格 C1 用于 IF 语句,以根据上述组合指定要使用的公式。 (例如 B5 和 B6 中的数字 = 1)
=IF(AND($B<>"",$A<>"",$B<>""),5,IF(AND($B<>"",$B<>""),3,IF($B<>"",1,IF($B<>"",2))))
奖金标签图片:Bonus Tab
基本奖励标签图片:Base Bonus Tab
摘要选项卡的图片:Summary Tab
我已经分别为每个组合创建了公式,但是当我尝试将它们组合成一个时,我收到了太多参数错误消息,因为组合 3 和组合 5 在 IF 语句中使用了 false。我试图避免进行计算 table 并且更愿意在 B 列的员工摘要选项卡上使用一个公式。
我将进一步具体解释组合 3 - 如果基本奖金低于常规奖金,则乘以基本奖金 * 员工百分比 + 公司和供应商奖金 * 公司百分比。如果基本奖金高于常规奖金,则乘以常规奖金 * 员工百分比 + 公司和供应商奖金 * 公司百分比。
示例:
鲍比
基本奖金 $50 < 常规奖金 $100
50 美元 * 50% 员工百分比 = 25 美元 + 200 美元公司 + 0 美元供应商 * 50% 公司 = 100 美元
如果基本奖金 < 常规奖金,最终答案是 $125
我将进一步具体解释组合 5 - 如果基本奖金低于常规奖金,则乘以基本奖金 * 员工职务 Employee % + Company&Vendor bonus * job title Company %。如果基本奖金高于常规奖金,则乘以常规奖金 * 员工职位员工百分比 + 公司和供应商奖金 * 职位公司百分比。
示例:
鲍比
基本奖金 $50 < 常规奖金 $100
查找 Bobby 的职位以确定员工百分比和公司百分比
75% 的职员百分比和 50% 公司百分比
75% * 50 美元 + 50% *(200 美元公司和 0 美元供应商)= 137.5 美元
如果<常规奖金,最终答案是 137.5 美元的基本奖金
这里是每个公式的组合列表:
组合 1:
=IF(Data!$C=1,Data!$B*Bonus!D2+Data!$B*(Bonus!E2+Bonus!F2))
组合 2:
=IF(Data!$C=2,IF(SUM(Bonus!B2:C2)<1,0,1)*Data!$B+Data!B5))
组合 3:
=IF(Data!$C=3,IF(VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)<VLOOKUP(Summary!A2,Bonus!$A:$D,4,FALSE),VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)*Data!$B+Data!$B*(Bonus!E2+Bonus!F2),VLOOKUP(A2,Bonus!$A:$D,4,FALSE)*Data!$B+Data!$B*(Bonus!E2+Bonus!F2)))
组合 5:
IF(Data!$C=5,IF(VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)<VLOOKUP(Summary!A2,Bonus!$A:$D,4,FALSE),VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,2,FALSE)+(Bonus!E2+Bonus!E2)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,3,FALSE),VLOOKUP(A2,Bonus!$A:$D,4,FALSE)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,2,FALSE)+(Bonus!E2+Bonus!E2)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,3,FALSE)))
希望这比我最初的 post 更清晰,并且可以轻松复制。如果您有任何问题,请告诉我,谢谢!
我在你的公式中发现了一些问题
Combo3 在 else 选项中,您有
A2
遵循模式,它应该是Summary!A2
Combo5 总和在您拥有的同一个单元格中
(Bonus!E2+Bonus!E2)
它应该是(Bonus!E2+Bonus!F2)
我没有记录最初的嵌套If来比较它为什么不起作用。我得到这个:
最终嵌套:
=IF(Data!$C=1,Data!$B*Bonus!D2+Data!$B*(Bonus!E2+Bonus!F2),IF(Data!$C=2,IF(SUM(Bonus!B2:C2)<1,0,1)*Data!$B+Data!B5,IF(Data!$C=3,IF(VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)<VLOOKUP(Summary!A2,Bonus!$A:$D,4,FALSE),VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)*Data!$B+Data!$B*(Bonus!E2+Bonus!F2),VLOOKUP(Summary!A2,Bonus!$A:$D,4,FALSE)*Data!$B+Data!$B*(Bonus!E2+Bonus!F2)),IF(VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)<VLOOKUP(Summary!A2,Bonus!$A:$D,4,FALSE),VLOOKUP(Summary!A2,'Base Bonus'!$A:$B,2,FALSE)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,2,FALSE)+(Bonus!E2+Bonus!F2)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,3,FALSE),VLOOKUP(B2,Bonus!$A:$D,4,FALSE)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,2,FALSE)+(Bonus!E2+Bonus!F2)*VLOOKUP(VLOOKUP(Summary!A2,Data!$A:$B,2,FALSE),Data!$A:$C,3,FALSE)))))