如何解决两个日期之间匹配时,匹配字段并返回值
获取员工每小时工资的公式的字段为:
包含数据的文件为:
我尝试了VLOOKUP和LOOKUP的组合(在日期之间),但是无法获得有效的东西。
任何帮助将不胜感激。
解决方法
您将需要使用 Index and Match 公式来执行此操作。但是,在这样做之前,我认为您应该首先创建一个用于保留合同期限的列。将其称为“调整后的结束日期”,如果结束日期为空,则填充今天的日期。
因此,如果结束日期在G列中,则调整后的结束日期可以在H列中并具有以下公式:
=IF(G2="",TODAY(),G2)
因此,您的合同数据包含用户,开始日期,结束日期,调整后的结束日期和费率列。
接下来,您将需要在计算用户工作日期的费率时创建一个数组公式。因此,列A为用户,列B为工作日期,列c为费率。此公式将进入C列:
=INDEX(I$2:I$19999,MATCH(1,IF(B2>=F$2:F$9999,IF(B2<=H$2:H$9999,IF(A2=$E$2:$E$9999,1))),0))
然后,要使其成为数组公式,请同时按 CTRL + SHIFT + ENTER 。向下拖动公式。该公式查看工作日期和用户,并找到适当的费率行。我们先前创建了该伪结束日期,以使该公式在结束日期为null时不会大惊小怪。
最终结果如下:
,我使用了表和结构化引用,尽管您可以根据需要将其更改为常规寻址。
我将小时费率表命名为tblHrly
C2: =MAX(tblHrly[RATE]*(A2=tblHrly[USERNAME])*(B2>=tblHrly[START_DATE])*(B2<=IF(tblHrly[END_DATE]=0,tblHrly[END_DATE])))
根据您的Excel版本,您可能可以正常输入,或者必须使用ctrl+shift+enter
注意:您还可以使用Power Query
来构造此表,但是如果没有公式,则每次更改时都必须更新查询。如果您有庞大的每小时费率数据表,则可能会更快,也可能不会更快。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。