Build reliable, well-documented spreadsheets with clear architecture, error handling, named ranges, and platform-agnostic formulas for finance, dashboards, a...
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install afrexai-spreadsheet-engineering或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install afrexai-spreadsheet-engineering⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/afrexai-spreadsheet-engineering/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
> Build bulletproof spreadsheets: financial models, dashboards, data systems, and automation. Platform-agnostic methodology for Google Sheets, Excel, and LibreOffice.
Score your spreadsheet /16:
| Signal | Healthy | Sick | |---|---|---| | Named ranges for all key inputs | ✅ Uses named ranges | ❌ Raw cell references everywhere | | Inputs separated from calculations | ✅ Clear input section | ❌ Hardcoded values in formulas | | No circular references | ✅ Clean dependency chain | ❌ Iterative calculation warnings | | Documentation/comments exist | ✅ README sheet + cell notes | ❌ "What does this formula do?" | | Error handling in formulas | ✅ IFERROR/IFNA wrapping | ❌ #REF! #N/A scattered everywhere | | Consistent formatting | ✅ Style guide followed | ❌ Random fonts, colors, sizes | | Version history/backup | ✅ Named versions + changelog | ❌ "Final_v3_REAL_final.xlsx" | | Data validation on inputs | ✅ Dropdowns + range constraints | ❌ Free-text in structured fields |
Score: 0-4 🔴 rebuild | 5-8 🟡 refactor | 9-12 🟢 optimize | 13-16 🔵 production-grade
---
spreadsheet_brief:
name: "[Descriptive Name]"
purpose: "[What decision does this support?]"
owner: "[Who maintains this]"
audience: "[Who uses this — technical level]"
update_frequency: "[Real-time / Daily / Weekly / Monthly / Ad-hoc]"
data_sources:
- source: "[Where data comes from]"
method: "[Manual / Import / API / IMPORTRANGE / Power Query]"
refresh: "[How often]"
outputs:
- "[Dashboard / Report / Export / Decision support]"
complexity_tier: "[Simple / Standard / Complex / Enterprise]"
platform: "[Google Sheets / Excel / Both]"
kill_criteria:
- "If >50 users need simultaneous editing → move to database"
- "If >100K rows → move to database or BI tool"
- "If requires audit trail → move to proper system"
| Tier | Rows | Sheets | Users | Formulas | Example | |---|---|---|---|---|---| | Simple | <1K | 1-3 | 1-3 | Basic | Budget tracker, checklist | | Standard | 1K-10K | 3-8 | 3-10 | Intermediate | Financial model, project tracker | | Complex | 10K-50K | 8-15 | 10-30 | Advanced | Multi-dept dashboard, CRM | | Enterprise | 50K+ | 15+ | 30+ | Expert | Data warehouse substitute (🚩 migrate) |
| Scenario | Better Tool | |---|---| | >100K rows of data | Database (PostgreSQL, SQLite) | | >10 concurrent editors | Web app or Airtable | | Complex relational data (3+ entity types) | Database + app | | Needs audit trail / compliance | Purpose-built system | | Real-time data processing | ETL pipeline + BI tool | | Version-controlled code logic | Actual code (Python, JS) |
Rule: Spreadsheets are prototyping tools that become production systems by accident. Know when to graduate.
---
📊 Workbook
├── 📋 README — Purpose, instructions, changelog
├── 📊 Dashboard — Charts, KPIs, summary (output only)
├── ⚙️ Config — Settings, parameters, dropdowns
├── 📥 Data_Input — Raw data entry or imports
├── 🔧 Calculations — All formulas and transformations
├── 📈 Analysis — Pivot tables, scenarios, what-if
├── 📤 Output — Formatted reports for export/print
└── 🗄️ Reference — Lookup tables, constants, mappings
Sheets: PascalCase — Dashboard, Raw_Data, Config
Named Ranges: SCREAMING_SNAKE — TAX_RATE, START_DATE, REVENUE_TARGET
Tabs: Prefix with emoji or number for sort order — 01_Dashboard, 02_Config
Files: YYYY-MM-DD_Description_vX.xlsx
| Color | Meaning | When to Use | |---|---|---| | 🔵 Light blue background | User input cell | Editable fields | | ⬛ Black text | Formula/calculated | Auto-populated cells | | 🟢 Green text | Linked from other sheet | Cross-sheet references | | 🔴 Red text/background | Warning/error | Validation failures, negative values | | 🟡 Yellow background | Assumption | Key assumptions that drive the model | | ⬜ Grey background | Reference/locked | Constants, lookup tables |
---
| Level | Techniques | Example | |---|---|---| | L1 Basic | SUM, AVERAGE, COUNT, IF, CONCATENATE | =SUM(B2:B100) | | L2 Intermediate | VLOOKUP/XLOOKUP, SUMIFS, INDEX/MATCH, TEXT | =XLOOKUP(A2,Ref!A:A,Ref!B:B) | | L3 Advanced | ARRAYFORMULA, QUERY, INDIRECT, nested IFs | =QUERY(Data!A:F,"SELECT A,SUM(F) GROUP BY A") | | L4 Expert | LAMBDA, MAP/REDUCE, LET, dynamic arrays, MAKEARRAY | =LET(data,A2:A100,filtered,FILTER(data,data>0),SORT(filtered)) |
❌ VLOOKUP (fragile — breaks when columns inserted):
=VLOOKUP(A2, Data!A:D, 4, FALSE)
✅ XLOOKUP (Excel 365 / Google Sheets):
=XLOOKUP(A2, Data!A:A, Data!D:D, "Not Found")
✅ INDEX/MATCH (universal — works everywhere):
=INDEX(Data!D:D, MATCH(A2, Data!A:A, 0))
=XLOOKUP(1, (Data!A:A=B2)*(Data!B:B=C2), Data!D:D, "Not Found")
Or INDEX/MATCH array (Ctrl+Shift+Enter in older Excel):
=INDEX(Data!D:D, MATCH(1, (Data!A:A=B2)*(Data!B:B=C2), 0))
Single condition:
=SUMIF(Category, "Sales", Amount)
Multiple conditions:
=SUMIFS(Amount, Category, "Sales", Region, "US", Date, ">="&DATE(2025,1,1))
Count with conditions:
=COUNTIFS(Status, "Active", Score, ">80")
Average with conditions:
=AVERAGEIFS(Score, Department, "Engineering", Status, "Active")
Working days between dates:
=NETWORKDAYS(Start, End, Holidays)
Add working days:
=WORKDAY(Start, 10, Holidays)
Month-end date:
=EOMONTH(A2, 0)
Quarter from date:
=ROUNDUP(MONTH(A2)/3, 0)
Fiscal year (Apr-Mar):
=IF(MONTH(A2)>=4, YEAR(A2), YEAR(A2)-1)
Extract domain from email:
=MID(A2, FIND("@",A2)+1, LEN(A2))
Proper case with exceptions:
=PROPER(SUBSTITUTE(LOWER(A2)," llc"," LLC"))
Clean messy data:
=TRIM(CLEAN(SUBSTITUTE(A2, CHAR(160), " ")))
FILTER:
=FILTER(Data, Data[Status]="Active", Data[Amount]>1000)
SORT:
=SORT(FILTER(Data, Data[Region]="US"), 3, -1)
UNIQUE:
=UNIQUE(Data[Category])
SEQUENCE:
=SEQUENCE(12, 1, DATE(2025,1,1), 30) — 12 monthly dates
Basic aggregation:
=QUERY(Data!A:F, "SELECT A, SUM(F) WHERE B='Active' GROUP BY A ORDER BY SUM(F) DESC LABEL SUM(F) 'Total Revenue'")
Date filtering:
=QUERY(Data!A:F, "SELECT A, B, F WHERE C >= date '"&TEXT(B1,"yyyy-MM-dd")&"' ORDER BY F DESC LIMIT 10")
Pivot-style:
=QUERY(Data!A:F, "SELECT A, SUM(F) GROUP BY A PIVOT B")
=LET(
revenue, SUMIFS(Sales!D:D, Sales!A:A, A2),
costs, SUMIFS(Costs!D:D, Costs!A:A, A2),
margin, (revenue - costs) / revenue,
IF(revenue=0, "No Data",
IF(margin > 0.3, "✅ Healthy",
IF(margin > 0.1, "⚠️ Watch", "🔴 Critical")))
)
...
安装 Spreadsheet Engineering 后,可以对 AI 说这些话来触发它
Help me get started with Spreadsheet Engineering
Explains what Spreadsheet Engineering does, walks through the setup, and runs a quick demo based on your current project
Use Spreadsheet Engineering to build reliable, well-documented spreadsheets with clear architectur...
Invokes Spreadsheet Engineering with the right parameters and returns the result directly in the conversation
What can I do with Spreadsheet Engineering in my documents & notes workflow?
Lists the top use cases for Spreadsheet Engineering, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/afrexai-spreadsheet-engineering/ 目录(个人级,所有项目可用),或 .claude/skills/afrexai-spreadsheet-engineering/(项目级)。重启 AI 客户端后,用 /afrexai-spreadsheet-engineering 主动调用,或让 AI 根据上下文自动发现并使用。
Spreadsheet Engineering 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Spreadsheet Engineering 可免费安装使用。请查阅仓库了解许可证信息。
Build reliable, well-documented spreadsheets with clear architecture, error handling, named ranges, and platform-agnostic formulas for finance, dashboards, a...
Spreadsheet Engineering 属于「Documents & Notes」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my documents & notes tasks using Spreadsheet Engineering
Identifies repetitive steps in your workflow and sets up Spreadsheet Engineering to handle them automatically