各位在工作中制作Excel表格的时候应该会经常会在表中制作下拉菜单,就像下图所示:
把表1中的内容作为表2的下拉菜单内容。

但是,各位应该都会遇到一个问题,当表1中增加一行新的内容后,表2的下拉菜单中的内容并不会自动添加新加入表1的内容。
如果想要表2的下拉菜单中添加表1新添加的行,一般会需要打开”数据验证”,重新框选表1的范围。这样操作当时也没有问题,但是当一个Excel文件里有大量下拉菜单的时候,这样操作会很容易出现问题。
下面我就介绍一下可以自动随着在表1中添加新的选项后,表2自动更新下拉菜单的方法。
1.制作表1。
这里需要介绍一个基本概念,区域和表。如下图,左右两个图中看起来都是表,实际上在Excel中左图被称为区域,右图称为表格。区域和表格看起来很像,区别方式是表格的右下角有一个向左的L型角标。
篇幅原因,这里就不详细介绍区域和表的区别,以后有机会我会做视频详细讲解。

本次,大家只要记得我们第一步是要制作表1,表1是一个表格而不是一个区域。制作方法如下:
首先,在Promotion_Type列,点选任意有文字的单元格。
然后,点击Excel的 [插入] -> [表格],会弹出下图3号弹窗。
最后,勾选 [表包含标题],点击确认即可。

这样就做出了表1,可以看下图,我们可以给这个表起个名字叫表1。(点选表,选择 [表设计],在表名称中填入’表1’)

2, 制作溢出表。溢出表是一种特殊的表,这种表试图在一个单元格里显示一张表,但是这明显是不可能的,所以,要显示的表就会溢出到其他单元格。但是这个溢出的表,实际上只有一个公式,只占一个单元格的真实空间。
文字不容易描述,看下图(下图中表11,其实应该是表**1):

这里顺便介绍一下UNIQUE公式,这个公式是非常非常有用的,希望大家务必记住。
可以看到UNIQUE的作用是从一个范围或者数组返回唯一值,简单解释就是,UNIQUE(选择一列),会返回这一列数据的所有值(去重复)。所以大家想要知道一个表里Customer列中有多少不重复的Customer,最简单的方式就是UNIQUE( [Customer] ),这样就会显示所有不重复的Customer。
如上图,注意,是上图,我在Taskforce行,填入了=UNIQUE(表1[Promotion_Type]),这里可以看到UNIQUE函数里的内容,首先是表1,这是你要用UNIQUE的表名。上一步我们已经设置了表1的表名,这里调用它;其次是[Promotion_Type],这是列名。也就是我我要用UNIQUE计算表1的Promotion_Type列。然后,Excel会自动显示出表1的Promotion_Type列中的所有值(去重复)。

3.制作下拉菜单。
这一步很简单,如下图,需要注意的是,数据验证的来源,要点选溢出表的第一行,也就是Taskforce单元格。
其次,最重要的!最重要的!!最重要的!!!,在 $Q$2后面输入一个#号。这个井号代表着这里输入的内容是溢出表而不仅仅是一个单元格,也就是这个单元格内的内容不只是一个单元格而是一个表。

最后,点确定,完毕。此时,在表1中添加行,表2中的下拉菜单会自动更新。