Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VLookup针对2个范围-一个精确范围和一个非精确范围_Excel - Fatal编程技术网

Excel VLookup针对2个范围-一个精确范围和一个非精确范围

Excel VLookup针对2个范围-一个精确范围和一个非精确范围,excel,Excel,我有两个数据集: Set1:名称、日期、金额 Set2:名称、金额、开始日期、结束日期 在Set1中,我试图用Set2中的数据填充Amount字段。问题在于关键字段是精确匹配(名称)和非精确匹配(日期范围)的混合 如果名称完全匹配且日期在StartDate和EndDate的日期范围内,如何编写公式来查找Set2中的金额 我在这方面尝试了很多不同的函数,但都没有用——VLookups、Lookups、Match和Index、If语句——以及所有这些的数组。最接近我的方法是创建一个键字段[Start

我有两个数据集:

Set1:名称、日期、金额

Set2:名称、金额、开始日期、结束日期

在Set1中,我试图用Set2中的数据填充Amount字段。问题在于关键字段是精确匹配(名称)和非精确匹配(日期范围)的混合

如果名称完全匹配且日期在StartDate和EndDate的日期范围内,如何编写公式来查找Set2中的金额

我在这方面尝试了很多不同的函数,但都没有用——VLookups、Lookups、Match和Index、If语句——以及所有这些的数组。最接近我的方法是创建一个键字段[StartDate]&[Name],但是如果多个名称具有相同的开始日期(返回值最高的一个,而不管名称如何),则此操作将失败

数据考虑和假设

  • 名称/日期记录在Set1中是唯一的
  • 给定名称的开始日期和结束日期范围不会重叠 A.不同名称的开始日期和结束日期范围可能重叠
  • Set1中的所有名称/日期组合在Set2中将有一个匹配的记录
  • 用户应该能够在Set2中添加新名称和金额,而不会产生负面影响

  • 谢谢大家!!我试图在这里提供尽可能多的细节,但如果还有任何其他问题,请告诉我。

    A
    SUMPRODUCT
    公式会很好(只要您有excel 2016或更高版本)

    =SUMPRODUCT((A20=$A$27:$A$30)*(B20=$C$27:$C$30)*($B$27:$B$30))
    

    请发布一些示例数据。您可以在excel中完成,并复制/粘贴屏幕快照。这非常有效!以这种方式使用SumProduct是一个很棒的解决方案,谢谢!
    =SUMPRODUCT((A20=$A$27:$A$30)*(B20<=$D$27:$D$30)*(B20>=$C$27:$C$30)*($B$27:$B$30))