使用INDIRECT()和INDEX()函数

我有一个公式,我希望能够拖下来自动完成一些行。

=COUNTA(INDEX(1:100,0,ROW(A1))) 

此公式的目的是计算每个列中的非空白单元格的数量。 我知道我可以使用另一个公式…

 =COUNTA(EIM!A$1:A$100) 

…并拖动它,粘贴特殊值,然后粘贴特殊的转置,但我想知道是否有另一种(更优雅)的方式。 正如你在第二个公式中看到的那样,我正在努力拉取另一个工作表的值。 因此,我认为INDIRECT()是要走的路。

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

下面是当前公式的截图,它评估(不知道是否有帮助):

截图

当然可以 ,但是,应该吗?

要做到这一点,你可以使用R1C1风格,通过间接指定false

=COUNTA(INDIRECT("EIM!R1C"&ROW(A1)&":R100C"&ROW(A1),FALSE))

要不就:

=COUNTA(INDEX(INDIRECT("EIM!$1:$100"),0,ROW(A1)))

通常,如果你使用INDIRECT,你做错了什么。 我所看到的唯一合理的使用情况是(a)按公式select另一个工作表(在Excel中没有好的方法),(b)编写一个引用命名单元格的Excel教程示例。

如果您始终引用特定的工作表,则可以使用:

=COUNTA(INDEX(EIM!$1:$100,0,ROW(A1)))

如果每列代表不同的工作表,那么间接可能是可以接受的。