用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/claude-office-skills/claude-office-plugin --skill formula-operations命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | formula-operations |
| description | 公式运算规范 — .Formula 写入、常用公式模板、纠错方法、WPS 特有限制 |
| version | 1.0.0 |
| tags | ["formula","function","calculation","correction"] |
| modes | ["agent","plan","ask"] |
| context | {"keywords":["公式","函数","SUM","VLOOKUP","IF","COUNTIF","SUMIF","INDEX","MATCH","计算","求和","汇总","纠错","错误","VALUE","REF","NAME","写公式","平均","最大","最小","AVERAGE","MAX","MIN"],"selectionHint":{"hasFormulas":true}} |
// ✅ 正确:写入公式,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 加载项中支持有限,优先用辅助列拆解='表名'!A1基于 SOC 职业分类