普通方法生成的下拉菜单:
1
如下图,利用公式在D列返回某些表格的不重复值,作为下拉菜单的数据源。D列数据的个数不确定。
2
为了使数据有效性能够显示所有的备选数据,所以一般我们选择一个较大的范围,比如说D1:D8区域。制作数据有效性如下:
3
这样制作的下拉菜单中就会包括数目不定的空白,如果空白非常多的话在用下拉菜单选择数据时就非常不方便。
END
解决方案:
选中要设置下拉菜单的E1单元格,选择【公式】-【定义名称】。
定义一个名称为“Data”的名称,在【引用位置】输入下面的公式并点击【确定】。
=OFFSET($D$1,,,SUMPRODUCT(N(LEN($D:$D)>0)),)
选中E1单元格,选择【数据】-【数据有效性】。
如下图,选择“序列”,“来源”处输入=Data,然后【确定】。
这样,在E1的下拉菜单中就只有非空白单元格的内容了。E1的下拉菜单会自动更新成D列不为空的单元格内容。
使用公式的简单说明:
=OFFSET($D$1,,,SUMPRODUCT(N(LEN($D:$D)>0)),)
其中的LEN($D:$D)>0判断单元格内容长度是不是大于0,也就是如果D列单元格为非空单元格就返回TRUE,然后SUMPRODUCT统计出非空单元格个数。最后用OFFSET函数从D1开始取值至D列最后一个非空单元格。