skills/bundled/formula-operations/SKILL.md
公式运算规范 — .Formula 写入、常用公式模板、纠错方法、WPS 特有限制
npx skillsauth add claude-office-skills/claude-office-plugin formula-operationsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
// ✅ 正确:写入公式,Excel 自动计算
ws.Range("D2").Formula = "=B2*C2";
ws.Range("D20").Formula = "=SUM(D2:D19)";
// ❌ 错误:用 JS 算好再写入值(用户无法调参)
ws.Range("D2").Value2 = b2 * c2;
// 方法1: 逐行写入(最可靠)
for (var r = 2; r <= lastRow; r++) {
ws.Range("D" + r).Formula = "=B" + r + "*C" + r;
}
// 方法2: 首行写入 + AutoFill
ws.Range("D2").Formula = "=B2*C2";
ws.Range("D2").AutoFill(ws.Range("D2:D" + lastRow));
| 场景 | 公式 |
|------|------|
| 求和 | =SUM(B2:B100) |
| 条件求和 | =SUMIF(A2:A100,"条件",B2:B100) |
| 多条件求和 | =SUMIFS(C2:C100,A2:A100,"条件1",B2:B100,">0") |
| 计数 | =COUNTA(A2:A100) |
| 条件计数 | =COUNTIF(A2:A100,"条件") |
| 平均值 | =AVERAGE(B2:B100) |
| 查找匹配 | =VLOOKUP(查找值,表区域,列号,0) |
| 灵活查找 | =INDEX(返回区域,MATCH(查找值,查找区域,0)) |
| 条件判断 | =IF(条件,"是","否") |
| 嵌套判断 | =IF(A2>90,"优",IF(A2>60,"及格","不及格")) |
| 百分比 | =B2/SUM(B$2:B$100) |
| 环比增长 | =(B3-B2)/B2 |
| 排名 | =RANK(B2,B$2:B$100) |
| 文本拼接 | =A2&"-"&B2 |
// 读取公式内容(不是值)
var formula = ws.Range("D2").Formula;
// 常见错误及修复思路
// #VALUE! → 数据类型不匹配,检查是否文本混在数字中
// #REF! → 引用了被删除的单元格
// #NAME? → 函数名拼写错误或不存在
// #DIV/0! → 除数为零,用 =IF(B2=0,0,A2/B2)
// #N/A → VLOOKUP 找不到值,用 =IFERROR(VLOOKUP(...),"未找到")
.FormulaR1C1 可能不稳定,优先用 .Formula(A1 格式){=...} 在 WPS 加载项中支持有限,优先用辅助列拆解='表名'!A1business
自动生成月度报告工作流
tools
专属助理人格引擎 — 控制助理的身份、口吻和行为风格
tools
首次见面引导 — 在用户完成 Onboarding 后的第一次对话中使用
tools
长记忆管理器 — 隐式学习用户偏好,生成对话摘要