客服人员每天都会收到大量的业务咨询信息,需要一一记录客户姓名和咨询问题。在Excel工作表中已经存储了一些客户的全名的情况下,如果在记录时想输入一些客户的名字,可以在形成的下拉菜单中显示包含部分名字的所有客户的全名以供选择,同时支持下拉菜单的动态更新(即当一个新的客户名字被添加到客户全名的列表中时,下拉菜单会相应更新)(图1)。以下是在Excel 2016中的具体实现方法。
1.实现下拉菜单的动态扩展
在Excel工作表中,一般情况下,需要选择相应的单元格来制作下拉菜单,在数据选项卡中单击数据验证,在弹出窗口的设置选项卡中选择序列,在源处选择相应单元格的内容或输入要显示的列表项(英文中列表项用逗号分隔),这样制作的下拉菜单,当在选中的单元格下时,如果要根据新的内容动态扩展下拉菜单,可以使用函数来配合数据验证。
首先在公式页签中点击“定义名称”,在弹出窗口的名称中输入“客户全称”,输入“=抵销(客户名称!$A$2,counta(客户名称!$ A:$ A)-1)";然后选择相应的单元格(如D2:D27),点击数据校验,在校验条件允许中选择串行,光标指向来源,按F3,在弹出窗口中选择客户全称。这样,当在列A中添加或删除客户名称时,下拉列表也会动态更新(图2)。
提示:
还有一种方法是动态展开下拉菜单:首先选择客户名称数据,在“插入”选项卡中点击“表格”,确认;重新选择客户名称数据,点击“公式定义名称”页签中的“根据选择创建”,在弹出的窗口中只勾选第一行进行确认;同理,选择相应的单元格(如D2:D27),点击数据校验,在校验条件下选择串行允许,光标指向源,按F3,在弹出的窗口中选择客户名称。这样,当在列A中添加或删除客户名称时,下拉列表也会动态更新(图3)。
2.智能获取当前输入。
一般情况下,记录客户姓名时,不会输入客户的全名,这就需要工作表及时捕捉输入的内容。接下来,我们将解释工作表如何智能地获取当前输入。在工作表的F1单元格中输入“=CELL('contents ')”,输入后会出现警告提示。直接确认,F1单元格的值会变成0。此时,在任一单元格中输入内容,F1单元格将捕获输入的内容(图4)。
3.动态过滤提取的数据
新建一个名为客户列表的工作表,在公式页签中点击名称管理器,在弹出窗口中点击新建,在新弹出窗口的名称中输入客户列表,输入"=offset(客户列表!$A$2,countif(客户全名,' * '单元格(' contents ')' * '));选择“客户列表”工作表的单元格A2,并输入“=INDEX(客户名称!A: a,small (if(是数字(查找(单元格('内容'))),ROW(客户全名),4 8),row (a1))“”,同时按Crtl Shift Enter,弹出警告提示时,直接确认即可;将数组公式填充到A80中(可以根据客户名称中的记录来估计过滤结果),这样就可以将客户名称工作表中根据输入关键字过滤出的客户全名添加到客户列表中的A2单元格及以下单元格中(图5)。
功能解释:
(1) "=offset(客户列表!$A$2,countif(客户全名,' * '单元格(' contents')'* '),countif根据输入内容统计客户全名中的记录数,offset是从客户列表中筛选出符合条件的记录;
(2) "=index(客户名称!答:a、small(if(is number(FIND(cell(' contents ')),ROW(客户全名),4 8),row (a1))'),FIND是根据输入的内容在客户全名中进行搜索,如果找到则返回相应的位置,如果没有找到则返回错误。如果找到行,则返回到记录的相应行;小可以把找到的记录一条一条提取出来。
最后,在“通话记录”工作表中,选择“客户全名”一栏,在“数据”选项卡中点击“数据验证”,在弹出窗口的“设置”选项卡中选择“序列”,将光标指向来源,按F3,在弹出窗口中选择粘贴名称的“客户列表”;在“错误警告”窗口中,取消选中“输入无效数据时显示错误警告”前面的框(图6)。这样,整个智能表就完成了。