【发布时间】:2017-02-23 01:37:29
【问题描述】:
背景
当我想定义一个覆盖整个表格的动态范围时,我经常发现自己很安静。我想要足够的灵活性,如果我添加更多列或行或移动表格,则应该更新范围。
所以我做的基本上是:
- 为表格左上角的单元格命名(
start.table说) -
定义表格的动态范围如下:
=OFFSET(start.table;0;0; COUNTA(INDIRECT( SUBSTITUTE(ADDRESS(ROW(start.table);1);"$1";"") & ":" & SUBSTITUTE(ADDRESS(ROW(start.table);1);"$1";""))); COUNTA(INDIRECT( SUBSTITUTE(ADDRESS(1;COLUMN(start.table));"$A";"") & ":" & SUBSTITUTE(ADDRESS(1;COLUMN(start.table));"$A";""))))
说明
-
ADDRESS给了我整个列/行单元格start.table的字符串表示 - 我需要
SUBSTITUTE$1和$A部分分别获取列或行限定符 - 然后我可以
COUNTAINDIRECT范围内的非空单元格,正如SUBSTITUTE字符串所引用的那样 - 使用这种方法,即使我要在表格之前/之后添加空行或添加列或行,表格也能保持正确定义
问题
这种方法似乎有点矫枉过正,我在想我是否不能简单地将整个 INDIRECT(...) 构造分别替换为 $A:$A 和 $1:$1。第一次测试将确认它有效,但我想知道我是否在这里忽略了一些东西?您认为这种方法有什么潜在的问题吗?
【问题讨论】:
标签: excel excel-formula