Copilot in Excel — the three modes
One workbook, six demos. Chat only, Plan, Allow editing, skills, and filling a template from a Word doc.
↯Pivot map — read the room, not the script
AWhat you need open
BPre-flight
- Open the workbook once and let it calculate. Formulas are saved without cached values.
- Sign in on the demo account, not the corporate or admin one.
- Office display language must be English or custom skills will not load.
- Upload harbourline-variance-commentary the DAY BEFORE. It took about ten minutes to appear.
- Do NOT upload harbourline-board-format. Section 5 builds it live and that asymmetry is the demo.
- Take a working copy. Sections 2, 3, 4, 5 and 6 all write into the workbook.
- Check the mode control before you start. The Auto dropdown is the model picker, not the mode.
!Things that will bite you
This is a normal month-end pack. I am not asking Copilot to change anything. I want to know whether it can actually read a set of accounts.
Use only this workbook. Read the Summary P&L, Revenue, Cost detail, Headcount and Cash sheets. Revenue is up 11 per cent on last year but EBITDA is down. Explain why, and be specific about which line items caused it. Separate the margin effect from the cost effect. For every driver you name, tell me the sheet and the number it came from. If the workbook does not evidence a cause, say so rather than proposing one.
It built an EBITDA bridge unprompted and every figure was independently verified against the source data.
| Effect | EBITDA impact | Its evidence |
|---|---|---|
| Revenue growth at last year's margin | +1,259k | 30.620m to 34.005m |
| Lower gross margin | -766k | 37.2% to 34.9% |
| Higher operating costs | -1,043k | 9.700m to 10.743m |
| Net EBITDA change | -550k | 1.691m to 1.141m, down 32.5% |
It just told me it cannot separate the margin drivers. Let us test whether that is true, because I think the Revenue sheet has enough in it.
The Revenue sheet has net revenue and cost of goods sold by channel and by product line, with the budget alongside. Use it to split the gross margin miss against budget into two parts: how much came from the channel mix changing, and how much came from margin falling within the channels themselves. Show the actual and budget margin for each of the four channels, and each channel's share of revenue. State your method before the numbers.
| Channel | Actual margin | Budget margin | Actual share | Budget share |
|---|---|---|---|---|
| Retail | 40.7% | 41.2% | 34.2% | 35.9% |
| Wholesale | 22.4% | 23.6% | 32.1% | 28.4% |
| Online | 47.8% | 47.8% | 20.8% | 21.7% |
| Export | 30.2% | 30.5% | 12.9% | 14.0% |
Wholesale took 3.7 points more of the revenue mix than planned at roughly half the margin of Retail, and its own margin also slipped. Half the problem is what they sold, half is what they sold it for. Two different conversations with two different owners.
| Ask | Why it works |
|---|---|
| Marketing is 18 per cent under budget. Is that good news? | It has to reason past the sign of the variance. An underspend on programmes is a forward revenue risk, and it can see Marketing headcount fell from 8 to 7. |
| Cash is down 1.3 million but we are profitable. Where has it gone? | Forces it off the P&L and onto debtor days moving from 38 to 51. |
| Something changed in Operations in May. What was it? | Freight steps from about 135,000 a month to about 159,000 and keeps climbing. A clean step change it can find without being told where. |
| Which customer should I ring this afternoon? | Tasman Retail Group is over its credit limit. Nobody expects it to check a limit against a balance. |
| If the last three months continue, where do we land at year end? | Run-rate extrapolation with a stated assumption. Ask it to show the assumption. |
The two that make a finance room go quiet are the Marketing underspend and the credit limit. Keep them even if you cut everything else.
Now a harder job. Seventeen assumptions, six constraints that all have to hold at once, and an empty grid. I want the method before I want the numbers.
Use only this workbook. Plan how you would build the FY27 operating cost budget in the empty grid on this sheet. Read every row of tblAssumptions and tblConstraints on this sheet, and the FY26 actuals in tblCosts. The FY26 annualised column is already calculated for you. Set out the order you would work in, which assumption drives which department and cost category, and how you would prove that all six constraints hold at the same time. Two assumptions interact: Technology headcount rises by three while contractor spend goes to zero. Say how you would handle that so the cost is not double counted. Tell me which constraints you believe cannot all be met together, and what you would need me to decide. Do not write anything into the grid yet.
This is the part worth rehearsing. Both were verified live. Answer them deliberately and narrate why.
Watch what just happened. I gave it seventeen assumptions and it found the one I had not thought about. Nobody wrote down when these people start. That single choice is worth a hundred and fifty thousand dollars, and in Allow editing it would have picked one silently and never told me.
Look at option three. Treat EBITDA as a cash proxy. Ten minutes ago this same workbook showed us a company making a profit and running out of cash. If it picked that option it would produce a confident, tidy, wrong budget. Not provable is the honest answer, and it is the one I want.
Worth knowing: closing cash at 31 August is 1,536,000 against a covenant of 2,000,000 by December 2027. They are already below it. This is not a hypothetical gap, it is the constraint most likely to fail.
| What it concluded | Figure | Checked |
|---|---|---|
| FY27 operating cost as modelled | 17,885,000 | 11.0% growth on 16,115,100 |
| EBITDA margin that produces | 2.47% | against a 6.0% floor |
| Cut required to satisfy the constraints | 1,882,000 | 1,881,324 exactly |
| Technology non-people cost | 1,331,000 | 1,329,360 |
| Of which breaches the no-growth rule | 111,000 | 108,960 |
Proceed executes the plan and writes into the grid. It does NOT need you to switch modes. Say: this is the same work Allow editing would have done, but I have already seen the method, corrected two assumptions and been told which constraint is impossible. The argument happened before the work, where it was cheap.
| Chat only | Plan | Allow editing | |
|---|---|---|---|
| Changes the workbook | Never | Yes, after you approve | Yes, straight away |
| You see the method first | No | Yes | No |
| Stops to ask about missing inputs | No | Yes | Rarely |
| A wrong answer costs you | Nothing, you ignore it | Nothing, you reject the plan | An undo, or worse, you do not notice |
| Use it when | You want to understand | The job has assumptions worth arguing about | The job is obvious |
Plan mode is not slower. It is the same work with the argument moved to the front, where it is cheap. Everything you just watched it ask me would otherwise have been a silent assumption inside a finished budget.
Do not sell Plan as the careful option. Sell it on cost. Cleaning an expense sheet has no assumptions worth debating, so use Allow editing and save the step. Building a budget has seventeen, and the cheapest place to catch a wrong one is before the work.
This is a raw export. It is not a table, the dates are in four formats, the amounts are text and somebody has spelled Technology six different ways. This is the job most finance people actually do.
Clean the expense export on this sheet. Work on this sheet only and do not touch any other sheet. 1. Standardise every date to a real Excel date, not text. There are four different formats in the column. 2. Standardise the department names. There are twenty-one different spellings and they collapse to six real departments. 3. Convert the amount column to numbers. Values in brackets are credit notes and must stay negative. 4. Remove duplicate transactions. The TXN REF is the unique key. 5. Flag any transaction over 5,000 that has no approver. 6. Flag any transaction with no supplier. 7. Flag anything that looks like a keying error. Then build a summary of spend by department below the data, and tell me the row count before and after you removed duplicates. Show me the rules you applied. Do not delete anything you cannot explain.
Pick one date and show it right-aligns now. Pick one department cell and show the mapping. Then scroll to the flagged rows.
| Department | Clean total |
|---|---|
| Technology | 134,124.98 |
| Operations | 60,213.81 |
| Marketing | 50,986.23 |
| Sales | 46,362.06 |
| People & Culture | 37,160.50 |
| Finance | 32,777.10 |
Do not hide it. Say that is wrong, and here is why it matters, then ask it to restore them. A recovered mistake is more convincing than a clean run.
Every month somebody writes the commentary, and every month it reads differently depending on who wrote it. The method now lives in a skill, so it reads the same way every time.
Write the Commentary column for every row in tblCommentary on this sheet. The numbers are live from Summary P&L, so do not change a single value or formula. Apply the house style rules on this sheet exactly. Use the owner table for the named owner in the third sentence. Where the workbook does not evidence a driver, say so rather than proposing one.
Exactly three sentences per row, every row, no exceptions. A number in sentence one, a named driver in sentence two, an owner in sentence three. It ends with Variance commentary v1.0 applied.
The Finance row is only 2,600 under budget. A human writes three paragraphs about Technology and one word about Finance. The skill writes the same three sentences for both, which is what an auditor wants.
Leave this sheet as it is. Section 5 builds a second, different skill and runs it on this same sheet, which is the payoff.
That first skill was already installed. Let us build a different one, live, in about two minutes. A skill is two things. A description that says when to use it, and instructions that say how to do the job. That is the whole idea.
Read the bad output on the sheet aloud and ask the room which of the three faults they would actually notice in a board pack. Most people say none of them. That is the argument for writing the rules down once.
- Copilot pane, Settings (...) then Manage skills then Custom skills.
- Follow Skills OneDrive folder. A new user picks Create skills folder first, then Open skills folder.
- Create a subfolder named exactly harbourline-board-format.
- In Notepad, paste the file below. Save as SKILL.md with Save as type All files and UTF-8. Check it did not become SKILL.md.txt.
- Upload it into the subfolder. The folder name and the frontmatter name must match exactly.
- Back in Excel, Refresh custom skills.
- Go to Skill - Commentary, type @, select the new skill and run the prompt below.
--- name: harbourline-board-format description: Use when I ask to format a finance sheet for the board pack. --- # Format a finance sheet for the board Method version: 1.0. 1. Work only on the worksheet and table I name. Never change a value, a formula or the row order. Ask if the target table is unclear. 2. Do not assume the table starts at row 1. Find the actual header row first. 3. Bold the header row, fill it navy and set the header text white. 4. Format NZD columns with thousands separators, no decimal places, and negatives in red parentheses. Keep the cells numeric, never text. 5. Format percentage columns as 0.0%. Never apply a percentage format to a currency column. 6. Wrap the header text, widen columns so no cell shows hashes, and freeze the header row. 7. Right align number columns and left align text columns. 8. Add no totals, no charts, no commentary and no new worksheets. 9. Report what you changed, confirm that no value moved, and finish with "Board format v1.0 applied."
Format tblCommentary on the Skill - Commentary sheet for the board pack. Preserve every value and formula exactly as they are. Apply your formatting instructions and tell me what changed.
Two skills, one workflow. The first one wrote the words. The second one made it presentable. Neither touched a number, and neither knows the other exists. Next month I run both and month end is a thirty second job.
That is also the honest answer to how far does this go. Skills are small and single purpose on purpose. You do not build one enormous skill that does month end. You build several that each do one job properly and compose.
Somebody has written a three page business case in Word. Somebody else has to get it into the capex template. That retyping is where the errors come from.
Fill the capex template on this sheet from the Word document "Capex proposal - Cold Chain Renewal". Every shaded cell is an input. Put each figure in the right field and in the right year. The proposal states some amounts in words rather than digits, so read carefully. Calculate the totals and the payback period. Leave the formulas in the total cells alone. Do not guess. List separately every field the proposal does not state, and every number I should go back and ask for.
| Cost line | FY27 | FY28 | FY29 | Total |
|---|---|---|---|---|
| Hardware | 1,840,000 | 0 | 0 | 1,840,000 |
| Software licences | 126,000 | 138,000 | 138,000 | 402,000 |
| Installation and commissioning | 340,000 | 0 | 0 | 340,000 |
| Training | 48,000 | 16,000 | 0 | 64,000 |
| Project management | 118,000 | 54,000 | 0 | 172,000 |
| Contingency | 218,000 | 0 | 0 | 218,000 |
| Total | 2,690,000 | 208,000 | 138,000 | 3,036,000 |
It builds a Proposal gaps and follow-up table beside the form that nobody asked for. Six rows, each naming the missing item and quoting what the proposal actually says: date received, benefit type, base insurance premium reduction, net present value, the EUR/NZD rate assumption, the completion penalty and the forward cover terms.
Look at the table on the right. I did not ask for that. I told it not to guess, and instead of leaving blanks it told me what it does not know and why. That list is my follow-up email to the Operations Director.
The 4.3 year payback is against the steady state benefit. FY27 benefit is only half a year because the programme completes in June, so the calendar payback from day one is longer. If a finance person challenges the number, that is the honest answer, and having it ready is better than discovering it live.
This is the point where you turn the template plus these instructions into a skill, and next month is a thirty second job. That closes the loop back to section 5 without needing another demo.
It is the difference between telling a new analyst what to do every month, and giving them the desk procedure once.
| People assume | Actually |
|---|---|
| It is a Copilot Studio agent | Different product. An agent has connectors, triggers, publishing and a lifecycle. A skill is a text file in your OneDrive. |
| Turning it off blocks it | The toggle only stops Copilot selecting it automatically. An @mention still runs a disabled skill. It is not a security control. |
| Sharing the workbook shares the skill | It does not. Skills are personal to your OneDrive. A recipient needs their own. |
| It is Microsoft proprietary | It follows the open Agent Skills specification at agentskills.io. The same format is used by other AI tools. Worth saying to anyone worried about lock-in. |
| It only works on the file it was written for | No. See the Fallback section — a skill written for a construction cost workbook ran correctly against this finance pack. |
| Can Copilot do it? | |
|---|---|
| Write the SKILL.md content | Yes. Ask any Copilot to draft it. It is just text, and it is good at this. |
| Save the file to your skills folder | No. You save it and upload it yourself. |
| Turn a chat you liked into a skill automatically | No. There is no save this as a skill button in Excel today. |
| Excel Copilot writing into OneDrive | No. Excel Copilot works inside the workbook. |
So the honest answer is: Copilot writes the words, you place the file. That is two minutes of work, and drafting is the part that takes the thinking.
Write me a SKILL.md file for Copilot in Excel. The job: every month I paste a raw expense export into a sheet, and I need it cleaned the same way every time. Standardise dates, standardise department names, convert amounts to real numbers, keep credit notes negative, remove duplicates on the reference column, and flag anything over 5,000 with no approver. Use the Agent Skills format: three dashes, then name and description, then three dashes, then numbered instructions. The name must be lowercase with hyphens. The description must say when to use the skill, written the way I would actually ask for it. Include a rule that stops it inventing data it cannot find, and end the instructions with a version marker so I can tell which version ran. Give me the file only, no commentary.
When the new skill had not synced in time, running a pre-existing skill from a completely different project against this workbook worked — and produced a better talking point than the planned demo.
Review the operating costs in tblCosts on this sheet for the year to date. Treat Department as the review grouping and Cost category as the line detail. Use a materiality threshold of 100,000 NZD and 10 per cent, both of which must be met for a row to be material. Report the material unfavourable variances, name the department and category for each, and reconcile your totals back to the source table. Do not invent a cause for any variance.
| Department | Cost category | Variance | Variance % |
|---|---|---|---|
| Technology | Software & cloud | 173,900 | 29.4% |
| Operations | Freight & logistics | 148,500 | 14.1% |
| Technology | Salaries & wages | 136,000 | 12.3% |
| Technology | Contractors | 135,300 | 60.4% |
| Total material | 593,700 |
It reported: No causes were supplied in tblCosts; none were inferred. A skill built for a different workbook, refusing to invent the data it could not find.
This skill was written for a completely different workbook, in a different industry. Watch what happens when I point it at this one. The method travels. The data assumptions do not. That is exactly why you keep skills small and single purpose.
RIf something goes wrong
✓Truth ledger
- Excel has three Copilot modes: Chat only, Plan, Allow editing
- Excel is the only Office app with Plan mode
- Plan mode asks clarifying questions, then executes via its own Proceed button
- Custom skills are a SKILL.md file in a matching OneDrive folder, following the open Agent Skills spec
- Disabling a skill only stops automatic selection; an @mention still runs it
- The =COPILOT() worksheet function was retired on 14 September 2026
- https://support.microsoft.com/en-us/excel/copilot/copilot-in-excel-skills
- https://support.microsoft.com/en-us/excel/copilot/get-started-with-copilot-in-excel
- https://agentskills.io/specification