1。 实现下拉菜单动态扩展在Excel工作表中,一般情况下制作下拉菜单需要选定相应单元格后,点击数据选项卡中的数据验证,在弹出窗口的设置选项卡中,验证条件允许处选择序列,来源处选择相应单元格内容或输入所要显示的列表条目(列表条目用英文状态下的逗号隔开),这样制作的下拉菜单,当在所选单元格下增加新内容时,下拉列表并不会增加,这在实际使用中很不理想。
要想使下拉菜单根据新增内容进行动态扩展,可以使用函数配合数据验证。首先,点击公式选项卡中的定义名称,在弹出窗口的名称处输入客户全称,在引用位置入输入=offset(客户名称!$A$2,,,counta(客户名称!$A:$A)-1);然后,再选定相应单元格(如D2:D27),点击数据验证,在验证条件允许处选择序列,将光标点到来源处,按F3键,在弹出窗口选择客户全称。
这样,当在A列增加或删除客户名称时,下拉列表也跟着动态更新(图2)。小提示:还有一种实现下拉菜单动态扩展的方法:首先,选择客户名称数据,点击插入选项卡中的表格,确定;再次选择客户名称数据,点击公式选项卡定义的名称中的根据所选内容创建,在弹出窗口只勾选首行,确定;同样,选定相应单元格(如D2:D27),点击数据验证,在验证条件允许处选择序列,将光标点到来源处,按F3键,在弹出窗口选择客户名称。
这样,当在A列增加或删除客户名称时,下拉列表也跟着动态更新。
2。 智能获取当前输入内容一般情况下,在记录客户名称时,不输入客户全称,这就需要工作表能够及时捕捉到输入的内容是什么。接下来说明工作表是如何智能获取当前输入内容的。在工作表的F1单元格输入=CELL(contents),回车后会出现警告提示,直接确定,F1单元格的值就会变成0,这时,在任意单元输入内容,F1单元格就会捕获取输入的内容。
3。 动态筛选提取数据新建一个名称为客户列表的工作表,点击公式选项卡中的名称管理器,在弹出的窗口点击新建,在新弹出窗口的名称处输入客户列表,引用位置入输入=offset(客户列表!$A$2,,,countif(客户全称,*cell(contents)*));选定客户列表这个工作表的A2单元格,在公式编辑栏输入=INDEX(客户名称!A:A,SMALL(IF(ISNUMBER(FIND(CELL(contents),客户全称)),ROW(客户全称),4^8),ROW(A1))),同时按下Crtl+Shift+Enter,当弹出警告提示时,直接确定即可;将数组公式填充到A80(可根据客户名称中的记录估算筛选结果进行填充),这样就能将根据输入关键字在客户名称工作表中筛选出的客户全称添加到客户列表的A2单元格及以下单元格中。
函数解释:⑴ =offset(客户列表!$A$2,,,countif(客户全称,*cell(contents)*)),countif根据输入的内容在客户全称中统计符合包包含输入内容的记录个数,offset是从客户列表中筛选出符合条件的记录;⑵ =INDEX(客户名称!A:A,SMALL(IF(ISNUMBER(FIND(CELL(contents),客户全称)),ROW(客户全称),4^8),ROW(A1))),FIND是根据输入内容在客户全称中进行查找,如果找到就返回相应的位置,找不到就返回一个错误,为了兼容这个错误需要用ISNUMBER,即如果找到就返回TRUE,找不到就返回FALSE;ROW就是如果找到就返回到该记录相应的行;SMALL能够逐一提取找到的记录。
最后,在来电记录工作表,选中客户全称这列,点击数据选项卡中的数据验证,在弹出窗口的设置选项卡中,验证条件允许处选择序列,将光标点到来源处,按下F3键,在弹出的粘贴名称窗口选择客户列表;在出错警告窗口,去掉输入无效数据时显示出错警告前面的勾选。
如此,就完成了整个智能化表格的制作。
标签: 工作日志