ChatGPT生成Excel公式后,必须检查的5个地方
前言
使用ChatGPT生成Excel公式很方便。
只需要描述自己的需求,例如:
根据商品编号查找对应价格。
计算每个月的销售额。
判断订单是否超过规定日期。
ChatGPT通常很快就能给出一条完整公式。
但公式能够正常输入,不代表计算逻辑一定正确。比较常见的情况是:
- 引用范围多了一行或少了一行;
- 公式复制后引用位置发生变化;
- 使用了当前Excel版本不支持的函数;
- 空值和错误值被隐藏;
- 正常数据可以计算,边界数据却出错。
因此,我现在拿到ChatGPT生成的公式后,通常会检查下面5个地方。
一、检查单元格范围是否准确
首先要确认公式到底引用了哪些数据。
例如,ChatGPT可能生成:
=SUM(C:C)这条公式会计算C列中的所有数值。
如果C列除了销售数据,还包含标题、历史数据或其他辅助内容,全列引用就可能把无关内容一起计算。
更明确的写法可能是:
=SUM(C2:C500)但C2:C500也不一定正确,因为实际数据可能增加到第800行。
因此,不能只看公式能不能运行,还要检查:
- 起始行是否正确;
- 是否漏掉最后一行;
- 是否包含标题或汇总行;
- 数据增加后范围能否自动扩展;
- 不同工作表的引用范围是否一致。
数据经常增加时,可以考虑把原始区域转换成Excel表格,再使用结构化引用。
例如:
=SUM(销售表[销售额])这种写法通常比固定行号更容易维护。
二、检查相对引用和绝对引用
Excel公式复制到其他单元格时,引用位置可能自动发生变化。
常见引用方式包括:
A2 相对引用 $A$2 绝对引用 A$2 固定行 $A2 固定列相对引用会随着公式复制自动调整,而绝对引用不会变化;混合引用只固定行或列。Microsoft官方也将它们区分为相对、绝对和混合引用,并支持通过F4键切换。
例如,需要用每一行的销售额乘以固定税率:
=B2*$F$1其中:
B2需要随着公式向下复制变成B3、B4;- 税率始终位于
F1,所以应该写成$F$1。
如果ChatGPT生成:
=B2*F1复制到下一行后,公式会变成:
=B3*F2结果就会发生错误。
所以每次拿到公式后,都要问自己:
这条公式复制到下一行或下一列时,哪些位置应该变化,哪些位置必须保持不动?
三、检查函数是否兼容当前Excel版本
ChatGPT经常生成比较新的Excel函数,例如:
=XLOOKUP(A2,产品表!A:A,产品表!C:C,"未找到")这条公式本身没有问题,但并不是所有Excel版本都支持。
Microsoft官方说明,XLOOKUP无法在Excel 2016和Excel 2019中直接使用;函数是否可用与Excel版本有关。
类似需要注意的函数还包括:
FILTERUNIQUESORTLETTEXTSPLIT- 动态数组函数
如果文件需要发送给其他人使用,就不能只检查自己电脑上是否正常,还要确认接收者的Excel版本。
可以让ChatGPT同时提供兼容写法:
请检查这条公式适用于哪些Excel版本。 如果Excel 2016或2019不支持,请提供使用传统函数实现的兼容方案,并说明两种写法的差异。例如,XLOOKUP在旧版本中可能需要用VLOOKUP,或者INDEX与MATCH组合替代。
四、检查空值和错误值的处理方式
一条公式在正常数据中能运行,不代表遇到异常数据时也能得到合理结果。
常见错误包括:
#N/A#VALUE!#DIV/0!#REF!- 空白结果
- 数字以文本形式保存
例如:
=A2/B2当B2为0或空值时,可能出现除零错误。
ChatGPT可能会改成:
=IFERROR(A2/B2,0)IFERROR会在公式产生错误时返回指定结果,否则返回原公式结果。
这种写法虽然能让表格不再显示错误,但也可能把不同问题全部隐藏成0。
例如:
- 除数为0;
- 单元格引用错误;
- 数据类型错误;
- 公式本身写错。
最后都会显示为0,后续反而更难排查。
因此使用IFERROR时,还需要判断:
- 出错后应该返回0、空白还是提示文字;
- 错误是否需要被保留并人工检查;
- 空值和真实的0是否代表同一含义;
- 查找不到数据时是否应该显示“未匹配”。
对于查找公式,#N/A通常表示没有找到对应值,也可能是查找值格式不一致。
不要为了表格看起来整洁,就把所有错误都直接隐藏。
五、先用少量样本验证,不要直接填充整列
公式生成以后,不建议立即填充到几千行数据中。
我通常会先准备几组测试数据:
- 正常数据;
- 空白单元格;
- 数值为0;
- 文本型数字;
- 重复值;
- 查找不到的数据;
- 最大值和最小值;
- 日期边界。
例如,测试一个订单状态公式:
=IF(C2<TODAY(),"已逾期","正常")至少要检查:
- C2早于今天;
- C2等于今天;
- C2晚于今天;
- C2为空;
- C2是文本而不是真正日期。
只有正常数据返回正确结果还不够,边界情况也要符合业务规则。
可以让ChatGPT帮助生成测试清单:
请为下面这条Excel公式设计8组测试数据。 要求包含: 1. 正常情况; 2. 空值; 3. 零值; 4. 边界值; 5. 重复值; 6. 格式错误; 7. 查找不到的数据; 8. 可能产生错误值的情况。 请给出每组输入数据、预期结果和需要观察的问题。 公式: ________我的公式检查顺序
拿到ChatGPT生成的Excel公式后,我通常按照下面的顺序检查:
确认业务需求 ↓ 检查引用范围 ↓ 检查绝对与相对引用 ↓ 确认函数版本兼容性 ↓ 检查空值和错误值 ↓ 使用少量样本验证 ↓ 再填充到完整数据还可以直接使用下面这条通用提示词:
请审核下面这条Excel公式,不要只检查语法。 请重点分析: 1. 单元格范围是否准确; 2. 是否包含标题、汇总行或无关数据; 3. 相对引用和绝对引用是否合理; 4. 向下或向右复制后引用是否会出错; 5. 当前Excel版本是否支持所用函数; 6. 是否正确处理空值、零值和错误值; 7. 是否可能产生循环引用; 8. 请提供5—8组测试数据及预期结果; 9. 如果存在问题,请给出修改后的公式并解释原因。 公式: ________总结
ChatGPT生成Excel公式后,至少需要检查5个地方:
- 单元格范围是否准确;
- 相对引用和绝对引用是否合理;
- 函数是否兼容当前Excel版本;
- 空值和错误值是否被正确处理;
- 是否经过正常数据与边界数据验证。
AI可以减少查找函数和编写公式的时间,但最终结果是否符合业务规则,仍然需要人工判断。
一条公式最危险的情况,不是直接报错,而是能够正常运行,却悄悄计算出了错误结果。
