数据验证与下拉菜单

手工填表最怕什么?写错字、漏字、一个部门写出三种叫法。数据验证就是给单元格装一道门禁:只许按规定的内容进来。最直观的应用就是下拉菜单——点一下挑一个,填得又快又不会错。这篇讲下拉菜单怎么做、数字和日期怎么约束、装完门禁之后怎么查漏。

一级下拉菜单:三步做完

选中要填的单元格或整列,点数据选项卡、数据验证,弹窗第一个标签默认就是验证条件。允许那一栏选序列,来源填选项,确定,下拉菜单就出现了。来源三种填法:

来源写法 什么时候用 例子
直接输入 选项少且固定 输入:正常,迟到,缺勤
引用本表区域 选项已经列在表里 =$F$1:$F$5
引用别表区域 选项集中在参数表 =参数表!$A$1:$A$10

直接输入时注意逗号是英文半角逗号,用中文逗号会整个被当成一个选项。选项之间不要加空格。

引用区域的优点是改选项方便:在参数表里加一行,下拉菜单自动多一项(区域引用要写完整列或整片区域才能自动扩展)。正式模板都推荐引用法,维护成本低。

验证的不只是下拉

数据验证能管的远不止序列,允许那一栏拉开看:

  • 整数、小数:限定数值范围,比如成绩只能 0 到 100。
  • 日期、时间:限定某段日期内,比如请假单只受理本月。
  • 文本长度:限定字数,比如手机号必须 11 位。
  • 自定义:写公式,什么复杂规则都能写,比如身份证号必须 18 位且以数字结尾。

每种类型设定完,下面还有作用于、忽略空值等辅助选项。最贴心的是出错警告标签:你可以自己写提示标题和内容,别人填错时弹出的不是冷冰冰的系统话,而是比如成绩只能填 0 到 100 之间的整数,请核对后重填。

输入提示:贴在单元格上的便签

数据验证还有个输入信息标签:填好标题和内容后,点中这个单元格会浮动出一张提示条。模板交给多人填写时,这一招省掉所有口头叮嘱:这一列填什么格式、示例长什么样、找不到选项怎么办,全写在提示条里。 提示信息要简短:一列不超过两句话。另外注意提示条只在点击单元格时出现,别人不点就看不到,关键格式要求还是得出错警告兜底。

圈出不符合规矩的数据

门禁装得再好,总有历史数据是不合规的(八百年前的旧表没验证)。数据验证下拉箭头旁边有个圈释无效数据按钮,点一下,所有不符合当前规则的单元格被红圈圈出来,逐个改、改完再点一次清除圈。

经典用法:给成绩列加 0 到 100 的整数规则,圈一圈,那些录成 120、录成负数、录成文本的格子全现形。机器替你排雷,再也不用一行行用肉眼过。

验证规则的复制与清除

  • 复制规则:用格式刷可以把一个单元格的验证规则刷到别处。
  • 清除规则:数据验证对话框左下角全部清除按钮,选中区域的所有验证消失。
  • 批量装门禁:选中整列再设置,比一个个单元格设快百倍。

注意数据验证装上之后,复制粘贴过来的内容有时会绕过验证(粘贴只粘贴值时规则失效)。重要模板要靠事后圈释复查,别以为装了门禁就万事大吉。

二级联动下拉菜单

进阶场景:选了省份之后,城市下拉只出现这个省的。做法分两步:第一步把每个省的城市列分别做成区域,用名称框给每片区域命名为省名(选中区域,在名称框输入江苏回车);第二步城市列的数据验证序列来源写 =INDIRECT($A2),A2 是省份单元格。选江苏时,INDIRECT 自动去找叫江苏的那片区域。

INDIRECT 的意思是把文字翻译成引用:A2 里写江苏,它就把江苏这两个字当成区域名去取值。这个函数在跨表动态引用时也很常用,属于用熟了就离不手的工具。

真实案例:报销单模板

给全公司做的报销单,这些格子都该装门禁:费用类别列下拉(交通、餐饮、住宿、办公用品);金额列限定大于 0 的小数;日期列限定本季度;发票号限定 8 位文本;报销人填输入提示写清楚格式。一套做完,报销单错误率从百分之十几降到百分之一以内,财务和你都轻松。

做好模板的第一条原则:自己先当一遍填表人。

给模板填表人的三点建议

做好模板发出去之前,自己先扮演新人填一遍:选项全不全、提示清不清楚、出错警告的话 说人话(读得懂最重要)。收上来之后用圈释无效数据复查一遍,再把常见错误写进第二版的输入提示里。模板是活的,迭代两三轮之后才真好用。

下拉菜单的替代场景

选项超过二三十个时下拉反而不方便,这时可以改用引用本表区域加搜索框筛选的玩法,或者干脆让填表人自由填、事后用条件格式圈异常。工具是死的,选适合的:选项少用下拉、选项多给提示、规则清晰给验证。

和筛选功能联动

下拉菜单列出的选项,往往就是后面筛选统计的口径。源头统一了,后面做透视表时才知道同一种费用不会被算成两份。所以做数据验证有个隐藏好处:它是整条数据处理链路的地基。

小结

数据验证的本质是把人的粗心挡在门外:下拉防写错、范围防填错、提示教怎么填、圈释帮查旧错。模板做得越好,收上来的表越干净,你月末对账掉的头发就越少。

数据验证的四个常见报错

  • 序列来源引用空白单元格:下拉里出现空选项。
  • 直接输入用了中文逗号:所有选项黏成一整条。
  • INDIRECT 联动时地区名和区域名不一致:二级下拉直接报错取不到值。
  • 验证装在合并单元格上:规则只对合并区第一个格子生效,后面填的内容漏检。

出问题的时候按这四条对号入座,比自己瞎猜快得多。

安装门禁的正确顺序

给一张旧表装验证,推荐这个流程:先备份原文件;给已有数据做清洗(统一称呼、去空格);再设置规则;最后圈释无效数据逐个处理旧数据。顺序一旦颠倒,先圈后洗只会把红圈圈得满天飞,自己也慌。

自定义规则进阶

自定义验证的公式可以写得很巧。限身份证 18 位:=AND(LEN(A2)=18,ISNUMBER(--RIGHT(A2,1))),先看长度,再看最后一位是不是数字。限只能填工作日:=WEEKDAY(A2,2)<6,判定星期一到星期五。这些都是把判断力固化成规则,一旦装好,永远替你把关。

延伸阅读

打印时避开条件格式的坑

屏幕上花花绿绿的表,打印出来常常只剩一片灰,原因有两个:打印机是黑白的,而你的规则用了浅红浅黄浅绿;或者规则本身依赖屏幕显示(数据条、色阶),纸张上根本还原不出来。打印前做三件事:打印预览看一遍效果(快捷键 Ctrl+P);颜色太浅的规则临时关掉(管理规则里去掉勾);如果有交付需求,给关键行改用加粗或边框来突出,黑白也清楚。条件格式服务于屏幕阅读,纸张交付时克制颜色才是专业做法。