i-nth logo
Mind the gap

Guidelines:

  • Avoid using spaces and new lines in formulae.
  • Any spaces and new lines in formulae do not cause unintended side-effects.

Adding spaces and and new lines to formulae can make them more readable. But they are not passive characters – they are the "intersection" operator, which can inadvertently change the result.

The intersection operator

For reasons that are not obvious, Excel uses the Space character as an intersection operator, meaning that two ranges separated by a space returns the intersection of those ranges. For example, =B5:F8 C3:E10 returns the range C5:E8. The Alt+Enter combination, which adds a new line in a formula, behaves in the same way. If the ranges do not intersect, then the result is a #NULL! error.

Because Space and Alt+Enter are not passive, adding them to a formula is risky. If it is not done carefully, then we can create subtle bugs. In general, it is best to not include spaces or new lines in formulae.

Uses of spaces in formulae

Users may put spaces in a formula for two main reasons:

  • To make the formula easier to read, making it look more like how it would be handwritten or written in many other programming languages, with spaces between the parts.
  • Adding structure to a formula, by putting parts of the formula on separate lines using Alt+Enter, and possibly indenting each line using spaces. This can make the formula look like the structure used in most programming languages.

Example of spaces in a formula

For example, the image shows a sales report, which has sales by branch for each of the last five quarters (all of last year, plus the first quarter of this year). We want to aggregate sales into a rolling 6 month total over all branches, where we can specify the starting quarter. Therefore, we use the formula:

=IFERROR(SUM(CHOOSE(C18, B5:C16, C5:D16, D5:E16 E5:F16)), 0)
Rolling 6 months sales
Rolling 6 months sales

In C18 we have specified the 6 months starting with quarter 2, and our formula returns total sales of 1789.71. We check this total by selecting cells C5:C16 and note that the sum shown on the Status Bar is the same, so all is good.

After writing the formula, we added spaces between some of the parameters to make our formula easier to read. Unfortunately, when adding a space between one pair of parameters, we selected the existing comma, which was then deleted when we pressed the Space key.

Importantly, Excel doesn't tell us that there's a problem. The formula, even with a missing comma, is still valid. However, it no longer does what we intended. Specifically:

  • 6 months starting quarter 1: The formula returns 1732.44, which is correct.
  • 6 months starting quarter 2: The formula returns 1789.71, which is correct.
  • 6 months starting quarter 3: The formula returns 940.61, which is incorrect. Rather than summing D5:E16 (quarters 3 and 4), the formula sums the intersection of D5:E16 and E5:F16, which equates to E5:E16 (quarter 4 only). We might not notice that this result is less than expected.
  • 6 months starting quarter 4: The formula returns 0.00, which is incorrect. The CHOOSE function returns a #VALUE! error because it does not have a [value4] parameter, as we combined the [value3] and [value4] parameters when we deleted the comma between them. But the error is suppressed by the IFERROR function, so we get zero instead.

The problem is fairly obvious in this example, because the formula is short. Though if we tested only the first two cases, then it is likely that the problem would not emerge until later. Even then, it might not be immediately recognized because the formula returns a number for the 6 months starting quarter 3, albeit a number that is too low.

But in a long and complex formula – the kind of formula where new lines and indentation could be useful – such an error can be hard to find. That's why it is best to not include spaces and new lines in formulae.

As an aside, having two quarters named 1 is not good. It doesn't cause a problem in this example, but nonethless it would be a good idea to improve the naming to eliminate the ambiguity.