How to Make a Waffle Chart in Excel
Build a waffle chart in Excel with conditional formatting — no add-ins. A 10x10 grid that shows percentages better than any pie chart.
How to Make a Waffle Chart in Excel
A waffle chart is a 10×10 grid of squares where filled cells represent a percentage. Show 63% and 63 of the 100 squares light up. That’s the whole idea, and it’s a better idea than the pie chart most people reach for when they have a single percentage to communicate.
Excel has no built-in waffle chart type. You won’t find it under Insert > Chart. But you don’t need one, and you don’t need an add-in either. A waffle chart is really just conditional formatting applied to a grid, and once you’ve built one you can rebuild it in about two minutes. This guide shows the method that actually holds up: a live grid driven by a single input cell, so changing one number redraws the whole chart.
Why a waffle chart beats a pie chart here
Pie charts fail at the one job people give them. The human eye is bad at judging the area of a wedge, which means a 63% slice and a 58% slice look nearly identical. A waffle chart converts the same number into something the eye reads instantly: filled squares against empty ones. You can practically count them.
The position here is simple. For a single part-to-whole figure — a completion rate, a percentage of goal hit, a market share number on a dashboard tile — a waffle chart communicates better than a pie every time. Pies only start to earn their place when you have three or four categories that genuinely sum to a whole, and even then a stacked bar usually wins. If you’re weighing up which visual fits your data, the chart decision guide walks through the trade-offs by data type.
Waffle charts also look at home on a dashboard. They’re compact, they tile neatly, and a row of them reads like a scoreboard. That’s exactly the context where a percentage needs to land in half a second.
Step 1: Build the 10×10 grid
Select a block of 10 columns by 10 rows — say B2 to K11. Keep the cells small and square. The fastest way: select those columns, right-click a column header, set the width to something like 2.5, then do the same with row heights so each cell is roughly square. You’re aiming for a tidy checkerboard of 100 identical cells.
Don’t type anything into these cells yet. The grid is your canvas; the numbers that drive it live behind the scenes in the next step.
Step 2: Number the cells 1 to 100
The trick that makes a waffle chart work is giving every cell a hidden value from 1 to 100, so conditional formatting knows which cells to fill. Type this formula into the top-left cell of your grid (B2):
=COLUMN()-COLUMN($B$2)+1 + (ROW()-ROW($B$2))*10
Then fill it across all 100 cells. This numbers the grid left-to-right, top-to-bottom: the first row holds 1 through 10, the second row 11 through 20, and so on down to 100 in the bottom-right corner.
If that formula looks fiddly, there’s an even simpler route: just type 1 through 100 manually, or use =SEQUENCE(10,10) in the top-left cell on Excel 365, which spills the full 1–100 grid in one go. SEQUENCE is the cleanest option if you have it — one formula, no filling.
Either way, you now have a grid of values that conditional formatting can switch on and off.
Step 3: Add the input cell
Pick a cell outside the grid — B1 works — and put your percentage there as a decimal. For 63%, enter 0.63 and format the cell as a percentage. This single cell is the engine of the whole chart. Change it and the grid redraws.
| A | B | |
|---|---|---|
| 1 | Completion | 63% |
Building the input cell as a proper reference (rather than hard-coding the number into your formatting rule) is what makes the chart reusable. It’s also what stops it from silently going stale — a chart that doesn’t update when its number changes is one of the most common Excel frustrations, and the not-updating fixes cover the wider version of that problem.
Step 4: Apply conditional formatting to fill the cells
Select the whole 10×10 grid. Go to Home > Conditional Formatting > New Rule > “Use a formula to determine which cells to format.” Enter this formula:
=B2<=$B$1*100
Here B2 is the top-left cell of your grid and $B$1 is your input cell. The formula says: fill this cell if its number is less than or equal to the percentage times 100. At 63%, that’s every cell numbered 1 through 63.
Click Format, choose a strong fill color for the filled squares — a single confident color, not a rainbow — and click OK twice. The grid fills from the top-left. To style the empty cells, add a second rule (or just give the whole grid a light gray fill first, so the unfilled cells show as muted background).
Step 5: Hide the numbers
The values 1–100 are doing the work but they shouldn’t be visible. Select the grid and set the font color to match each cell’s fill — or, cleaner, apply a custom number format of ;;; (three semicolons) to the whole grid, which hides all cell contents while leaving the conditional formatting intact. Now you see squares, not numbers.
That’s a finished waffle chart. Change B1 to 0.45 and watch it redraw to 45 filled squares. Grab the working file if you’d rather start from a pre-built grid and just drop your own number in.
Design choices that make it read well
A waffle chart lives or dies on restraint. Use two colors only: one for filled, one for empty. The empty color should be quiet — a pale gray — so the filled squares carry the message. Adding gridlines between cells (a thin white border) separates the squares cleanly. Skip the data labels; the whole point is that you don’t need a number printed on top, though a single large percentage figure beside the grid is a fair addition for a dashboard tile.
Resist the temptation to make each cell a different color to show sub-categories. The moment you do that, you’ve lost the instant readability that justified the chart in the first place. If you have categories, you want a different chart.
When not to use a waffle chart
Waffle charts do exactly one thing well: a single percentage out of 100. They fall apart when you push them further. Two percentages that don’t sum to 100 shouldn’t share a grid. More than one dimension of data needs a real chart type. And precise values matter less than the impression — nobody counts to 63, they see “about two-thirds full,” so don’t use a waffle when the exact figure is the point. In that case a big number and a label does the job better than any chart.
FAQ
Does Excel have a built-in waffle chart? No. There’s no waffle chart type in the Insert > Chart menu in any version of Excel. The conditional-formatting grid method in this guide is the standard native approach, and it’s genuinely the best one — the add-ins that claim to make waffle charts are doing the same thing behind a paywall.
Can I make the waffle round instead of square? You can use Wingdings or a circle character in each cell instead of a filled background, then conditionally format the font color. It works, but square cells read more cleanly and are less fiddly to set up. Squares are the standard for a reason.
How do I show a percentage that isn’t a whole number, like 63.5%? The grid only has 100 cells, so it rounds to the nearest whole percent — 63.5% fills 63 or 64 squares depending on your formula. For a single percentage that’s fine; nobody perceives half a square. If you genuinely need decimal precision, a waffle chart is the wrong choice and a labelled figure is better.
Will the chart update automatically when my data changes? Yes, as long as your input cell references live data rather than a typed-in number. Point B1 at a formula that calculates your percentage from source data and the grid redraws every time that data changes. If it stops responding, the chart-not-updating fixes apply here too — the usual culprit is calculation set to manual.
Can I build this in Google Sheets? Yes, using the same conditional-formatting-on-a-grid approach, though the rule setup differs slightly. The Google Sheets chart templates collection includes a copy-and-use version.