如果功能不正常

时间:2013-08-09 16:45:58

标签: function excel-formula excel-2010

我正在尝试使用此“IF”功能将“薪资”标签中的“薪资收入”从“薪资”选项卡中的“薪资收入”列中提取出来:=IF(Payroll!F2="Salary", Payroll!G2, " ")但由于某种原因,它正在跳过相同的工资日期作为奖金。

Payroll Tab Unique Payroll

我甚至试过了下面的一个,它让D5,D6和D7空了。

=IF(AND(Payroll!F2="Salary", Payroll!C2=UniquePayPeriod!C2), Payroll!G2, " ")

有人可以帮忙吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

如果我假设您在UniquePayPeriod电子表格中拖动公式,那么您可能无法获得“正确”输出,但您获得的是“准确”输出。

  1. D5将为空白,因为F5为“奖励”,未通过if条件
  2. D6将为空,因为Payroll!C6不等于UniquePayPeriod!C6
  3. D7将为空,因为Payroll!C7不等于UniquePayPeriod!C7
  4. 这种情况正在发生,因为您的Payroll表单列出了具有相同日期的单独订单项的奖励;首次列出奖金后,UniquePayPeriod表格上的支票日期将与Payroll表格上的支票日期不一致

    您需要做的是使用MatchIndex来查找ID,检查日期和薪资的条件,然后查找ID,检查日期和奖金。

    这是您需要在薪资收入栏中输入的公式

    =IFERROR(INDEX(yourPayrollTable,MATCH(B2&C2&"Salary",yourIDColumn & 
                       yourCheckDateColumn & yourEarnTypeColumn,0),7),"")
    

    这是您需要在薪资收入栏中输入的公式

    =IFERROR(INDEX(yourPayrollTable,MATCH(B2&C2&"Bonus",yourIDColumn & 
                       yourCheckDateColumn & yourEarnTypeColumn,0),7),"")
    
    • yourPayrollTable应该是Payroll表单上的数据范围 它包含您的所有工资单信息(例如Payroll!A2:G100
    • yourIDColumn应该是Payroll表单上的数据范围 具有所有ID(例如Payroll!A2:A100
    • yourCheckDateColumn应该是Payroll表单上的数据范围 具有所有检查日期(例如Payroll!C2:C100
    • yourEarnTypeColumn应该是Payroll表单上的数据范围 具有所有赚取类型(例如Payroll!F2:F100

    这些公式是数组公式,因此请确保在输入公式并向下拖动后按Ctrl + Shift + Enter,而不是仅按Enter键。

    这可能有点令人困惑,所以如果没有必要,请评论