【问题标题】:How to reference a cell from another sheet?如何引用另一个工作表中的单元格?
【发布时间】:2019-12-06 23:06:28
【问题描述】:

我必须计算一个范围内不为空的单元格的数量,所以我必须使用COUNTA 函数。问题是,我希望它是动态的。

步骤:

首先,我必须在 D 列中检索一个单元格的引用,并且该行对应于 A 列中包含特定字符串的行。假设这个字符串是“NRUTI_02”。

这是我的代码

=ADDRESS(MATCH("NRUTI_02";A1:A65535;0);4)

它在A1:A65535 范围内搜索字符串,一旦找到,它就会应用偏移量来获取“D”列 (4)。 -> 如果“NRUTI_02”在A18 中,则输出为D18

如果我换到另一张表(Sheet1),代码如下:

=ADDRESS(MATCH("NRUTI_02";Sheet1!A1:A65535;0);4)

但是,要在COUNTA 中使用此公式,我必须使用INDIRECT 公式。但如果我在公式前加上INDIRECT,它就不起作用了。

请问如何在COUTNA 函数中使用我的公式?

编辑:我的目标是拥有类似COUNTA('Sheet1!'D18:D65535)

编辑 2:COUNTA("Sheet1!D"&MATCH("NRUTI_02";Sheet1!A1:A65535;0):D65535) 不起作用

EDIT3:真实示例: 我的字符串“NRUTI_02”在 A18 中。我的范围的开始是 D18,因为我想依靠 D 列。D 列中的下一个空单元格是 D21。我想计算 D18:D21 范围内的所有单元格(行)。所以我希望我的范围是动态的:第一个 arg 自动找到 D18,最后一个 arg 将获取第一个 arg 的输出,直到列结束。

COUNTA(INDEX(Sheet1!D:D;MATCH("NRUTI_02";Sheet1!A:A;0)):INDEX(Sheet1!D18:D65535;MATCH(TRUE;ISBLANK(Sheet1!D18:D65535);0))) ; 

EDIT4:这是我的 Excel 文件的样子:XLSX

【问题讨论】:

    标签: excel formula


    【解决方案1】:

    可以使用INDEX 而不是ADDRESS

    =COUNTA(INDEX(Sheet1!D:D,MATCH("NRUTI_02",Sheet1!A:A,0)):INDEX(Sheet1!D:D,65535))
    

    甚至更简单:

    =COUNTA(INDEX(Sheet1!D:D,MATCH("NRUTI_02",Sheet1!A:A,0)):Sheet1!D65535)
    

    【讨论】:

    • 非常感谢!是否可以修改范围以使第二个索引指向下一个空白单元格?像这样: COUNTA(INDEX(Sheet1!D:D;MATCH("NRUTI_02";Sheet1!A:A;0)):INDEX(Sheet1!D18:D65535;MATCH(TRUE;ISBLANK(Sheet1!D18:D65535); 0)));其中 D18 是 D 列,18 是范围开始的行??
    • 我添加了一个例子,你明白我要解释什么了吗?再次感谢您的帮助
    • 您可以对整列使用 COUNTA,还是只想计算第一个“块”数据?意思是,你有几行数据,然后是空白行,然后是更多数据?
    • 是的,我有几行数据,具有相同的模式:空白行,更多数据,...
    • 试试这个 - 使用 Ctrl+Shift+Enter 输入:=COUNTA(INDEX(Sheet1!D:D;MATCH("NRUTI_02";Sheet1!A:A;0)):INDEX(INDEX(Sheet1!D:D;MATCH("NRUTI_02";Sheet1!A:A;0)):Sheet1!D65535;MATCH(TRUE;ISBLANK(INDEX(Sheet1!D:D;MATCH("NRUTI_02";Sheet1!A:A;0)):Sheet1!D65535);0)))