xllify

Turn prompts into Excel functions.

Works with Claude Code, Copilot, and other AI assistants. Describe what you need and get a ready-to-run add-in.

๐Ÿš€ Coming soon
Paste formulas, VBA, or describe what you need
Handle large datasets
Get a ready-to-run add-in
Extensive function library
Built into Claude Code โ–ถ๏ธ

Regex extract

>Suggested built-in function: =text.RegexMatch(text, pattern)Extracts text matching a regular expression pattern.โœ“ Added
fx
=text.RegexMatch(A1, "\d{3}-\d{4}")
Input
A
1Call me on 555-1234 or 555-5678
Output
BC
1555-1234555-5678

Complex formulas to simple code

>AI-generated function: =sales.Commission(amount)Tiered commission: 5% up to 10k, 8% up to 50k, 12% above.โœ“ Added
fx
=sales.Commission(A1)
Before
=IF(A1<=10000,A1*0.05,IF(A1<=50000,10000*0.05+(A1-10000)*0.08,10000*0.05+40000*0.08+(A1-50000)*0.12))
After
=sales.Commission(A1)
Input
A
175000
Output
B
16700

Turn unreadable formulas into simple code you can name, document, and reuse.

View generated code
xllify.fn({
  name = "sales.Commission",
  description = "Calculates tiered commission based on sales amount",
  category = "Sales"
}, function(amount)
  if amount <= 10000 then
    return amount * 0.05
  elseif amount <= 50000 then
    return 10000 * 0.05 + (amount - 10000) * 0.08
  else
    return 10000 * 0.05 + 40000 * 0.08 + (amount - 50000) * 0.12
  end
end)

Join orders with customers

>Suggested built-in function: =data.Join(range1, range2, key)Joins two ranges on a shared key column.โœ“ Added
fx
=data.Join(A1:C4, E1:G3, "customer_id")
Input (orders)
ABC
1order_idcustomer_idamount
21001C1250
31002C2180
41003C1340
Input (customers)
EFG
1customer_idnameregion
2C1Acme CorpNorth
3C2GlobexSouth
Output
ABCDE
11001C1250Acme CorpNorth
21002C2180GlobexSouth
31003C1340Acme CorpNorth

Ready-made functions or fresh code on demand

>AI-generated function: =acme.LeadScore(company_size, industry, days_since_contact)Scores lead quality from 0-100 based on company attributes and engagement recency.I can make mistakes โ€” double-check the codeโœ“ Added
fx
=acme.LeadScore(A1:A2, B1:B2, C1:C2)
Input
ABC
1500SaaS3
250Retail45
Output
D
192
234
View generated code
xllify.fn({
  name = "acme.LeadScore",
  description = "Scores lead quality from 0-100",
  category = "Acme"
}, function(company_size, industry, days_since_contact)
  local score = 50

  -- Company size scoring
  if company_size >= 1000 then
    score = score + 30
  elseif company_size >= 100 then
    score = score + 20
  elseif company_size = 10 then
    score = score + 10
  end

  -- Industry scoring
  local hot = {SaaS = 25, Fintech = 20, Healthcare = 15}
  score = score + (hot[industry] or 0)

  -- Recency penalty
  if days_since_contact > 30 then
    score = score - 20
  elseif days_since_contact > 14 then
    score = score - 10
  end

  return math.max(0, math.min(100, score))
end)

See it in action

xllify includes an open-source standard library covering many common scenarios. The agent uses this where possible, otherwise it writes the code for you. You can customize the result with further prompts or by hand.

Advanced users can inspect and tweak the code, name, and docs at will. Your code, workbooks and data stay on your machine. WASM (for web, Mac) and XLL builds supported.

XLL is Windows-only but allows multi-threaded calculation for superior performance via the C SDK. It can handle much larger ranges without issue.