The Scenario
The monthly finance pack is due Friday and the centerpiece table is MRR broken down by plan tier and month — Starter, Pro, and Enterprise as columns, January through December as rows. Your Metabase instance has a saved question with the underlying data, but it returns flat rows. The finance director has explicitly asked for a static cross-tab in the workbook, not a pivot table that shifts when someone touches the data. You've been rebuilding this manually every month.
The bad version:
- Open Metabase, find the relevant card, download the flat CSV.
- Import it into Excel, build a pivot table, then copy the pivot table's values as a paste-special static table into the finance sheet.
- Format the static table to match the finance pack style guide (thousands separators, no decimals, Starter/Pro/Enterprise header labels rather than the database enum values).
- Repeat next month.
Four steps, each of which can break differently. The pivot table step is the one that fails when someone adds a new plan tier mid-quarter and the column order shifts.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Excel workbook. It can execute a Metabase pivot dataset query and write the cross-tabulated results directly into the workbook — no intermediate pivot table.
Run a pivot query on Metabase card ID 88 that pivots by plan_tier as columns and month as rows with total_mrr as the value, then write the pivot table into this workbook starting at A1 with headers
What You Get
- A static cross-tab: months in column A, plan tiers as column headers in row 1, MRR values in the cells.
- No pivot table layer — the data sits directly in cells, formula-free and style-ready.
- Column header labels match what Metabase returns for the plan_tier field.
What If the Data Is Not Quite Ready
The plan tier labels in Metabase don't match finance terminology
Run a pivot query on Metabase card ID 88 pivoting by plan_tier as columns and month as rows with total_mrr as values, rename column headers from starter to Starter Plan, pro to Pro Plan, and enterprise to Enterprise Plan, then write to this workbook starting at A1
The headers land finance-ready without a post-paste find-and-replace.
You want the pivot against a raw SQL query instead of a saved card
Execute a Metabase pivot dataset query against database ID 2 with breakout by region and product, metric as total_revenue, and write the pivot table into this workbook with regions as rows and products as columns
Works equally for a native SQL pivot — specify database ID and breakout dimensions rather than a card ID.
The month column is a raw timestamp and needs formatting
Run a pivot query on Metabase card ID 88 pivoting by plan_tier as columns and month as rows with total_mrr as values, format the month column as MMM YYYY, and write the result to this workbook
The month column arrives in the format the pack uses — no manual cell formatting after the paste.
Full finance-ready table in one shot
Run a pivot query on Metabase card ID 88 pivoting by plan_tier as columns and month as rows with total_mrr as values. Format months as MMM YYYY. Rename headers to Starter Plan, Pro Plan, Enterprise Plan. Add a Total column summing the three plan tiers. Write to this workbook starting at A1 with all headers.
One prompt, one table, formatted and totaled. The monthly rebuild takes under a minute.
Try It
Get the 7-day free trial of SheetXAI and open the Excel workbook for the monthly finance pack, then ask it to run the Metabase pivot and write the cross-tab directly. Also useful: pulling Metabase saved question results into a workbook, and the hub overview on connecting Metabase to Excel.
