在唯一ID的两个表之间查找,并且日期在其他两个日期之间

时间:2018-12-19 17:12:16

标签: excel excel-formula

我在Excel中有两个表。一个具有键和日期-可以是表A。另一个具有键,开始日期,结束日期和值-我们将此表称为B。

我试图将表B的值作为键插入表A,其中表A的日期在表B的开始日期和结束日期之间。使用下面的示例表,该值应为0.4。 / p>

注意:永远不会有重叠的日期,并且不应在同一日期范围内有多行。

表A-

| Key | Date       |
|-----|------------|
| 2   | 10/29/2018 |

表B-

| Key | Begin Date | End Date   | Value |
|-----|------------|------------|-------|
| 1   | 07/01/2018 | 12/31/2999 | 0.1   |
| 1   | 01/01/1995 | 06/30/2018 | 1     |
| 1   | 01/01/1900 | 12/31/1994 | 0.5   |
| 2   | 10/31/2018 | 12/31/2999 | 3.6   |
| 2   | 01/01/1995 | 10/30/2018 | 0.4   |
| 2   | 01/01/1900 | 12/31/1994 | 10    |
| 3   | 01/01/1900 | 12/31/2999 | 100   |

谢谢!

1 个答案:

答案 0 :(得分:1)

假设只有一场比赛,请使用SUMIFS

=SUMIFS($I$1:$I$8,$F$1:$F$8,A2,$G$1:$G$8,"<="&B2,$H$1:$H$8,">="&B2)

enter image description here

注意-将表B中12/31/1995的两个实例更改为12/31/1994,假设这是一个错字,并且各行之间的日期范围不应重叠。

编辑:

如果需要返回文本,可以使用INDEXAGGREGATE

=INDEX(I2:I8,AGGREGATE(15,6,ROW($A$1:$A$7)/(($F$2:$F$8=A2)*($G$2:$G$8<=B2)*($H$2:$H$8>=B2)),1))

enter image description here