【问题标题】:Referring to an Area of a Named Range引用命名范围的区域
【发布时间】: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


【解决方案1】:

获取命名范围的地址:

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

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

=ROW(Alphabet) / =ROWS(Alphabet)

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

=COLUMN(Alphabet) / =COLUMNS(Alphabet)

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

=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)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多