Excel 数据验证、条件格式与重复检查
数据验证减少输入失误,条件格式让问题更容易被看见。它们不能代替最终校验:复制粘贴、导入或脚本可能绕过或覆盖某些限制,因此应同时设计检查列。
点击步骤切换图示,再到 Office 中跟做;每一步都可跳到下方详细说明。
字典:待处理 / 已完成 / 已取消
详细输入与检查见本步正文 ↓建立下拉选项
在新建的 字典 工作表 A1:A3 输入“已完成、待处理、已取消”,每个值占一个单元格。通过“公式 → 定义名称”把该区域命名为 StatusList。然后选中订单状态数据区域 G2:G9,打开“数据 → 数据验证”,允许“序列”,来源输入 =StatusList。
跨工作表来源使用命名区域较容易维护。更新选项时检查命名区域是否包含新增行;不要在每个单元格分别手写不同的选项。部门也可以用同样方式设置,防止同时出现“财务”“财务部”等非标准值。
限制数量与日期
对数量列 E2:E9 设置允许整数、介于 1 和 1000,并在输入信息中写“请输入正整数数量”。错误警告使用停止类型时可阻止普通直接输入不符合规则的值;范围应根据实际业务定义,退货数量允许负数时不能照搬本例。
日期列可设定起止范围,金额列可限制非负数。业务校验应比格式校验更明确:例如截止日期应不早于开始日期,这通常需要自定义公式或检查列,而不是仅把两列都设为日期。
用条件格式标记重复编号
选中 A2:A9,使用“开始 → 条件格式 → 突出显示单元格规则 → 重复值”。需要整行标记时,选中 A2:H9,建立“使用公式确定要设置格式的单元格”的规则:
=AND($A2<>"",COUNTIF($A$2:$A$9,$A2)>1)公式以选区左上角 A2 为参照,固定 A 列而允许行变化。若把 $A2 写成 $A$2,每一行都只检查第一条订单。应用范围扩大时也要确认 COUNTIF 检查的总范围同步扩大。
异常与状态提示
可给已取消订单添加淡灰背景,给金额大于等于 1000 的记录加醒目边框;同时保留状态文字和金额,不单靠红绿颜色传达信息。打开“条件格式 → 管理规则”,检查规则顺序、应用区域和“如果为真则停止”,避免多条规则互相覆盖。
公式检查列比颜色更容易汇总,例如:
=IF(COUNTIF(Sales[订单号],[@订单号])>1,"重复编号","")
=IF(COUNTIF(StatusList,[@状态])=0,"状态无效","")空值是否允许应单独定义;这两式不自动完成所有必填检查。
保护公式与输入区
默认单元格的“锁定”属性需要启用工作表保护后才生效。先选中允许填写的区域,在单元格格式的保护选项取消锁定,再“审阅 → 保护工作表”,允许需要的选择或筛选操作。保存前测试正常输入和公式区修改是否符合预期。
工作表保护主要防止误改,不应当作机密数据的安全边界。敏感数据需要文件访问权限或适当的文件加密;隐藏工作表和隐藏列也不能阻止获授权打开文件的人获取数据。
练习与验收
输入状态“完成了”和数量 0,检查直接输入时是否被提示。把 O002 改成 O001,两个重复编号应被标记;再通过复制粘贴测试限制是否仍有效,并查看检查列是否能发现问题。恢复原始八条数据,确认没有异常提示。
图示跟做:用下拉选项规范订单状态
按上方图示切换三个关键步骤;下面保留完整操作和检查结果,便于跟做与回查。请先使用练习副本。
第 1 步:准备可维护的选项来源
定位:工作表标签 → 加号。
新建字典表,在 A1:A3 放待处理、已完成、已取消,不加空白行。选中该区域,在名称框定义名称 StatusList。随后回到订单副本,选中 G2:G9;不要把表头 G1 也设为一个状态输入格。
第 2 步:建立下拉并设置错误提示
定位:数据 → 数据验证。
选择“数据 → 数据验证”,允许选序列,来源输入 =StatusList,启用单元格内下拉。错误警告使用停止,并写清允许输入的状态。点击一个状态格的下拉箭头,应该只有三个选项;手工输入“完成了”应被阻止。
第 3 步:验证规则不会被粘贴绕过
定位:数据 → 数据验证。
对已有数据做一次检查,再追加一行测试数据,确认验证是否延续到新行。复制粘贴可能带入不符合规则的值或覆盖规则,所以还应通过筛选和核对列检查整列状态。测试结束删去仅为验证新增的练习行,保留原八条订单。
没有得到预期结果时
数据验证是录入辅助,不是权限控制,也不能替代数据质量检查。保护工作表前先区分可编辑区域与公式区域,解锁输入格后再测试用户能否正常填写。
继续阅读
- 实践案例
- 故障排查
- 参考资料