Excel VLOOKUP日期范围拆分

时间:2016-11-04 22:17:57

标签: excel date

提前感谢您的时间和考虑。

我熟悉excel中VLOOKUP功能的概念,并希望得到一些帮助。我在excel中有多个表,并且在输入我们的内部业务代码时,已成功使用VLOOKUP命令来执行诸如使用业务的全名,地址等填充单元格。我目前的问题是这个。

我有覆盖表,表明保险公司X在给定的日期范围内涵盖了公司Y.我有数据表明Y公司在另一个特定日期范围内的收益为Z美元。这些日期通常不能很好地匹配。我想得出与每家保险公司相关的总收入总和。

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

我该怎么做呢?如果这超出了excel的功能,你会建议做什么呢?非常感谢你的帮助,花时间回答这里的问题表示赞赏。

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

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

2 个答案:

答案 0 :(得分:0)

假设我们有两个表:1-INSURERS TABLE:

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-table的末尾添加一些额外的辅助列:

 #|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)

要获得结果,我们应该创建3表“RESULT TABLE”:

#|           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)

有点复杂,要理解,也要使用my example file。 我希望我理解你的问题。

答案 1 :(得分:0)

以下是您的示例。你可以在sumproduct的帮助下完成。 enter image description here

左侧是您的保险公司表。右侧是索赔表。 以下是您可以使用的公式。如前面提到的。它有点复杂,效果很好。

<?php

if (isDomainAvailible('http://www.w3schools.com')){
    echo '<link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css">';
} else {
    echo '<link rel="stylesheet" href="../css/w3.css">';
}

//returns true, if domain is availible, false if not
   function isDomainAvailible($domain)
   {
           //check, if a valid url is provided
           if(!filter_var($domain, FILTER_VALIDATE_URL))
           {
                   return false;
           }

           //initialize curl
           $curlInit = curl_init($domain);
           curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);
           curl_setopt($curlInit,CURLOPT_HEADER,true);
           curl_setopt($curlInit,CURLOPT_NOBODY,true);
           curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);

           //get answer
           $response = curl_exec($curlInit);

           curl_close($curlInit);

           if ($response) return true;

           return false;
   }

?>

样本Excel Click Here