2013-05-21 78 views
1

我正在處理3個工作表。交叉引用Excel工作表

項目由以下部分組成:

Project ClientCode Code  
------  ---------- ----  
Project1 ABC   123  
Project2 ABC   456  
Project3 DEF   789  

發票包括:

ProjectCode Amount 
----------- ----- 
123   $100 
789   $200 
123   $50 

和客戶端組成:

Code Total 
---- ----- 
ABC  [$150] 
DEF  [$200] 

我試圖創建一個公式,將通過確定哪些發票屬於哪個項目,填充客戶表中的「總計」字段客戶。我覺得這將是SUMIF和LOOKUP的組合,但我很難過。

編輯:修訂上述下面討論的格式(換項目柱B和C)

回答

0

在單個小區中使用VLOOKUPSUMIF沒有任何輔助列是可能的,但將需要交換的位置列ClientCodeCodePROJECTS它的工作。

交匯處列位置如上所述(使得ClientCodeCode之前),然後使用:

=SUMIF(INVOICES!A:A, VLOOKUP(CLIENTS!A2, PROJECTS!B:C, 2, 0), INVOICES!B:B) 

我假定行每個工作表1具有列標題。 A2這裏是指ABC

VLOOKUP首先查找ClientCodeSUMIFCode然後總結匹配CodeINVOICES工作表中的金額。

編輯:下面應該更好地工作,因爲VLOOKUP只發現第一場比賽,這在這裏不起作用。

=SUM(SUMIF(INVOICES!A:A,IF(CLIENTS!A1=PROJECTS!C:C,PROJECTS!B:B),INVOICES!F:F)) 

請注意,您必須使用按Ctrl ++輸入使用這個公式。在完成ABC之後,您可以將公式拖到B上。另請注意,他的公式可能需要一些時間才能評估,因此,如果將範圍更改爲適當的範圍可能會更好。例如,如果INVOICES只有100行,請將INVOICES!A:A,INVOICES!B:B更改爲INVOICES!A2:A100,INVOICES!B2:B100,對於此公式中的其他範圍也是如此。

+1

我試過了(並且非常感謝你的建議)。它最終做的是工作,問題在於它只是爲與客戶端關聯的第一個項目合併所有發票,而不是與其關聯的所有項目。因此,如果我在「INVOICES」中添加另一行「456/75美元」,則此金額將不會反映在總額中。 – user2406594

+0

@ user2406594好的,對不起。我編輯了我的答案來加入這個。它可能有點慢,但是這是因爲這個公式可以說是評估了很多'vlookups'。我已經提到你如何加快這一點。 – Jerry