简体   繁体   English

使用外部数据源在Excel中求和

[英]Sumproduct in excel using external data source

I am trying to calculate some data in a excel using external excel file. 我正在尝试使用外部Excel文件计算Excel中的一些数据。 My formula is like; 我的公式就像;

=SUMPRODUCT(--('[Stock Register.xlsx]Stock Code 1'!$E$3:$E$500="Issued to Sanitary Syndicate"),'[Stock Register.xlsx]Stock Code 1'!$C$3:$C$500) = SUMPRODUCT(-('[[Stock Register.xlsx]股票代码1'!$ E $ 3:$ E $ 500 =“已发行给卫生集团”),'[[Stock Register.xlsx]股票代码1'!$ C $ 3: $ C $ 500)

This works fine for me. 这对我来说很好。 But I need the sheet (Stock Code 1) being changed automatically when dragging or pasting on the next rows. 但是我需要在拖动或粘贴下一行时自动更改工作表(股票代码1)。

I am using it a new workbook using external data source (Stock Register.xlsx). 我正在使用一个使用外部数据源(Stock Register.xlsx)的新工作簿。 Stock Register consisting of 570 sheets and for each sheets I need to display results in that New Workbook in cell (C1) using above formula and drag it to cell (C70). 库存记录由570张纸组成,每张纸我需要使用上述公式在单元格(C1)中的“新工作簿”中显示结果,并将其拖到单元格(C70)中。

You can add two columns before the SUMPRODUCT . 您可以在SUMPRODUCT之前添加两列。

First column, say this is in column B , will need to have CONCATENATE to the external spreadsheet that you want to link to. 第一列(位于B列 )将需要CONCATENATE到要链接的外部电子表格。 For example: 例如:

=CONCATENATE("[Stock Register.xlsx]Stock Code",ROW(A1),"!$E$3:$E$500")

This should give you [Stock Register.xlsx]Stock Code 1!$E$3:$E$500 . 这应该给您[Stock Register.xlsx]Stock Code 1!$E$3:$E$500

Same thing for the second column that you want for $C$3:$C$500 so you can get [Stock Register.xlsx]Stock Code 1!$C$3:$C$500 . 第二列的价格为$C$3:$C$500因此可以获得[Stock Register.xlsx]Stock Code 1!$C$3:$C$500

Then the third column, say this is in column D , will be the SUMPRODUCT formula that with INDIRECT . 然后,第三列(位于D列 )将是具有INDIRECTSUMPRODUCT公式。 And here you go: 在这里,您去:

=SUMPRODUCT(--(INDIRECT(B1)="Issued to Sanitary Syndicate"),INDIRECT(C1))

Hope this helps. 希望这可以帮助。

PS One thing I noticed when combining all three into one column, the formula wouldn't work. PS当我将三者全部合并为一列时,我注意到一件事,该公式不起作用。 Someone probably can come up a better way but to have a reference address sit next to the result may benefit you to debug down the road. 有人可能会提出一种更好的方法,但是在结果旁边放置一个参考地址可能会有益于您进行后续调试。 Just a thought. 只是一个想法。


UPDATED: Okay, I was able to recreate what I described below. 更新:好的,我能够重新创建下面描述的内容。 Maybe it is easier to show you in screenshots: 也许更容易在屏幕截图中显示您:

  1. See I created three sheets in Stock Register.xlsx file, Stock Code 1 sheet looks like below that values under column C and descriptions under column E . 请参阅我在Stock Register.xlsx文件中创建了三张工作表,“ Stock Code 1表如下所示,位于column C column E下的值和column E column C下的描述。

    And another spreadsheet called Results.xlsx . 另一个电子表格称为Results.xlsx Column B has a formula of =CONCATENATE("'[Stock Register.xlsx]Stock Code ",ROW(A1),"'!$E$3:$E$500") . Column B的公式为=CONCATENATE("'[Stock Register.xlsx]Stock Code ",ROW(A1),"'!$E$3:$E$500")

  1. In this picture, Stock Code 2 sheet looks like below. 在这张照片中, Stock Code 2表如下。

    Column C in Results.xlsx spreadsheet has a formula of =CONCATENATE("'[Stock Register.xlsx]Stock Code ",ROW(A1),"'!$C$3:$C$500") . Results.xlsx电子表格中的Column C的公式为=CONCATENATE("'[Stock Register.xlsx]Stock Code ",ROW(A1),"'!$C$3:$C$500")

  1. In this picture, Stock Code 3 sheet looks like below. 在这张照片中, Stock Code 3表如下。

    Column D in Results.xlsx spreadsheet has a formula of =SUMPRODUCT(--(INDIRECT(B1)="Issued to Sanitary Syndicate"),INDIRECT(C1)) . Results.xlsx电子表格中的Column D的公式为=SUMPRODUCT(--(INDIRECT(B1)="Issued to Sanitary Syndicate"),INDIRECT(C1))

Try again and let me know. 再试一次,让我知道。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM