使用外部数据源在excel中使用Sumproduct

使用外部数据源在excel中使用Sumproduct,excel,excel-formula,Excel,Excel Formula,我正在尝试使用外部excel文件计算excel中的一些数据。我的公式是: =SUMPRODUCT(-(“[Stock Register.xlsx]股票代码1”!$E$3:$E$500=”发给卫生辛迪加”),“[Stock Register.xlsx]股票代码1”!$C$3:$C$500) 这对我来说很好。但我需要在拖动或粘贴下一行时自动更改工作表(股票代码1) 我正在使用它作为使用外部数据源(stockregister.xlsx)的新工作簿。库存登记簿由570张表组成,对于每一张表,我需要使用上

我正在尝试使用外部excel文件计算excel中的一些数据。我的公式是:

=SUMPRODUCT(-(“[Stock Register.xlsx]股票代码1”!$E$3:$E$500=”发给卫生辛迪加”),“[Stock Register.xlsx]股票代码1”!$C$3:$C$500)

这对我来说很好。但我需要在拖动或粘贴下一行时自动更改工作表(股票代码1)


我正在使用它作为使用外部数据源(stockregister.xlsx)的新工作簿。库存登记簿由570张表组成,对于每一张表,我需要使用上述公式在新工作簿的单元格(C1)中显示结果,并将其拖动到单元格(C70)。

您可以在
SUMPRODUCT
之前添加两列

第一列(假设在B列中)需要将
连接到要链接到的外部电子表格。例如:

=串联(“[Stock Register.xlsx]Stock code”,第(A1)行“!$E$3:$E$500”)

这将为您提供
[Stock Register.xlsx]股票代码1$E$3:$E$500

对于
$C$3:$C$500
的第二列,同样的内容,您可以获得
[Stock Register.xlsx]股票代码1$加元3:$500加元

然后第三列,假设这是在D列中,将是
SUMPRODUCT
公式,它与
INDIRECT
一起使用。给你:

=SUMPRODUCT(--(间接(B1)=“发放给卫生辛迪加”),间接(C1))

希望这有帮助

还有一件事我注意到,当我把这三者合并成一列时,这个公式是行不通的。有人可能会想出一个更好的方法,但是在结果旁边放一个引用地址可能会有助于您调试。只是一个想法


更新: 好的,我能够重现我下面描述的内容。也许在屏幕截图中更容易显示:

  • 请参见我在
    Stock Register.xlsx
    文件中创建的三张表,
    Stock code 1
    表如下所示,即
    列C
    下的值和
    列E
    下的说明。

    和另一个名为
    Results.xlsx
    的电子表格<代码>列B
  • 的公式为
    =串联(“[Stock Register.xlsx]Stock code”,第(A1)行),“!$E$3:$E$500”)

  • 在这张图片中,
    股票代码2
    表如下所示。

    Results.xlsx
    电子表格中的
    列C
    有一个公式
    =串联(“[Stock Register.xlsx]Stock code”,第(A1)行),“!$C$3:$C$500”)
  • 在此图片中,
    库存代码3
    表如下所示。

    结果中的
    列D
    。xlsx
    电子表格的公式为
    =SUMPRODUCT(--(间接(B1)=“发放给卫生辛迪加”),间接(C1))

  • 请再试一次,让我知道。

    将更改为什么?您需要以某种方式合并间接名称,但这取决于名称的更改方式。您可能必须使用VBA来实现此目的!;)但是请先读一读!和你的帖子,提供更多关于你试图将公式拖到哪个范围的细节。请帮助…不起作用。请Help@arijitirf,请检查我的最新答案,并让我知道这是否适用于您。首先,我想感谢您为我花时间。仅在父工作簿打开时工作。有没有什么技巧可以让公式在不打开父工作簿的情况下工作。再次感谢。如果您需要使用
    INDIRECT
    链接到动态关闭的外部文件,简短的回答是“否”。但是你可以在谷歌上搜索
    INDIRECT.EXT
    Harlan Grove的PULL
    函数。否则,您将需要为其编写一些VBA代码(签出以静默方式打开外部电子表格)。