5

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

我在 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()))

我得到一个错误。

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

4

2 回答 2

2

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

='Sheet 1'!A1

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

于 2013-03-04T17:22:20.610 回答
1

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

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

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

@Peter L. 感谢您的帮助!

于 2013-03-04T18:13:28.280 回答