将excel公式或VBA代码映射到列表的最佳方法是什么
我有一个excel工作表,它有两列 名称和城镇 同一城镇有许多行(但每行都有一个不同的名称) 下面是一个例子: ||名称| |镇| |将excel公式或VBA代码映射到列表的最佳方法是什么,excel,vba,Excel,Vba,我有一个excel工作表,它有两列 名称和城镇 同一城镇有许多行(但每行都有一个不同的名称) 下面是一个例子: ||名称| |镇| | |乔|纽约| |比尔|纽约| |汤姆| NJ | 我现在想要一个由城镇填充的下拉列表,当我点击下拉列表并选择一个城镇时,它会在工作表的一个单元格中放置一个名称的串联列表 所以在这个例子中,下拉列表将显示NJ和NYC,如果我选择NYC,它将显示: 牢房里的“乔,比尔” 关于这是否可行的任何建议?第一部分,下拉列表-使用数据验证。参见链接 第2部分,基于选择更新单
|乔|纽约|
|比尔|纽约|
|汤姆| NJ | 我现在想要一个由城镇填充的下拉列表,当我点击下拉列表并选择一个城镇时,它会在工作表的一个单元格中放置一个名称的串联列表 所以在这个例子中,下拉列表将显示NJ和NYC,如果我选择NYC,它将显示: 牢房里的“乔,比尔”
关于这是否可行的任何建议?第一部分,下拉列表-使用数据验证。参见链接 第2部分,基于选择更新单元格:
使用
工作表\u Change
事件,监视包含城镇列表值的单元格的更改。如果要避免最后一部分使用VBA,可以在列表的一侧创建一个帮助器列
如果表如A1:B3所示,请在C列中创建一个帮助器列,如下所示
对于第一行,助手公式将为=IF(B1=SelectedCity,A1&“,”,”)
对于第二行,助手公式将为=C1&IF(B2=SelectedCity,A2&“,”和“”)
将第二行复制到所有剩余行
该公式归纳性地建立了一个以逗号分隔的姓名列表,取决于所选城市
最后,用公式=IF(RIGHT(C3,2)=“,”,LEFT(C3,LEN(C3)-2),C3)修剪逗号分隔字符串末尾的多余逗号
这是你需要的绳子