Founding rate: RM5 off Basic, forever — applied automatically. See pricing

Menu
Chapters0 / 4 completed

Chapter 03 · What the grid is · 7 min

One row per record

There is one rule that decides whether a sheet is workable, and it is not about formulas at all.

One row per record. One column per field. Every field filled in on every row.

A sheet that follows it will answer almost any question with one formula. A sheet that breaks it will fight you on every single one — and the sheets that break it are usually the pretty ones, because the rule is exactly what people relax to make a table easier to read.

The grid

The same delivery numbers laid out three ways. A1:C6 is how a person would type it, with the repeated city left blank. A9:C14 is the same data with every field filled in. A16:C19 is the third shape you will meet: a year per column.

The blank that means "same as above"

Look at A1:C6. Kuala Lumpur appears once, in A2, and rows 3 and 4 leave the city blank because obviously they are still Kuala Lumpur. Anyone reading it understands immediately. It is the layout almost every hand-typed sheet in the world uses, and in real files it usually arrives as a merged cell, which is the same thing with the blanks hidden.

Excel does not read down the page the way you do. To a formula, A3 is empty. Not Kuala Lumpur, understood from context — empty.

So ask it for Kuala Lumpur's orders. The true answer is 40 + 52 + 47 = 139.

Three of those five rows belong to Kuala Lumpur, totalling 139. What does the formula return?

E2

Scroll to see all 5 columns →

ABCDE
1citymonthorders
2Kuala LumpurJan40=SUMIFS(C2:C6,A2:A6,"Kuala Lumpur")
3Feb52
4Mar47
5PenangJan18
6Feb21
7
8
9citymonthorders
10Kuala LumpurJan40
11Kuala LumpurFeb52
12Kuala LumpurMar47
13PenangJan18
14PenangFeb21
15
16cityorders_2024orders_2025
17Kuala Lumpur9801240
18Penang410505
19Johor Bahru260300
Editable, try changing it

Counting confirms it

That was not a rounding problem or a criteria typo — the formula found one matching row, because one row is all there is as far as the grid is concerned. COUNTIF says so in a single number.

This is the most dangerous failure shape in spreadsheet work: the formula is correct, the criteria is spelled correctly, no error appears, and the answer is a third of the truth. Every check you could run on the formula itself passes. The problem is in the shape of the data.

The city name is typed into the block exactly once. How many rows does COUNTIF find?

E3

Scroll to see all 5 columns →

ABCDE
1citymonthorders
2Kuala LumpurJan40
3Feb52=COUNTIF(A2:A6,"Kuala Lumpur")
4Mar47
5PenangJan18
6Feb21
7
8
9citymonthorders
10Kuala LumpurJan40
11Kuala LumpurFeb52
12Kuala LumpurMar47
13PenangJan18
14PenangFeb21
15
16cityorders_2024orders_2025
17Kuala Lumpur9801240
18Penang410505
19Johor Bahru260300
Editable, try changing it

Fill it in, and the formula was right all along

A9:C14 is the identical data with the city repeated on every row. Nothing about it is cleverer. It is just complete — every row now states all three of its fields without borrowing any of them from the row above.

Run the same formula against it.

That is the whole rule. The repetition looks redundant to a human reader and is exactly what makes the data computable. If you are handed a merged-and-blanked sheet, your first move — before any analysis — is to unmerge it and fill every key down.

The same question, on the filled-in layout

In E10, total Penang's orders on the filled-in block using the same two-range shape.

E10

Scroll to see all 5 columns →

ABCDE
1citymonthorders
2Kuala LumpurJan40
3Feb52
4Mar47
5PenangJan18
6Feb21
7
8
9citymonthorders
10Kuala LumpurJan40
11Kuala LumpurFeb52
12Kuala LumpurMar47
13PenangJan18
14PenangFeb21
15
16cityorders_2024orders_2025
17Kuala Lumpur9801240
18Penang410505
19Johor Bahru260300

A year per column

A16:C19 is the third shape, and the one that looks most respectable: one row per city, one column per year. It prints beautifully. It is a report, not data.

Ask it for Penang in 2025 and the formula works — but notice where the year went.

Penang's 2025 figure sits in the third column of that block. What does the formula return?

E17

Scroll to see all 5 columns →

ABCDE
1citymonthorders
2Kuala LumpurJan40
3Feb52
4Mar47
5PenangJan18
6Feb21
7
8
9citymonthorders
10Kuala LumpurJan40
11Kuala LumpurFeb52
12Kuala LumpurMar47
13PenangJan18
14PenangFeb21
15
16cityorders_2024orders_2025
17Kuala Lumpur9801240=SUMIFS(C17:C19,A17:A19,"Penang")
18Penang410505
19Johor Bahru260300
Editable, try changing it

Where the year went

The number 2025 does not appear anywhere in that formula. It is hidden inside the letter C.

That is the cost. A value that lives in a column heading instead of a cell cannot be filtered on, grouped by, compared against, or asked about. To answer "which city grew fastest?" you write arithmetic between column letters and redo it when 2026 arrives. On a one-row-per-record layout — city, year, orders — the year is just another field, and every one of those questions is one formula that never needs editing again.

The repair is to unpivot: turn each year column into rows. Three cities × two years becomes six rows. It always looks like a step backwards and it always is not.

The third break is the same idea one floor up: a stacked header, where the real column names sit on row 2 under a merged banner on row 1. Formulas that expect one header row read the banner instead. That one gets its own chapter next, because the header row is doing more work than it appears to be.

What to check when a file lands

Before computing anything on a sheet somebody sent you, four questions:

  • What is one row? If you cannot finish the sentence "each row is one ___", the layout is not settled yet and neither is the analysis.
  • Are there merged cells? Unmerge, then fill every key down.
  • Is any value living in a column heading? Dates, months, years, regions, product names — those are data pretending to be structure.
  • Is there a total row inside the block? A Total row sitting among the data will be counted as a record by every formula that ranges over it, silently doubling the answer. Totals belong outside the data, and that separation is its own chapter later in this track.

None of this is analysis. All of it decides whether the analysis is possible.

Sign in to track your progress.