为了规范表格数据录入,我们常用到Excel的“数据有效性”功能在单元格设置下拉菜单,引用固定区域数据作为标准录入内容。有很多时候,这个区域的数据是用公式生成的,如果直接引用一个固定范围,比如说D1:D50,可能实际返回的数据只有8个,下拉菜单会出现很多空白,不方便选择。本例向大家介绍如何去除下拉菜单中的空白。 普通方法生成的下拉菜单:如下图,利用公式在D列返回某些表格的不重复值,作为下拉菜单的数据源。D列数据的个数不确定。 为了使数据有效性能够显示所有的备选数据,所以一般我们选择一个较大的范围,比如说D1:D8区域。制作数据有效性如下: 这样制作的下拉菜单中就会包括数目不定的空白,如果空白非常多的话在用下拉菜单选择数据时就非常不方便。 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列最后一个非空单元格。 超人一筹 |
|