根据有效/停止日期执行Excel功能

时间:2016-03-03 00:19:40

标签: excel if-statement excel-formula

我的问题与此处提出的问题有些类似。

Creating Formula (Effective-Discontinue) Dates while using vlookup

基本上,我有两张桌子:

  1. 每件商品的历史销售数据(包含销售日期)
  2. 有资格获得佣金以及有效/已停止日期的项目
  3. 我需要的是根据第二张表中符合条件的佣金项目计算每个项目的佣金到我的第一张表格的方法。我的问题与我提供的链接不同的部分是,我的任何一个销售项目可能有多个有效/已停止日期,这意味着项目12345可能有效1/1 / 2015-3 / 31/2015以及4 / 2015年5月15日当前,因此在2015年4月1日销售该项目将不符合佣金条件,但2015年3月1日和2015年5月1日的销售将符合资格。

    有没有人对我可以使用的公式以及如何在表2中组织我的数据提出建议,以便最好地促进我尝试做的事情?感谢。

    编辑:以下是一些包含样本数据的表格。

    表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
    

2 个答案:

答案 0 :(得分:1)

在E3中输入为数组公式(使用Ctrl + Shift + Enter) 我对excel的这一部分并不擅长,所以我确信有更好的方法。

enter image description here

enter image description here

答案 1 :(得分:0)

尝试此索引/匹配:

=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确认。

enter image description here

表格参考:

=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会将{}放在公式周围。

enter image description here