具有多个条件的嵌套IF函数-返回False或Value#

时间:2018-11-18 17:46:19

标签: excel-formula

试图为团队记分卡创建公式。

试图引用不同的列,以便如果一个代理属于Email,并且被标记为Qualified,那么他将获得以下报酬:

KRA得分:

  • 1 = Php0
  • 2 = Php0
  • 3 = Php1,000
  • 4 = Php3,000
  • 5 = Php5,000

但是,如果探员来自Voice并且是合格的,则他/她会收到以下不同的金额:

KRA得分:

  • 1 = Php0
  • 2 = Php0
  • 3 = Php2,000
  • 4 = Php4,000
  • 5 = Php6,000

以下是我的示例数据和相应的付款金额:

enter image description here

2 个答案:

答案 0 :(得分:0)

我建议在单元格E2中输入以下公式:

=IF($D2="Qualified",VLOOKUP($C2,$A$13:$C$17,IF($B2="Email",3,2),FALSE),0)

enter image description here

在这里,最外面的IF语句检查代理是否为Qualified。如果代理为Disqualified,则公式返回0

如果是,则VLOOKUP从得分和支出的范围中查找Score(假设它们出现在$A$13:$C$17的范围内),并返回任一列3如果代理属于Email,则列2

提供给FALSE函数的第四个参数(VLOOKUP)确保分数必须出现在提供的范围内才能返回支出。如果不存在分数,则VLOOKUP将返回N/A

您可以通过将VLOOKUP括在IFERROR函数中来解决此问题,如果找不到分数,则返回预定值。

答案 1 :(得分:-1)

不,我重复一遍-不要使用嵌套的IF-它们是邪恶的。它们很难编写且无法维护。 VLOOKUP仅略胜一筹,这是一个混乱的中立国。相反,您应该做的是花一些时间来学习数组公式,命名范围/表和INDEX / MATCH函数。有很多在线教程,只是Google。

enter image description here

=INDEX(Payouts[#All], MATCH([@Score],Payouts[[#All],[Score]],0), MATCH([@Group],Payouts[#Headers],0))

只需在公式前面添加IF

enter image description here