2016-12-30 61 views
1

我正在创建一个Excel仪表板,我希望尽可能“不干涉”。下拉的动态命名范围:删除没有VBA的重复

粘贴的用户在导出的.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个公司2S。

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

+0

一个快速的方法,如果你可以添加列,就是在某处添加一个帮助列(或者只是添加一个空白列)。然后,复制列A中的所有公司(只需激活单元格'A2',然后按CTRL + SHIFT + [向下箭头]),然后使用内置的“删除重复”功能,然后将其用于下拉菜单。这会起作用吗? – BruceWayne

+0

如果您使用助手列(附加列),会更容易。 – harun24hr

+0

嗨布鲁斯:基本上,我希望他们能够直接粘贴,然后让所有内容自动填充。所以想尽量避免删除重复等。会有一种方法可以在数据页面上自动填充帮助器列吗? –

回答

0

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

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

+0

嗨bws1999:是的,希望避免用户必须做任何事情,除了粘贴数据(包括不必刷新数据透视表)。 –