根据有效/中止date执行Excelfunction

我有一个问题,有点类似于这里问的。

使用vlookup创build公式(有效 – 停止)date

基本上,我有两个表:

  1. 每件商品的历史销售数据(含销售date)
  2. 有资格获得佣金的项目以及有效/终止date

我需要的是根据第二个表格中符合条件的佣金项目,将每个项目的佣金计算到我的第一个表格中。 我所提出的与我所提供的链接不同的部分是,我的任何销售项目可能有多个生效/终止date,也就是说12345项目可能会在2015年1月1日/ 3月31日生效,因此2015年4月1日出售该项目将不具有佣金的资格,但2015年3月1日和2015年5月1日的销售将符合条件。

有没有人对我可以使用的公式以及如何在表2中组织我的数据提供build议,以最大限度地促进我所要做的事情? 谢谢。

编辑:这里是一些表格与示例数据。

表1(销售数据)

InvoiceDate ItemCode QuantityShipped 1/1/2015 123456 100 2/1/2015 789456 100 3/1/2015 789456 300 4/1/2015 123456 200 5/1/2015 123456 300 

表2(项目资格数据):

 Item Code Effective Date Discontinued Date Commission Rate 123456 1/1/2015 3/1/2015 0.02 123456 4/15/2015 0.03 789456 3/1/2015 0.02 

在E3中input数组公式(使用Ctrl + Shift + Enter)我不擅长这个部分,所以我确信有更好的方法。

在这里输入图像说明

在这里输入图像说明

试试这个索引/匹配:

 =IFERROR(INDEX($I$2:$I$4,MATCH(1,IF(($G$2:$G$4<=A2)*(IF($H$2:$H$4<>"",$H$2:$H$4,TODAY())>=A2)*($F$2:$F$4=B2),1,0),0)),0) 

这是一个数组,所以用Ctrl-Shift-Enter确认。

在这里输入图像说明

对于表格参考:

 =IFERROR(INDEX(Table1[Commission Rate],MATCH(1,IF((Table1[Effective Date]<=[@InvoiceDate])*(IF(Table1[Discontinued Date]<>"",Table1[Discontinued Date],TODAY())>=[@InvoiceDate])*(Table1[Item Code]=[@ItemCode]),1,0),0)),0) 

仍然是数组公式,所以在退出编辑模式时必须使用Ctrl-Shift-Enter来确认公式而不是Enter。 在公式栏中粘贴公式后,按Ctrl-Shift-Enter进行所需的更改。 如果做得好,Excel将在公式周围放置{}

在这里输入图像说明