Excel 使用INDIRECT()和INDEX()函数

Excel 使用INDIRECT()和INDEX()函数,excel,excel-formula,Excel,Excel Formula,我有一个公式,我希望以此为基础,能够向下拖动以自动完成许多行 =COUNTA(INDEX(1:100,0,ROW(A1))) 这个公式的目的是计算我的每一列中非空白单元格的数量。我知道我可以用另一个公式 =COUNTA(EIM!A$1:A$100) 。。。把它拖过来,粘贴特殊值,然后粘贴特殊转置,但我想知道是否还有其他(更优雅的)方法。正如您在第二个公式中所看到的,我尝试提取另一个工作表的值。因此,我认为间接()是一种方法 我的问题是:如何使用INDIRECT()与第一个使用INDEX()函

我有一个公式,我希望以此为基础,能够向下拖动以自动完成许多行

=COUNTA(INDEX(1:100,0,ROW(A1)))
这个公式的目的是计算我的每一列中非空白单元格的数量。我知道我可以用另一个公式

=COUNTA(EIM!A$1:A$100)
。。。把它拖过来,粘贴特殊值,然后粘贴特殊转置,但我想知道是否还有其他(更优雅的)方法。正如您在第二个公式中所看到的,我尝试提取另一个工作表的值。因此,我认为间接()是一种方法

我的问题是:如何使用INDIRECT()与第一个使用INDEX()函数实现这一点的公式相结合

下面是当前公式计算时的屏幕截图(不确定是否有用):

当然可以,但你应该吗

为此,您可以使用R1C1样式,通过在间接:

=COUNTA(间接(“EIM!R1C”&行(A1)和“:R100C”&行(A1),FALSE))

或者只是:

=COUNTA(索引(间接(“EIM!$1:$100”),0,第(A1)行))

通常,如果你使用间接,你就做错了。我见过的间接的唯一合理使用案例是(a)按公式选择另一个工作表(Excel中没有好的方法)和(b)编写引用命名单元格的Excel教程示例

如果您总是引用特定工作表,则应使用:

=COUNTA(索引(EIM!$1:$100,0,第(A1)行))

如果每列代表不同的工作表,则可以接受间接工作表。

当然可以,但是否应该

为此,您可以使用R1C1样式,通过在间接:

=COUNTA(间接(“EIM!R1C”&行(A1)和“:R100C”&行(A1),FALSE))

或者只是:

=COUNTA(索引(间接(“EIM!$1:$100”),0,第(A1)行))

通常,如果你使用间接,你就做错了。我见过的间接的唯一合理使用案例是(a)按公式选择另一个工作表(Excel中没有好的方法)和(b)编写引用命名单元格的Excel教程示例

如果您总是引用特定工作表,则应使用:

=COUNTA(索引(EIM!$1:$100,0,第(A1)行))


如果每列代表不同的工作表,则可以接受间接工作表。

如果我理解正确,
=COUNTA(索引(EIM!$1:$100,0,第(A1)行))
应该执行此操作trick@chrisneilsen请告诉我非间接的答案。如果你能避免间接的,你应该这样做。嘿,伙计们,我感谢他们的帮助。问题是,我正在尝试创建一个摘要页面,该页面在数字if表上绘制。因此,使用间接引用工作表名称是我想要的方式。仅供参考:最后,我使用了一个带有helper列的变通方法,公式=COUNTA(间接(A2&“!”&地址(1,F2)&“&地址(100,F2)),其中F2有列号,A2有表名,允许我向下拖动公式。如果我理解正确,
=COUNTA(索引(EIM!$1:$100,0,行(A1)))
应执行以下操作trick@chrisneilsen请告诉我非间接答案。如果你能避免间接答案,你应该这样做。嘿,伙计们,我感谢他们的帮助。问题是,我正在尝试创建一个摘要页面,在If表格上绘制数字。因此,使用间接引用表格名称是我想要的方式。仅供参考:最后,我使用了一个辅助列的变通方法,公式=COUNTA(间接(A2&“!”&地址(1,F2)&“:”&地址(100,F2)),其中F2有列号,A2有工作表名,允许我向下拖动公式。很棒的帖子。完全忘记了非VBA R1C1引用样式。尽管我使用了变通方法(参见前面的注释)成功了,你的回答成功了。Ps如上所述,我需要间接引用其他几张工作表。因此=COUNTA(间接(A2&“!R1C”&行(A1)&“:R100C”&行(A1),FALSE)),其中列a有我的工作表名是我的理想解决方案。谢谢!)我知道间接允许动态引用一个范围,索引的行为是否也一样?例如=IFNA(MATCH(G2,INDIRECT($K$2),1),MATCH(G2,INDIRECT($K$2),-1))很棒的帖子。完全忘记了非VBA R1C1引用样式。尽管我使用了解决方法(参见前面的评论)工作正常,您的回答正常。Ps如上所述,我需要间接引用其他几个工作表。因此=COUNTA(间接(A2&“!R1C”&行(A1)&“:R100C”&行(A1),FALSE)),其中列a有我的工作表名称是我的理想解决方案。谢谢!:)我知道间接允许动态引用范围,索引的行为方式是否相同?例如=IFNA(匹配(G2,间接($K$2),1),匹配(G2,间接($K$2),-1))