【问题标题】:Excel Data Validation SourceExcel 数据验证源
【发布时间】:2013-03-05 02:13:28
【问题描述】:

我已经尝试过搜索,但可能只是没有找到正确的关键词组合,无法找到解决方案。

我在 Excel 中要做的是根据在另一个单元格中输入的键值生成动态验证列表。

我有 3 个工作表:WSName(Columns)

  1. 日志(建筑物、楼层)
  2. 建筑物(BuildingId、BuildingName)
  3. 楼层(FloorId、BuildingId、FloorName)

我为我的所有建筑 ID 创建了一个命名范围,名为“BuildingIds”

我通过名为“Floor#BuildingId#”的建筑物为所有楼层创建了单独的命名范围

我想要的是,当在日志工作表中选择建筑物时,楼层列表会动态填充楼层工作表中该建筑物的可用楼层。

我的想法是在数据验证源中我应该能够做到这一点:

=INDIRECT("Floors"&$A$2)

它部分有效,但总是返回相同的楼层列表,因为 $A$2 不是动态的,取决于它所在的行,所以我需要 $A$2 来使用当前行中的值。

这将返回我想要的当前行的选定建筑物的值:

=INDIRECT("A"&ROW())

但是当我尝试时:

=INDIRECT(CONCATENATE("Floor","A"&ROW()))

=CONCATENATE("Floor",INDIRECT("A"&ROW()))

我收到一个错误。

你能帮我解决这个公式吗?!提前致谢!

【问题讨论】:

    标签: excel excel-formula validation


    【解决方案1】:

    您使用了不正确的语法 - 这就是手动链接的样子:

    ='Sheet 1'!A1
    

    添加感叹号和',您就完成了。其余的对我来说似乎很好)

    【讨论】:

    • 谢谢彼得,但我很困惑如何将它与“地板”连接起来? =CONCATENATE("Floor",'Sheet 1'!A1)
    • @JohnSadler 这是一个示例朋友)您的解决方案不需要它 - 使用“地板!”作为论据。当工作表名称中包含空格时,' 是必需的。
    • 好吧,也许我没有解释清楚。 Floor 工作表中有多个命名范围。每个建筑物一个。它们被命名为“楼层”&BuildingId。在数据验证源中的日志工作表上,我需要公式为“楼层”&(该行的选定建筑物 ID)。我看到了“地板!”引用了我的 Floor 工作表,但没有引用该工作表中特定命名范围的方式。
    • @JohnSadler 请提供几个命名范围的名称以便更具体:一般情况下,如果范围定义在 WORKBOOK 级别,则可以直接引用,不包括名称片材。
    【解决方案2】:

    好的,我已经完成了,我只需将数据验证源设置为:

    =INDIRECT(CONCATENATE("Floors",A2))
    

    然后当公式被复制到整个列时,A2 按预期更新到当前行。

    @Peter L. 感谢您的帮助!

    【讨论】:

    猜你喜欢
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多