0

我的问题是如何找到特定列和行号的相交单元格?

我的情况是这样的:通过一些计算,我找到了两个单元格,比如说B6E1。我知道我需要第一行的一行和第二行的一列。所以我可以只使用ROWCOLUMN函数来获取数字。之后,我需要找到一个相交的单元格。在本例中为E6 。

我只会使用INDEX(A1:Z100;ROW;COLUMN)但我不知道我需要的确切区域 - 这取决于其他东西。我可以使用A1:XFG65000 之类的东西,但这太蹩脚了。我也可以使用INDIRECT(ADDRESS())的组合,但我正在从已关闭的工作簿中提取数据,因此INDIRECT将不起作用。

如果这有助于了解这一切的用途 - 这是一个具体的例子:我需要找到我将使用的工作表部分的限制。我知道它从B列开始,一直到该列中的最后一个非空单元格。此范围以在第一行中具有任何值的最后一列结束。所以要定义它 - 我需要找到最后一列和最后一行在 B 列中的值的交集。我使用这个数组公式来查找最后一列:

索引(1:1;MAX((1:1<>"")*(COLUMN(1:1))))

这个数组公式可以找到最后一行:

索引(B:B;MAX((B:B<>"")*(ROW(B:B)))

最后一列的结果是E1,最后一行的结果是B6。现在我需要将我的范围定义为B1:E6,我怎样才能从这一切中得到E6以放入结果公式中?我已经思考了一段时间,而不是 Excel 专家——我想不出任何东西。因此,我们将不胜感激任何帮助。谢谢!

4

2 回答 2

1

您可以使用索引/匹配组合并使用匹配来查找相关单元格。对行使用一个 Match(),对列使用一个 Match()。

用于查找工作表中最后一个单元格的索引/匹配函数

  • B列是最左边的表格列
  • 第 1 行是最上面的表格行
  • B 列和第 1 行中的数据可以是文本和数字的混合
  • B列和第1行可以有空单元格
  • B 列中最后一个填充的单元格标记了表格的最后一行
  • 第 1 行中最后一个填充的单元格标记了表格的最后一列

有了这些前提,以下将返回正确的结果,在 Sum() 中使用 A1 作为起始单元格,Index 返回范围的右下角单元格:

=SUM(A1:INDEX(1:1048576,MAX(IFERROR(MATCH(99^99,B:B,1),0),IFERROR(MATCH("zzzz",B:B,1),0)),MAX(IFERROR(MATCH(99^99,1:1,1),0),IFERROR(MATCH("zzzz",1:1,1),0))))

由于您似乎在使用分号作为列表分隔符的系统上,因此这里是带有分号的公式:

=SUM(A1:INDEX(1:1048576;MAX(IFERROR(MATCH(99^99;B:B;1);0);IFERROR(MATCH("zzzz";B:B;1);0));MAX(IFERROR(MATCH(99^99;1:1;1);0);IFERROR(MATCH("zzzz";1:1;1);0))))
于 2013-08-23T08:31:56.930 回答
0

Offset似乎是要走的路

=OFFSET($A$1,ROW(CELL1)-1,COLUMN(CELL2)-1)

(需要-1是因为我们在 A1 中已经有 1 列和 1 行)

在您的示例中,=OFFSET($A$1,ROW(B6)-1,COLUMN(E1)-1)将给出 E6 中的值

还有ADDRESSS如果你想要的位置:=ADDRESS(ROW(B6),COLUMN(E1))给出答案$E$6

于 2013-08-23T12:42:35.467 回答