首页 文章

下拉列表的动态命名范围:删除没有VBA的重复项

提问于
浏览
1

我正在创建一个Excel仪表板,我希望尽可能“不干涉” .

用户粘贴导出的.csv报告,如下所示,最多可包含数万行:

Company     Property    Segment Type    Date        Forecast
Company 1   Property 1  Transient       01/01/2016  395.6599731
Company 1   Property 1  Corporate       01/01/2016  5066.720295
Company 1   Property 2  Transient       01/01/2016  4671.060322
Company 1   Property 2  Corporate       01/01/2016  0
Company 1   Property 1  Transient       02/01/2016  3513.280067
Company 1   Property 1  Corporate       02/01/2016  3513.280067
Company 1   Property 2  Transient       02/01/2016  0
Company 1   Property 2  Corporate       02/01/2016  3180.830109
Company 2   Property 1  Transient       01/01/2016  3180.830109
Company 2   Property 1  Corporate       01/01/2016  749.5098877
Company 2   Property 2  Transient       01/01/2016  3104.579819
Company 2   Property 2  Corporate       01/01/2016  2355.069931
Company 2   Property 1  Transient       02/01/2016  602.5899658
Company 2   Property 1  Corporate       02/01/2016  3327.980011
Company 2   Property 2  Transient       02/01/2016  2725.390045
Company 2   Property 2  Corporate       02/01/2016  0

将有一个单独的选项卡,其中包含公司下拉列表,属性下拉列表和平均预测显示 .

我有多个动态命名范围如下(样本适用于公司):

= OFFSET(数据!$ A $ 2,0,0,COUNTA(数据!$ A:$ A)-1,1)

我想要有不包含重复项的下拉列表,所以只有公司1,公司2 .

当我使用上面的动态命名范围时,下拉列表包含8个公司1和8个公司2 .

没有使用VBA的任何方法吗?数组函数可以嵌套在动态命名范围内吗?

1 回答

  • 0

    您可以创建数据透视表以为每个下拉列表创建唯一值列表 . 使用数据表作为源,并使用相应的下拉字段作为数据透视表行字段 . 每个数据透视表都将是该字段的唯一值列表 .

    然后在数据透视表范围而不是数据范围上使用偏移公式来为数据验证创建命名范围 . 唯一的缺点是在粘贴新数据时需要刷新数据透视表 .

相关问题