之前讲解了如何用不连续且有重复项的列表制作去除去空的下拉菜单。也有同学说,为什么不先把源数据理干净再做呢?
理论没错,当然是应该先整理一个规范的源数据,但实际工作中不是所有的源数据都可以动或者动起来方便。
所以我们教的方法,只能是在收到的数据无法改进的情况下,用尽量简单的方法重新整理数据源。
案例:
用下图 1 中 C 列的数据表制作下拉菜单,自动删除所有重复项和空单元格。
效果如下图 2 所示。
解决方案:
1. 在 D1 单元格中输入以下公式 --> 回车:
=UNIQUE(FILTER(C:C,C:C<>""))
公式释义:
FILTER 是个 365 函数,作用是基于定义的条件筛选一系列数据;
语法为 FILTER(要筛选的数组或区域,高度或宽度与数组相同的布尔值数组,[所含数组中的所有值都为空(筛选器不返回任何内容)时返回的值]);
FILTER(C:C,C:C<>""):表示从 C 列中筛选出所有非空值;
UNIQUE(...):从上述结果中提取出唯一值
2. 选中 A2 单元格 --> 选择菜单栏的“数据”-->“数据验证”-->“数据验证”
3. 在弹出的对话框中选择“设置”选项卡 --> 按以下方式设置 --> 点击“确定”:
允许:选择“序列”
来源:输入 =$D$1#
* 对于动态区域的引用,与引用普通区域不同,只需要引用区域的第一个单元格,然后在后面加上“#”号。以后不管动态区域的数据如何变动,都能自动随之更新。
符合预期的下拉菜单就已经做好了。
如果在 C 列的任意行输入新内容,D 列的列表会自动更新。
同步的,下拉菜单也自动更新了。