2016-11-04 221 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