引用命名范围的区域

时间:2019-06-29 19:49:07

标签: arrays excel excel-formula named-ranges

命名范围可以包含多个区域,它们只是用逗号分隔的引用。用什么符号来表示命名范围的区域?

例如,我将字母放在A-D列中。列A具有A-G,列B具有H-O,列C具有P-U,列D具有V-Z。我命名的范围称为Alphabet,引用看起来像这样:

=Sheet1!$A$1:$A$7,Sheet1!$B$1:$B$8,Sheet1!$C$1:$C$6,Sheet1!$D$1:$D$5

是否存在用于引用命名范围的区域的内置符号?我发现可以这样使用INDEX来获得B列的全部信息:

{=INDEX(Alphabet,,,2)}

方便地返回数组{"H";"I";"J";"K";"L";"M";"N";"O"}

但是,这不能解决我的问题。我希望能够计算每个范围的每个区域中的行数。我尝试取消引用范围中的区域数并将其传递给INDEX,然后在其上将其作为数组函数运行ROWS,但这失败了,因为一旦将数组传递给area_num INDEX的参数仅返回每个区域的第一行。失败的示例:

{=INDEX(Alphabet,,,N(IF({1},ROW(INDEX(Sheet1!$A:$A,1):INDEX(Sheet1!$A:$A,AREAS(Alphabet))))))}

这将返回数组{"A";"H";"P";"V"},这不是我想要的,因为我想计算每个区域中的行。

严格只寻找公式(即没有VBA)解决方案。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

获取命名范围的地址:

ADDRESS(ROW(Alphabet),COLUMN(Alphabet))&":"&ADDRESS(ROW(Alphabet)+ROWS(Alphabet)-1,COLUMN(Alphabet)+COLUMNS(Alphabet)-1)

获取命名范围的第一行/最后一行:

=ROW(Alphabet) / =ROWS(Alphabet)

获取指定范围的第一列/最后一列:

=COLUMN(Alphabet) / =COLUMNS(Alphabet)

获取命名范围的第三列的范围:

=ADDRESS(ROW(Alphabet),COLUMN(Alphabet)+3-1)&":"&ADDRESS(ROW(Alphabet)+ROWS(Alphabet)-1,COLUMN(Alphabet)+3-1) 

计算命名范围的第3列中的非空白单元格:

=COUNTA(INDIRECT(ADDRESS(ROW(Alphabet),COLUMN(Alphabet)+3-1)&":"&ADDRESS(ROW(Alphabet)+ROWS(Alphabet)-1,COLUMN(Alphabet)+3-1)))