【发布时间】:2019-06-29 19:49:07
【问题描述】:
命名范围可以包含多个区域,它们只是用逗号分隔的引用。使用什么符号来指代命名范围的区域?
例如,我将字母表放在 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,但这失败了,因为只要将数组传递给@987654327 的area_num 参数@ 它只返回每个区域的第一行。失败的例子:
{=INDEX(Alphabet,,,N(IF({1},ROW(INDEX(Sheet1!$A:$A,1):INDEX(Sheet1!$A:$A,AREAS(Alphabet))))))}
这将返回数组{"A";"H";"P";"V"},这不是我要查找的,因为我想计算每个区域中的行数。
只寻找公式(即没有 VBA)解决方案。有什么想法吗?
【问题讨论】:
-
我真的很接近,但似乎无法正确处理。创建了第二个名为
Alphabet_Areas-=ROW(INDEX(Sheet1!$A:$A,1):INDEX(Sheet1!$A:$A,AREAS(Alphabet)))的命名范围然后我可以在单元格中执行数组公式并获得正确答案,但不能作为 F9 评估。半工作公式是 -{=IF(Alphabet_Areas,ROWS(INDEX(Alphabet,,,Alphabet_Areas)))} -
Jenn - 如果我的命名范围没有多个区域,您的解决方案将是正确的。除了最后一个公式之外的所有公式都以
#REF失败,因为它不知道将公式应用于哪个区域。最后一个公式以某种方式得出 1,这是一个不正确的答案。 -
只有两个离题提示:您应该直接在@Jenn 的答案下方发表您的评论,以确保作者收到消息。如果您明确添加用户名,请在名称前添加 @ :)
标签: arrays excel excel-formula named-ranges