为了规范表格数据录入,我们常用到Excel的“数据有效性”功能在单元格设置下拉菜单,引用固定区域数据作为标准录入内容。有很多时候,这个区域的数据是用公式生成的,如果直接引用一个固定范围,比如说D1:D50,可能实际返回的数据只有8个,下拉菜单会出现很多空白,不方便选择。本例向大家介绍如何去除下拉菜单中的空白。

  一、问题描述

  1、利用公式在D列返回某些表格的不重复值,作为下拉菜单的数据源。D列数据的个数不确定。

  2、为了使数据有效性能够显示所有的备选数据,所以一般我们选择一个较大的范围,比如说D1:D8区域。制作数据有效性如下:

  3、这样制作的下拉菜单中就会包括数目不定的空白,如果空白非常多的话在用下拉菜单选择数据时就非常不方便。

  二、解决方案

  1、选中要设置下拉菜单的E1单元格,选择【 公式 】-【 定义名称 】。

  2、定义一个名称为“Data”的名称,在【 引用位置 】输入下面的公式并点击【确定 】。=OFFSET($D$1,,,SUMPRODUCT(N(LEN($D:$D)>0)),)

  3、选中E1单元格,选择【 数据 】-【 数据有效性 】。

  4、选择“ 序列 ”,“ 来源” 处输入 =Data ,然后【确定】。

  5、这样,在E1的下拉菜单中就只有非空白单元格的内容了。E1的下拉菜单会自动更新成D列不为空的单元格内容。

  6、使用公式的简单说明 :=OFFSET($D$1,,,SUMPRODUCT(N(LEN($D:$D)>0)),)

  其中的 LEN($D:$D)>0 判断单元格内容长度是不是大于0,也就是如果D列单元格为非空单元格就返回TRUE,然后SUMPRODUCT统计出非空单元格个数。最后用OFFSET函数从D1开始取值至D列最后一个非空单元格。