Explainer

Operators

Operators are the symbols in a formula that calculate, compare, join text or combine references. Excel applies them in a fixed order, which explains many results that look wrong.

Last updated: 14 October 2026

Explains: operator

What it is: An operator is a symbol such as +, > or & between two values. Excel works them out one by one in a fixed order: =2+3*4 gives 14, because * goes before +.

Why it matters: Every formula an auditor writes is built from them, for example + and * to recalculate VAT or = and > to flag an amount above materiality. They look harmless, but two things go wrong in practice: Excel applies them in an order that is not left to right, and a value of the wrong type (text where a number is expected, TRUE where a 1 is expected) changes the outcome without an error.

What operators are

An operator is a symbol in a formula that tells Excel what to do with the values on either side of it. For example:

  • the + in =B2+C2 adds
  • the = in =B2=C2 compares
  • the & in =B2&C2 joins text
  • the colon in B2:C9 turns two cell addresses into a range

Besides numbers, texts, references, names and function names, a formula consists mostly of operators and brackets.

Excel has four families, each with its own kind of result:

  • arithmetic operators: a number
  • comparison operators: TRUE or FALSE
  • one text operator: text
  • the reference operators: a reference

When several operators stand in one formula, Excel does not read from left to right but in a fixed order, which is the part that causes most wrong results.

Try it yourself

Type a comparison operator with 1000 and see which amounts COUNTIF counts.

Sheet excerpt: E2 holds the formula
RowABCDE
1Entry no.Amount
225-04011,2501.250Matches33=COUNTIF(B2:B8, "x")=COUNTIF(B2:B8; "x")
325-0402840840
425-04031,0001.000
525-04042,4002.400
625-0405400400
725-04061,0001.000
825-04071,6501.650
Formula cell (E2)
  • Formula cell
  • Meets the criterion

=COUNTIF(B2:B8, ">1000")
=COUNTIF(B2:B8; ">1000")

Result: 33

Arithmetic operators

Arithmetic operators work on numbers and give a number. The percent sign deserves attention: 21% is not a format, it is the number 0.21, so =B2*21% and =B2*0.21 are the same formula.

Text that looks like a number, such as "100", is converted in arithmetic, so ="100"+1 gives 101. Text that cannot be converted gives #VALUE!.

OperatorMeaningExampleResult
+Add=5+38
-Subtract, or negate a single value=5-32
*Multiply=5*315
/Divide (dividing by 0 gives #DIV/0!)=6/41.5
^Raise to a power=2^38
%Divide by 100=21%0.21

Comparison operators

A comparison gives TRUE or FALSE, or passes on an error value if one of the values is an error. Text is compared without regard to upper and lower case, so ="vrk"="VRK" is TRUE.

Between types the order is fixed: every number is smaller than every text, and every text is smaller than TRUE. That is why ="a">100 is TRUE.

A comparison does not convert text to a number, which is the opposite of arithmetic. ="100"=100 is FALSE because one side is text and the other a number, while ="100"+0=100 is TRUE.

The same sign has two jobs in a formula: the first = only announces that a formula follows, any further = compares. In =A2=B2 Excel compares A2 with B2 and shows TRUE or FALSE.

OperatorMeaningExampleResult
=Equal to=5=5TRUE
<>Not equal to=5<>5FALSE
<Less than=3<5TRUE
>Greater than=3>5FALSE
<=Less than or equal to=5<=5TRUE
>=Greater than or equal to=3>=5FALSE
=C2>=E1
=C2>=E1

A flag for one row: TRUE when the amount in C2 reaches the threshold in E1. Fill it down to get a flag column.

=COUNTIF(C2:C100, ">" & E1)
=COUNTIF(C2:C100; ">" & E1)

In the criteria of COUNTIF and SUMIF the operator is part of a text, which is why it sits in quotes and is joined to the cell with &.

Joining text with &

The ampersand joins two values into one text: =A2&"|"&B2 puts the contents of A2, a bar and the contents of B2 behind each other. It is the usual way to build a key from two columns or a search pattern with an asterisk.

Numbers and dates are turned into text on the way, so the result is always text, even if it looks like a number.

The conversion uses the regional setting of the computer that calculates. A number such as 1089.5 becomes "1089.5" under English settings and "1089,5" under Dutch settings, so a key built on one machine can differ from the same key built on another.

A date joins as its serial number (31 Dec 2025 becomes "46022"); use the TEXT function when you need a readable date inside the text.

=A2 & "|" & B2
=A2 & "|" & B2

A key from two columns. The bar cannot occur in the codes, so two different pairs never produce the same key.

=TEXT(A2, "dd-mm-yyyy") & " " & B2
=TEXT(A2; "dd-mm-yyyy") & " " & B2

TEXT turns a date into readable text before it is joined. The format code differs per language, so it is a placeholder.

Reference operators

Reference operators combine cell addresses into a larger reference instead of calculating with values:

  • the colon makes a range
  • the list separator makes a union: one reference built from separate pieces
  • a single space makes an intersection: only the cells the two references share

The union operator is the list separator of your regional settings: a comma under English settings, a semicolon under Dutch settings. It is the same character that separates function arguments, so a union inside a function must sit between its own pair of brackets, as in =SUM((A2:A9,C2:C9)).

Without the extra brackets Excel reads two arguments, which is also valid but a different construction.

The # and @ signs are newer. A reference followed by # points to the complete spill range of the formula in that cell, so it grows and shrinks with the result.

A @ in front of a reference asks for one value only (implicit intersection): Excel picks the cell in the same row or column as the formula. Excel adds @ itself when it opens an older workbook where a formula used to return one value.

OperatorNameExampleResult
:RangeA2:A9All cells from A2 to A9
, (English settings)Union(A2:A9,C2:C9)Both pieces as one reference
spaceIntersectionB2:B9 A5:D5Only B5, the cell both share
#Spill referenceF2#The whole spill range of the formula in F2
@Implicit intersection@A2:A9One value, from the formula's own row
=SUM((A2:A9, C2:C9))
=SUM((A2:A9; C2:C9))

A union inside the extra brackets is one argument: the sum of both ranges.

=SUM(B2:B9 A5:D5)
=SUM(B2:B9 A5:D5)

The intersection of column B and row 5 is B5, so this returns the value of B5.

=SUM(F2#)
=SUM(F2#)

Adds the whole spill range of the formula in F2, however many rows it has today.

The order Excel applies them

Watch out: Negation comes before ^, so =-2^2 is 4 (the square of -2), not -4. For -4 write =-(2^2) or =0-2^2.

Excel works through the operators in the order of the table, from step 1 to step 8. Operators in the same step are applied from left to right, so =10-4-3 is 3, not 9.

Parentheses override the order: Excel always evaluates what is between brackets first, innermost pair first. That is the cure for most precedence mistakes. Write the brackets even when the order would be right without them; a reviewer does not have to remember the table.

A comparison comes last, so in =A2+B2>C2 the sum is calculated before it is compared with C2.

StepOperatorExampleResult
1: space and the list separatorA1:A3 A2:B3A2:A3
2- (negation)=-2^24
3%=10%^20.01
4^=2*3^218
5* /=2+3*414
6+ -=10-4-33
7&="A"&1+2A3
8= <> < > <= >==1+1=2TRUE
=B2*(1+21%)
=B2*(1+21%)

Gross amount: the brackets make Excel add 1 and 21% first, then multiply.

=B2*1+21%
=B2*1+21%

Wrong for the same task: the multiplication goes first, so 0.21 is added to the net amount instead of 21% of it.

TRUE and FALSE in calculations

In arithmetic TRUE counts as 1 and FALSE as 0: =TRUE+1 is 2 and =(A2>100)*B2 is B2 when A2 is above 100 and 0 otherwise. This is how conditions are multiplied (AND) or added (OR) inside one formula.

It does not work everywhere: SUM and the other aggregate functions ignore TRUE and FALSE that they find in a range, and SUMPRODUCT treats an array of TRUE and FALSE that stands on its own as zeros.

The double unary, two minus signs in a row, forces the conversion. The first - turns TRUE into -1, the second turns it back into 1, so --(A2:A9>100) is an array of ones and zeros that SUMPRODUCT can add. Multiplying by 1 or adding 0 has the same effect.

When the conditions are joined with *, as in (A2:A9>100)*(B2:B9="MEM"), the multiplication already does the conversion and no -- is needed.

=SUMPRODUCT(--(C2:C100>E1))
=SUMPRODUCT(--(C2:C100>E1))

Counts the cells in C2:C100 above the threshold in E1: the comparison gives TRUE and FALSE, -- turns them into 1 and 0.

=SUMPRODUCT((B2:B100="MEM")*(C2:C100>E1)*C2:C100)
=SUMPRODUCT((B2:B100="MEM")*(C2:C100>E1)*C2:C100)

Adds the amounts that meet both conditions. Each * both combines the conditions and converts them.

Worked examples

Example1 of 4Beginner

Recalculate the VAT-inclusive total of four sales invoices

You are auditing Veldhuis Installatie BV and test four sales invoices from December 2025. Column B holds the net amounts and column C the amounts including 21% VAT as booked in the ledger. You recalculate the gross total from the net amounts in one cell and compare it with what was booked.

Sheet excerpt: E1 holds the formula
RowABCDEF
1Invoice no.Net amountBooked incl. VATRecalculated gross€9,425.90€ 9.425,90=SUM(B2:B5)*(1+21%)=SUM(B2:B5)*(1+21%)
2VRK-2511€2,450.00€ 2.450,00€2,964.50€ 2.964,50
3VRK-2512€1,180.00€ 1.180,00€1,427.80€ 1.427,80
4VRK-2513€860.00€ 860,00€1,040.60€ 1.040,60
5VRK-2514€3,300.00€ 3.300,00€3,939.00€ 3.939,00
6
Formula cell (E1)Input

Formula in E1

=SUM(B2:B5)*(1+21%)
=SUM(B2:B5)*(1+21%)

Result: €9,425.90€ 9.425,90

Step by step
  1. SUM(B2:B5) adds the four net amounts: 2,4502.450 + 1,1801.180 + 860 + 3,3003.300 = 7,7907.790.
  2. The brackets are evaluated before the multiplication. Inside them, 21% is first read as 0.21 (the percent sign is step 3), and then 1 + 0.21 = 1.21.
  3. Now the multiplication: 7,7907.790 × 1.21 = 9,425.909.425,90. That is the recalculated gross total in E1.
  4. The booked amounts in C2:C5 add up to 2,964.502.964,50 + 1,427.801.427,80 + 1,040.601.040,60 + 3,939.003.939,00 = 9,371.909.371,90, which is 54.00 less. Per invoice, 3,3003.300 × 1.21 = 3,993.003.993,00, but VRK-2514 was booked at 3,939.003.939,00: two digits were swapped.

Watch out: Without brackets, =SUM(B2:B5)*1+21% multiplies by 1 first and then adds 0.21, so the result is 7,790.217.790,21: almost the net total, with no VAT.

More on this example: why it works, 1 more pitfall, 2 variations

Why it works

Multiplication comes before addition, so the brackets decide what is multiplied. With =SUM(B2:B5)*(1+21%) the factor 1.21 is applied to the whole net total.

The percent sign is an operator of its own that divides by 100, which is why 21% can stand in a formula like any number.

More to watch out for

  • The formula assumes one rate. Invoices at 9% need their own rate, so check the VAT code of each invoice before you apply 21% to a total.

Variations

=SUM(B2:B5)*21%
=SUM(B2:B5)*21%

Only the VAT amount: 1,635.901.635,90. Compare it with the credit side of account 1800 Te betalen btw.

=SUM(C2:C5)-SUM(B2:B5)*(1+21%)
=SUM(C2:C5)-SUM(B2:B5)*(1+21%)

The difference to investigate: -54.00. The subtraction comes last, after both sides are calculated.

Example2 of 4Intermediate

Count manual journal entries above a threshold

For journal entry testing at Veldhuis Installatie BV you want to know how many manual entries (journal MEM) are above the amount in E1, which is your threshold for a detailed review. The sheet is a small extract of the journal lines. You want the count in one cell, without a helper column.

Sheet excerpt: E2 holds the formula
RowABCDEF
1Entry no.JournalAmountThreshold€10,000.00€ 10.000,00
225-0412VRK€18,150.00€ 18.150,00Manual entries above22=SUMPRODUCT(--(B2:B8="MEM"), --(C2:C8>E1))=SUMPRODUCT(--(B2:B8="MEM"); --(C2:C8>E1))
325-0418MEM€12,500.00€ 12.500,00
425-0431INK€7,260.00€ 7.260,00
525-0437MEM€4,800.00€ 4.800,00
625-0445MEM€10,000.00€ 10.000,00
725-0452BNK€15,000.00€ 15.000,00
825-0460MEM€31,460.00€ 31.460,00
9
Formula cell (E2)Input

Formula in E2

=SUMPRODUCT(--(B2:B8="MEM"), --(C2:C8>E1))
=SUMPRODUCT(--(B2:B8="MEM"); --(C2:C8>E1))

Result: 22

Step by step
  1. B2:B8="MEM" compares each journal code with MEM, without regard to case. The seven answers are FALSE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE.
  2. C2:C8>E1 compares each amount with 10,00010.000:

    • 18,15018.150: TRUE
    • 12,50012.500: TRUE
    • 7,2607.260: FALSE
    • 4,8004.800: FALSE
    • 10,00010.000: FALSE (equal is not greater)
    • 15,00015.000: TRUE
    • 31,46031.460: TRUE
  3. Each -- turns TRUE into 1 and FALSE into 0. The first array becomes 0, 1, 0, 1, 1, 0, 1 and the second 1, 1, 0, 0, 0, 1, 1.
  4. SUMPRODUCT multiplies the arrays item by item: 0, 1, 0, 0, 0, 0, 1. Adding them gives 2: entries 25-0418 and 25-0460.
  5. Change E1 to 4,0004.000 and the answer becomes 4, because 25-0437 and 25-0445 join the count: the threshold is read live.

Watch out: Entry 25-0445 is exactly 10,00010.000 and is not counted, because > excludes the threshold. If the review rule says "10,00010.000 or more", use >=; the count then becomes 3.

More on this example: why it works, 1 more pitfall, 2 variations

Why it works

A comparison gives TRUE or FALSE, and SUMPRODUCT can only add numbers. The double unary converts each result to 1 or 0, and multiplying two arrays of ones and zeros keeps a 1 only where both conditions hold. That is an AND without IF.

More to watch out for

  • Leave out the -- and write =SUMPRODUCT(B2:B8="MEM", C2:C8>E1): the arrays hold TRUE and FALSE, SUMPRODUCT treats those as zeros, and the result is 0 without any warning.

Variations

=SUMPRODUCT((B2:B8="MEM")*(C2:C8>E1))
=SUMPRODUCT((B2:B8="MEM")*(C2:C8>E1))

The same count with * between the conditions. The multiplication converts, so no -- is needed.

=COUNTIFS(B2:B8, "MEM", C2:C8, ">" & E1)
=COUNTIFS(B2:B8; "MEM"; C2:C8; ">" & E1)

COUNTIFS gives 2 as well and is shorter. Prefer SUMPRODUCT when a condition is a calculation, such as the month of a date.

Example3 of 4Advanced

Find duplicate supplier invoices with a combined key

In the purchase journal of Veldhuis Installatie BV you suspect a supplier invoice was booked twice. An invoice number alone is not unique, since two suppliers can use the same number, so the combination of creditor number and invoice number is the key. E1 holds the key you test.

Sheet excerpt: E2 holds the formula
RowABCDEF
1Creditor no.Invoice no.AmountKey to testC2003|F-7781
2C2001F-1042€2,420.00€ 2.420,00Times booked22=SUMPRODUCT(--(A2:A8 & "|" & B2:B8 = E1))=SUMPRODUCT(--(A2:A8 & "|" & B2:B8 = E1))
3C2003F-7781€1,089.00€ 1.089,00
4C2002F-3310€6,050.00€ 6.050,00
5C2003F-7781€1,089.00€ 1.089,00
6C2004F-0420€847.00€ 847,00
7C2001F-1043€2,420.00€ 2.420,00
8C2005F-7781€3,630.00€ 3.630,00
9
Formula cell (E2)Input

Formula in E2

=SUMPRODUCT(--(A2:A8 & "|" & B2:B8 = E1))
=SUMPRODUCT(--(A2:A8 & "|" & B2:B8 = E1))

Result: 22

Step by step
  1. E1 holds the key C2003|F-7781: creditor, a bar and invoice number.
  2. The & operators are applied before the comparison (step 7 before step 8). A2:A8 & "|" & B2:B8 builds seven keys:

    • C2001|F-1042
    • C2003|F-7781
    • C2002|F-3310
    • C2003|F-7781
    • C2004|F-0420
    • C2001|F-1043
    • C2005|F-7781
  3. The = compares every key with E1 without regard to case: FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, FALSE.
  4. -- converts these to 0, 1, 0, 1, 0, 0, 0 and SUMPRODUCT adds them: 2. Rows 3 and 5 (1,089.001.089,00 each) are the same invoice booked twice.
  5. Row 8 (C2005, F-7781) has the same invoice number but another supplier, and row 7 (C2001, F-1043) has the same amount as row 2 for another invoice. Neither is a duplicate, and the combined key correctly leaves them out.

Watch out: Testing the invoice number alone, =COUNTIF(B2:B8, "F-7781"), gives 3 and flags a supplier that did nothing wrong. The creditor number has to be part of the key.

More on this example: why it works, 1 more pitfall, 2 variations

Why it works

The & operator joins two columns into one text per row, and because it is applied before the comparison, the whole test fits in one formula. Joining with a character that does not occur in the codes keeps different pairs from producing the same key.

More to watch out for

  • If you add the amount to the key, the number is turned into text with the regional setting: 1089.5 becomes "1089,5" on a Dutch computer, so keys built on different computers no longer match.

    TEXT(C2, "0.00") does not solve this, because the format code itself depends on the language of Excel. Use the amount in whole cents, ROUND(C2*100, 0), which has no decimal separator, or leave the amount out of the key.

Variations

=A2 & "|" & B2
=A2 & "|" & B2

A helper column with the key per row (C2003|F-7781 in row 3). Useful when you want to filter on the key or to check it by eye.

=SUMPRODUCT((A2:A8="C2003")*(B2:B8="F-7781"))
=SUMPRODUCT((A2:A8="C2003")*(B2:B8="F-7781"))

The same count with two separate comparisons joined by *. Fine for one fixed pair; with the key in E1 you change only one cell.

Example4 of 4Master

Add up manual year-end entries in period 12 or 13

Part of the postings of Veldhuis Installatie BV for 2025 are made in period 13, the adjustment period after the regular month of December. You want the total of the manual entries (journal MEM) in period 12 or 13. A condition with OR has to sit inside conditions with AND, so the order of the operators matters.

Sheet excerpt: G1 holds the formula
RowABCDEFGH
1Entry no.JournalPeriodAmountManual, period 12 or 13€30,870.00€ 30.870,00=SUMPRODUCT((B2:B9="MEM")*((C2:C9=12)+(C2:C9=13))*D2:D9)=SUMPRODUCT((B2:B9="MEM")*((C2:C9=12)+(C2:C9=13))*D2:D9)
225-0701MEM1212€4,500.00€ 4.500,00
325-0702VRK1212€9,075.00€ 9.075,00
425-0703MEM1111€2,200.00€ 2.200,00
525-0704MEM1313€18,300.00€ 18.300,00
625-0705INK1313€1,210.00€ 1.210,00
725-0706MEM1212€650.00€ 650,00
825-0707MEM1313€7,420.00€ 7.420,00
925-0708BNK1212€5,000.00€ 5.000,00
10
Formula cell (G1)Input

Formula in G1

=SUMPRODUCT((B2:B9="MEM")*((C2:C9=12)+(C2:C9=13))*D2:D9)
=SUMPRODUCT((B2:B9="MEM")*((C2:C9=12)+(C2:C9=13))*D2:D9)

Result: €30,870.00€ 30.870,00

Step by step
  1. (B2:B9="MEM") gives 1, 0, 1, 1, 0, 1, 1, 0 for the eight rows (TRUE becomes 1 as soon as it is multiplied).
  2. Inside the inner brackets, (C2:C9=12) gives 1, 1, 0, 0, 0, 1, 0, 1 and (C2:C9=13) gives 0, 0, 0, 1, 1, 0, 1, 0. The + adds them: 1, 1, 0, 1, 1, 1, 1, 1. A period cannot be both 12 and 13, so the sum is always 0 or 1 and works as OR.
  3. The first factor times this OR gives 1, 0, 0, 1, 0, 1, 1, 0: only the manual entries in period 12 or 13 are left (rows 2, 5, 7 and 8 of the sheet).
  4. Multiplied by the amounts in D2:D9 this keeps 4,5004.500, 18,30018.300, 650 and 7,4207.420. SUMPRODUCT adds them: 4,5004.500 + 18,30018.300 + 650 + 7,4207.420 = 30,87030.870.

Watch out: Drop the inner brackets and write (B2:B9="MEM")*(C2:C9=12)+(C2:C9=13)*D2:D9. The multiplication goes first, so every period 13 line is added in full, including the INK line, and a stray 1 is added for each MEM line in period 12. The result is 26,93226.932 instead of 30,87030.870, and nothing in the cell shows it.

More on this example: why it works, 1 more pitfall, 1 variation

Why it works

In a formula the comparison comes last, and * comes before +. Conditions that you multiply act as AND, conditions that you add act as OR, and the brackets around the added pair make the OR a single factor. The comparisons stand in brackets of their own, because otherwise the = would only be applied after the arithmetic around it.

More to watch out for

  • Adding conditions only works as OR when they cannot both be true. With overlapping conditions a line can count twice (2), so wrap the added part in --(... > 0) or use another construction.

Variations

=SUM(SUMIFS(D2:D9, B2:B9, "MEM", C2:C9, {12,13}))
=SUM(SUMIFS(D2:D9; B2:B9; "MEM"; C2:C9; {12\13}))

SUMIFS also handles periods that are not next to each other: the array constant {12,13} makes it run once per period and SUM adds the two results: 30,87030.870. Use it when SUMIFS can express every condition.

Common mistakes

Common mistakes
SymptomCauseFix
=-2^2 shows 4, not -4=-2^2 shows 4, although you expected -4.

Brackets decide the order, so write =-(2^2) for -4.

The same holds for a reference: =-A2^2 is the square of -A2, so it is never negative. Write =-(A2^2) for the negative square.

A VAT formula gives almost the net amount, not the gross amount=B2*1+21% gives almost the net amount instead of the gross amount.The multiplication goes before the addition, so 0.21 is added to the amount. Write =B2*(1+21%), or =B2+B2*21% if you want the VAT visible as a separate part.
=A2=100 shows FALSE although A2 shows 100=A2=100 shows FALSE, although A2 clearly shows 100.

The cell holds the text "100", often from an export, and a comparison does not convert text to a number. To handle it:

  • test with ISNUMBER or ISTEXT
  • convert with --A2 or VALUE(A2)
  • for text with a locale-dependent notation, use NUMBERVALUE

Arithmetic does convert, so =A2+0=100 is TRUE.

A key built with & looks like a number, but SUM returns 0A key built with & looks like a number, but SUM returns 0 and a comparison with a number is FALSE.The ampersand always returns text, so =A2&B2 with 12 and 5 gives the text "125". Convert back with --(A2&B2) when you need a number, and decide in advance whether a key is meant to be text.
SUMPRODUCT with two conditions returns 0 although lines meet bothSUMPRODUCT(B2:B9="MEM", C2:C9>E1) returns 0 although some lines meet both conditions.The arguments are arrays of TRUE and FALSE, which SUMPRODUCT treats as zeros. Convert them with -- in front of each comparison, or join the comparisons with * inside one argument.
A copied English formula gives an error in Dutch ExcelA formula copied from an English example gives an error in Dutch Excel, or two ranges are read as two arguments.The list separator is a comma in English settings and a semicolon in Dutch settings, for arguments and for the union operator alike. Type the formula with the separator of your own settings, and keep a union inside its own brackets: =SUM((A2:A9,C2:C9)).

Back to the glossary