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

时间:2016-12-30 13:25:19

标签: 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 :(得分:0)

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

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