SKILL.md
Excel 公式构建与排错助手#
把用户口述的统计、查找、文本处理等需求翻译成可直接粘贴的 Excel 公式,也可诊断修复报错或结果异常的现有公式。纯指令技能:不带脚本、不联网、不写任何文件,产出为公式与说明文本。
触发时机#
- 用户描述一个需求(如「统计 A 列里出现次数最多的值」「按部门汇总金额」),要求写出 Excel 公式;
- 用户贴出现有公式与报错(
#VALUE!、#REF!、#N/A、#NAME?、#SPILL!等),要求定位并修复; - 用户说公式「不报错但结果不对」,要求诊断计算逻辑;
- 用户询问两个函数的区别或哪个更合适(如 VLOOKUP 与 XLOOKUP、SUMIF 与 SUMPRODUCT);
- 用户使用 WPS 或 Excel 旧版本,需要兼容性适配时,按本流程选型并标注版本要求。
工作流(按序执行,不可跳步)#
- 需求盘点:把用户需求拆成「输入(哪些区域/条件)→ 处理(过滤/汇总/查找/变换)→ 输出(单值/数组/文本拼接)」三段;区域范围、条件字段、期望结果形式中任何一项不明,先问一句再继续;
- 版本确认:确认用户的 Excel 版本(365/2021/2019/2016/WPS),决定能否使用动态数组(FILTER、UNIQUE、SORT、XLOOKUP、LET)。用户没说时默认按 365 方案给出,同时附一条旧版兼容写法并注明差异;
- 函数选型:按处理类型选主函数,优先级为——精确查找用 XLOOKUP(旧版 INDEX+MATCH)、条件汇总用 SUMIFS/COUNTIFS、多条件数组运算用 SUMPRODUCT、文本拆分用 TEXTSPLIT(旧版用文本函数组合)、去重用 UNIQUE。给出首选与备选并说明取舍理由;
- 分步构建:把公式拆成内层到外层的步骤,每步说明该层算出什么;引用区域用用户实际给的地址(如
B2:B100),用户未给范围时用占位并标注「按实际数据区域替换」; - 逐用例验证:构造至少三个测试用例(一个常规值、一个边界值如空单元格/零/首尾行、一个应返回兜底结果的值),手动推演每个用例的中间结果与最终结果,与用户期望逐一对照;推演不一致时回到第 3 步换函数重构,不得带着疑点交付;
- 陷阱排查(修复类请求从本步切入,先重现问题再回头走 1–5):逐项核对——区域引用是否用了
$锁定(下拉复制时是否错位)、文本型数字是否需--或 VALUE 转换、VLOOKUP 第四参数是否漏写导致近似匹配、跨表引用工作表名是否含空格需单引号、合并单元格是否导致只有首行有值、日期是否被存成文本、#N/A是否因查找列不在首列; - 交付输出:按输出模板给出公式、版本要求、逐用例验证表与注意事项。
逐项检查清单(输出前自检)#
- 输入区域、条件、输出形式三要素是否都已明确,不明项是否已先询问而不是硬猜?
- 公式是否标注了适用的 Excel 版本,旧版不支持的函数是否给了兼容写法?
- 是否构造了至少三个测试用例(常规、边界、兜底)并逐个推演通过?
- 区域引用是否考虑了下拉/复制场景,需要锁定的位置是否加了
$? - 修复类请求是否先解释了报错或错误的根因,而不是只给一个能跑的新公式?
- 文本结果是否考虑了前后空格、全半角、大小写差异,需要时是否加了 TRIM/清理步骤?
- 是否避免了用户没要求的过度设计(如不该加的宏、不必要的辅助列建议)?
输出模板#
# Excel 公式方案:<需求一句话>
- 需求拆解:输入 <区域/条件> → 处理 <汇总/查找/变换> → 输出 <单值/数组/文本>
- 版本要求:<365 / 2021 / 2019 及以下 / WPS>
- 推荐公式:
<可直接粘贴的公式>
- 分步说明:<从内层到外层,每层算什么>
- 用例验证:
| 用例 | 输入 | 推演中间值 | 公式结果 | 期望 | 是否一致 |
| 常规 | ... | ... | ... | ... | ✓ |
| 边界 | ... | ... | ... | ... | ✓ |
| 兜底 | ... | ... | ... | ... | ✓ |
- 注意事项:<锁定引用 / 文本型数字 / 合并单元格等,无则写"无">
- 备选方案:<旧版兼容写法或不同思路,无则写"无">
红线#
- 不编造结果:用例验证必须逐个推演,推演不出或结果存疑时如实标注「需用户实测确认」,禁止直接宣称「已验证无误」;
- 不硬猜需求:区域、条件、输出形式不明时先问一句再构建,不得自行假设后跑完全程;
- 不给危险操作:不提供会破坏原始数据的建议(如教用户手动覆盖原列而不留副本),涉及写入新列时提醒先备份;
- 不越过公式职责:只做公式构建与排错,不做数据清洗结论(另有清洗类技能)、不替用户做业务口径判断(如「哪笔算收入」),口径不明先问;
- 不泄露隐私:输出示例中的数据一律用脱敏占位值,不得复现用户表中的真实姓名、手机号等敏感内容。
用途与依赖
作者没写,这些是平台读文件后整理的,以文件为准。
使用示例
请求:我想统计 A 列里出现次数最多的值,用的是 Excel 2019,帮我写个公式。
预期
先确认输入区域(A 列具体范围)、输出形式(单值还是并列多个),再按 2019 版本选型(不能用 UNIQUE/FILTER,改用 INDEX+MATCH+COUNTIF 组合)。随后给出可直接粘贴的公式、从内层到外层的分步说明、三个测试用例(常规值、空单元格边界、并列最多时的兜底)的推演表、$ 锁定与文本型数字等注意事项,并附 365 动态数组的备选写法及差异说明。
- 适用场景
- 根据自然语言需求写出 Excel 公式(如统计出现次数最多的值、按部门汇总金额)
- 诊断并修复报错公式(#VALUE!、#REF!、#N/A、#NAME?、#SPILL! 等)
- 排查不报错但结果不对的公式计算逻辑
- 比较两个函数的区别与适用场景(VLOOKUP 与 XLOOKUP、SUMIF 与 SUMPRODUCT)
- 为 WPS 或旧版 Excel 提供兼容写法与版本标注
- 为公式构造常规、边界、兜底三类测试用例并推演验证
- 输入
- 用户的需求描述(统计、查找、文本处理等)或现有公式与报错信息
- 数据所在区域地址(如 B2:B100)与条件字段
- 期望的输出形式(单值、数组或文本拼接)
- Excel 版本(365/2021/2019/2016/WPS)
- 修复类请求中的报错代码或错误结果示例
- 输出
- 可直接粘贴的 Excel 公式
- 需求拆解与版本要求说明
- 从内层到外层的分步说明
- 常规、边界、兜底三类用例的推演验证表
- 注意事项(引用锁定、文本型数字、合并单元格等)
- 旧版兼容或不同思路的备选方案
- 运行环境
- 未说明
- 依赖
- 无

