拥有Excel公式或VBA代码映射到列表的最佳方法是什么?

我有一个有两列的Excel工作表

名称城镇

同一城镇有许多行(但每行都有一个独特的名字)

所以这里是一个例子:

|| 名称|| 镇||
| 乔| NYC |
| 比尔| NYC |
| 汤姆| NJ |

我现在想要有由Town填充的下拉列表,当我点击下拉列表并select一个城镇时,它会在工作表上的一个单元格中放置名称的连接列表。

所以在这个例子中,下拉菜单会显示NJ和NYC,如果我select了NYC,它会显示:

“乔,比尔”在一个牢房里

任何build议,如果这是可能的?

第一部分,下拉列表 – 使用数据validation。 请参阅链接

在Excel中创build包含独特的不同值的从属下拉列表

第2部分,根据select更新单元格:

使用Worksheet_Change事件,监视包含Towns列表值的单元格的更改。

如果你想避免VBA的最后一部分,你可以创build一个助手列到列表的一侧。

如果您的表如A1:B3所示,则在C列中创build一个帮助列,如下所示

对于第一行,辅助函数公式将为= IF(B1 = SelectedCity,A1&“,”,“”)对于第二行,辅助函数公式将为= C1&IF(B2 = SelectedCity,A2&“,”, “”)复制这第二行所有剩余的行。

这个公式归纳地build立一个以逗号分隔的名字列表,取决于选定的城市。

最后,在公式分隔的string的末尾用公式= IF(RIGHT(C3,2)=“,”,LEFT(C3,LEN(C3)-2),C3)修剪掉额外的逗号。

这是你需要的string。