2016-11-04 457 views
1

在此先感谢您的时间和考虑。Excel VLOOKUP日期范围拆分

我很熟悉excel中VLOOKUP函数的概念,并希望有一点帮助。我在Excel中有多个表格,并且在输入内部业务代码时使用VLOOKUP命令成功完成填充单元格的操作,例如填写业务的全名,地址等。我目前的问题是这样的。

我有覆盖表指示保险公司X在给定日期范围内覆盖公司Y.我有数据显示Y公司在另一个给定日期范围内赚取了Z美元的收入。这些日期通常很难匹配。我想获得与每家保险公司相关的总收入总和。

例如,Y公司从1980年1月1日到1980年4月15日由保险公司A和从1980年4月16日到1981年6月20日保险公司B承保。公司Y在2001年1月1日至1980年3月31日期间赚取250美元,因此保险公司A承保250美元,保险公司B承保0.00美元,因为日期范围不包括保险公司B承保的任何时间。公司Y从04年获得1000美元/ 01/1980至12/31/1980,明年没有收入。承保人A承保15天,承保人B承保260天,因此承保人A承保的54.55美元((15/275)* 1000),保险公司B承保的945.45美元((260/275)* 1000)。总计304.55美元保险人A ,$ 945.45保险公司B.

我该如何去做这件事?如果这是超越Excel功能的东西,你会推荐做什么?非常感谢你的帮助,花时间回答这里的问题表示感谢。

应该指出,我的覆盖表已经完成。我必须输入的数据是业务,收入期开始和结束日期以及该期间的总收入。覆盖表包括商业,保险公司,保险期限的开始和结束日期。他们在不同的工作簿上,但我很熟悉如何在其他工作簿上引用外部数据。

下面是数据结构的一个例子。 https://docs.google.com/spreadsheets/d/1nSotP9TYgyKeL0y_CeQXEwfs-ygaPW17LSMf9NOh6GY/edit?usp=sharing

+1

存在的数据的例子,所期望的结果。 – FDavidov

+0

这有点复杂,但通过结合使用vlookup和sumproduct,你应该可以做到这一点。如果你提供实际的Excel,我应该能够建议。 – Karpak

回答

0

假设我们有两个表:1保险商表:

Insurers | Begins | Ends | 
    A |01/01/1980|04/15/1980| 
    B |04/16/1980|06/20/1981| 

和2 EARNGINGS表:

#|Amount | Begins | Ends | 
1| 250 |01/01/1980|03/31/1980| 
2| 1000 |04/01/1980|12/31/1980| 

然后,我们将在月底添加一些额外的辅助柱2表:

#|Amount | Begins | Ends |  Days  |  A  |  B  | 
1| 250 |01/01/1980|03/31/1980|=[ends]-[begins]+1|[1-days for A]|[1-days for B]| 
2| 1000 |04/01/1980|12/31/1980|=[ends]-[begins]+1|[2-days for A]|[2-days for B]| 

把这个公式写入[1-days for A]计算天公司,并使用鼠标从[1-days for A]向下填充到[2-days for B]

=IF(MIN(VLOOKUP(L$3,$B$4:$D$6,3,FALSE),$J4)-MAX(VLOOKUP(L$3,$B$4:$D$6,2,FALSE),$I4)+1>0,MIN(VLOOKUP(L$3,$B$4:$D$6,3,FALSE),$J4)-MAX(VLOOKUP(L$3,$B$4:$D$6,2,FALSE),$I4)+1,0) 

为了得到结果,我们应该创建三表“结果记录表”:

#|   A   |   B   | 
1|[1-amount belongs to A]|[1-amount belongs to B]| 
2|[2-amount belongs to A]|[2-amount belongs to B]| 

将这个公式为[1-amount belongs to A]计算公司的部分和填充使用鼠标:

=HLOOKUP(C$16,$G$3:$N$6,MATCH($B17,$G$3:$G$6,0),FALSE)/VLOOKUP($B17,$G$3:$N$6,5,FALSE)*VLOOKUP($B17,$G$3:$N$6,2,FALSE) 

这有点复杂,说不清楚d,同样使用my example file。 我希望我能理解你的问题。

0

以下是你的例子。你可以在sumproduct的帮助下做到这一点。 enter image description here

左边是您的保险人表。右边是索赔表。 以下是您可以使用的公式。如前面提到的。它有点复杂并且运作良好。

=IFERROR(SUMPRODUCT(1*($G$2:$G$5>=C2)*($H$2:$H$5<=D2)*$I$2:$I$5),0)+IFERROR(SUMPRODUCT(1*($G$2:$G$5<C2)*($H$2:$H$5>D2)*(D2-C2+1)/($H$2:$H$5-$G$2:$G$5+1)*($I$2:$I$5)),0)+IFERROR(SUMPRODUCT(1*($G$2:$G$5>=C2)*($G$2:$G$5<=D2)*($H$2:$H$5>D2)*(D2-$G$2:$G$5+1)/($H$2:$H$5-$G$2:$G$5+1)*($I$2:$I$5)),0)+IFERROR(SUMPRODUCT(1*($H$2:$H$5<=D2)*($H$2:$H$5>=C2)*($G$2:$G$5<C2)*($H$2:$H$5-C2+1)/($H$2:$H$5-$G$2:$G$5+1)*($I$2:$I$5)),0) 

对于示例Excel Click Here

+0

非常感谢您的宝贵意见和有益的补充。我唯一的问题是,我不能将保险索赔栏放到我的保险表上,因为直接修改保险索赔太冒险。我链接了一个如何在编辑后的原始文章中构建数据的示例。我希望随着更多数据的进入而更新主覆盖表,并在其自己的工作表中生成薪资数据和结果表,以保持两者分离。再次感谢你的帮助。 –

+0

我知道这是有风险的。这个答案是告诉你这是可能的。既然您知道如何引用其他工作表的详细信息,我认为您也知道从其他工作表创建参考。请检查我给出的示例excel,现在可以在带有更新公式的单独表格中为您提供收入。 – Karpak