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

