下拉dynamic命名范围:在不使用VBA的情况下删除重复项

我正在创build一个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 

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

我有多个dynamic命名范围如下(示例是公司):

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

我想要有不包含重复的下拉菜单,所以只需要公司1,公司2。

当我使用上面的dynamic命名范围时,下拉列表中有8个公司1和8个公司2。

任何方式来做到这一点,而不使用VBA? 数组函数是否可以嵌套在dynamic命名范围内?

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

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