TEXT
TEKST in Dutch Excel
Turns a number or date into text, formatted the way a format code describes, so it can appear inside labels, keys and sentences.
Last updated: 13 October 2026
| Row | A | B | C | D |
|---|---|---|---|---|
| 1 | Relation | Customer | Balance | Balance as text |
| 2 | D1001 | Dekker Installatietechniek BV | 12480.512480,5 | 12,480.50=TEXT(C2, "#,##0.00")=TEXT(C2; "#,##0.00") |
| 3 | D1002 | Bakkerij Jansen | 978.4978,4 | |
| 4 | D1003 | Van Dijk Groenvoorziening | 3150.253150,25 | |
| 5 | D1004 | Studio Mulder | 64.964,9 |
Swipe sideways to see all columns
Result: 12,480.50
=TEXT(C2,"#,##0.00")
=TEXT(C2;"#,##0.00")
What TEXT does and when to use it
What it does: it turns a number or date into text in the format you choose, for example 12480.5 into '12,480.50' or a date into '2026-09'.
When to use it: whenever you join a number or date to other text with &, which otherwise shows the raw value, such as the serial number 46295 for a date. If the number only has to look different in its own cell, give that cell a custom number format instead: the value stays a number you can add up.
How Excel evaluates it
Excel reads value as a number, and then:
- it reads format_text and interprets each code character (0, #, separators, date letters) in the language of your Excel
- it rounds the number to the decimals the code asks for
- it builds the text character by character, using your regional settings for the decimal and thousands signs and your Excel language for day and month names
The result is a text value, aligned left, even when it looks exactly like a number.
The format codes on this page are written for the page language; they follow the Excel language and the decimal setting, not the formula format chosen in the header.
Watch out: TEXT returns text, not a number: SUM ignores the result and it no longer sorts as a number.
Mental model
A label printer: you feed it a number and a template, it prints a sticker. The sticker looks like the number, but you cannot do sums with a sticker.
Terms used on this page: serial number, cell
TEXT(value,format_text)
TEXT(value;format_text)
| Argument | Type | Meaning |
|---|---|---|
value | Required | The number or date to turn into formatted text. |
format_text | Required | A format code in quotes; Dutch Excel uses its own letters (jjjj, uu). |
Return value:Text: the number formatted with the format code
Formulas use commas (,) between arguments, as in English Excel. Formulas use semicolons (;) between arguments, as in Dutch Excel. Formulas use commas (,) between arguments, as in English Excel; Dutch Excel uses semicolons (;).
Worked examples
Beginner
Show a receivable balance with separators and decimals
You are preparing balance confirmation letters (saldobevestigingen) from the client's receivables aging list. The balance of customer D1001 is stored as 12480.5. For the letter you need that amount as text with a thousands separator and two decimals, exactly as the customer expects to read it.
| Row | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Relation | Customer | Balance | Balance as text | |
| 2 | D1001 | Dekker Installatietechniek BV | 12480.512480,5 | 12,480.50=TEXT(C2, "#,##0.00")=TEXT(C2; "#,##0.00") | |
| 3 | D1002 | Bakkerij Jansen | 978.4978,4 | ||
| 4 | D1003 | Van Dijk Groenvoorziening | 3150.253150,25 | ||
| 5 | D1004 | Studio Mulder | 64.964,9 | ||
| 6 |
Swipe sideways to see all columns
Formula in D2
=TEXT(C2,"#,##0.00")
=TEXT(C2;"#,##0.00")
Result: 12,480.50
Step by step
- Excel reads
C2: the number 12480.5. It reads the format code
#,##0.00:- the comma between # and ## asks for a thousands separator
- the 0 before the point guarantees at least one digit
.00asks for exactly two decimals
- 12480.5 has one decimal, so Excel pads it to two:
12480.50. It inserts the separator after the thousands:12,480.50. - The result is the text
12,480.50, aligned left inD2. It is 9 characters long, not a number. - Copy the formula to
D3andC3(978.4) becomes978.40: no separator is needed below 1,0001.000, and the 0 places still force two decimals.
Watch out: SUM(D2:D5) returns 0, because every cell in column D holds text. Reconcile with column C, not with the formatted copy.
More on this example: why it works
Why it works
Each character in the code has one job: # and 0 hold digit places, the separators say where to group and where the decimals start, and the number of 0 places after the decimal sign fixes the decimals. A Dutch regional setting reads the same pattern with the signs swapped, which is why the code itself can differ between the two settings.
Intermediate
Build fixed-width invoice keys with leading zeros
You match invoices between the sales subledger and the general ledger. The subledger stores invoice numbers as plain numbers: 38, 815, 4217. The general ledger uses text keys like VRK-000038, always six digits after the prefix.
The formula in D3 builds the key for the invoice in row 3. One invoice, imported from an older system, has a seven-digit number.
| Row | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Invoice no. | Relation | Amount | Ledger key | |
| 2 | 42174217 | D1008 | €2,450.00€ 2.450,00 | ||
| 3 | 3838 | D1001 | €12,480.50€ 12.480,50 | VRK-000038="VRK-" & TEXT(A3, "000000")="VRK-" & TEXT(A3; "000000") | |
| 4 | 815815 | D1015 | €978.40€ 978,40 | ||
| 5 | 12345671234567 | D1022 | €3,150.25€ 3.150,25 | ||
| 6 |
Swipe sideways to see all columns
Formula in D3
="VRK-" & TEXT(A3,"000000")
="VRK-" & TEXT(A3;"000000")
Result: VRK-000038
Step by step
- Excel evaluates TEXT(A3, "000000") first.
A3holds the number 38. - Every 0 in the code is a digit place that is always shown. There are 6 places and 38 fills 2 of them, so the other 4 become zeros:
000038. - The & operator joins the prefix to the padded text:
VRK-and000038giveVRK-000038. - Without TEXT, "VRK-" & A3 gives
VRK-38: & converts the number to text but has no way to add the zeros, so the key never matches the ledger. - The same formula applied to
A5, the 7-digit number 1234567, would giveVRK-1234567. The zeros set a minimum width, not a maximum, so TEXT never cuts digits off.
Watch out: VRK-1234567 is 11 characters, not 10. It will not match a six-digit key in the general ledger: check the length of such keys with LEN and follow up the source number with the client; TEXT will not warn you.
More on this example: why it works, 1 more pitfall, 1 variation
Why it works
0 in a format code means 'always show a digit here', so a code of six zeros forces six characters for any number up to 999999.
Joining the result to the prefix produces a text key in the exact shape the general ledger uses, so a lookup can match both sides.
More to watch out for
- If you need the padded number in its own cell only, a custom number format
000000on column A shows000038and keeps the value 38 as a number.
Variations
=TEXT(A3,"000000")
=TEXT(A3;"000000")
The padded number without a prefix, 000038, for a ledger export that stores the six digits only.
Advanced
Total one month of postings using a year-month text key
For the cut-off test around year end 31 December 2025 you have the journal lines of account 4500 Huisvestingskosten. A test cell must total the debit of the month typed as a key in F1, in the form 2025-12. The key in F1 is stored as text.
Postings on 30 November and 1 January sit one day either side of the month.
| Row | A | B | C | D | E | F | G |
|---|---|---|---|---|---|---|---|
| 1 | Date | Entry no. | Debit | Month key | 2025-12 | ||
| 2 | 28 Nov 2025 | 25-1180 | €1,250.00€ 1.250,00 | Total | €13,150.00€ 13.150,00=SUMPRODUCT((TEXT(A2:A8, "yyyy-mm") = F1) * C2:C8)=SUMPRODUCT((TEXT(A2:A8; "yyyy-mm") = F1) * C2:C8) | ||
| 3 | 30 Nov 2025 | 25-1204 | €830.00€ 830,00 | ||||
| 4 | 1 Dec 2025 | 25-1231 | €4,100.00€ 4.100,00 | ||||
| 5 | 15 Dec 2025 | 25-1290 | €2,300.00€ 2.300,00 | ||||
| 6 | 31 Dec 2025 | 25-1342 | €6,750.00€ 6.750,00 | ||||
| 7 | 1 Jan 2026 | 26-0001 | €1,900.00€ 1.900,00 | ||||
| 8 | 12 Jan 2026 | 26-0047 | €3,400.00€ 3.400,00 | ||||
| 9 |
Swipe sideways to see all columns
Formula in F2
=SUMPRODUCT((TEXT(A2:A8,"yyyy-mm") = F1) * C2:C8)
=SUMPRODUCT((TEXT(A2:A8;"yyyy-mm") = F1) * C2:C8)
Result: €13,150.00€ 13.150,00
Step by step
- Excel evaluates TEXT over the whole range
A2:A8with the codeyyyy-mmand gets seven keys: {"2025-11"; "2025-11"; "2025-12"; "2025-12"; "2025-12"; "2026-01"; "2026-01"}. - The codes differ between languages (
yyyy-mmversusjjjj-mm), but the keys they produce are identical, so the sameF1works in both. - Each key is compared with
F1,2025-12: {FALSE; FALSE; TRUE; TRUE; TRUE; FALSE; FALSE}. 30 November and 1 January, one day either side of the month, are both FALSE. - Multiplying by
C2:C8keeps only the December debits: {0; 0; 4,1004.100; 2,3002.300; 6,7506.750; 0; 0}. - SUMPRODUCT adds them: 4,1004.100 + 2,3002.300 + 6,7506.750 = 13,15013.150. Change
F1to2026-01and the total becomes 1,9001.900 + 3,4003.400 = 5,3005.300.
Watch out: Type 2025-12 into F1 without the apostrophe and Excel stores it as the date 1 December 2025. A number never equals a text key, so the total silently becomes 0.
More on this example: why it works, 1 more pitfall, 2 variations
Why it works
TEXT turns every date into the same kind of key as F1, so a plain equality test can pick the month, whatever day of the month each posting fell on.
SUMPRODUCT is needed because SUMIFS cannot apply TEXT to its criteria range; it only compares the cells as they are.
More to watch out for
- Excel does not translate format codes inside a formula when a workbook moves between languages. A formula written as
jjjj-mmin Dutch Excel no longer produces2025-12in English Excel, and the total drops to 0 or turns into an error.
Variations
=SUMIFS(C2:C8,A2:A8, ">="&DATE(2025, 12, 1), A2:A8, "<="&EOMONTH(DATE(2025, 12, 1), 0))
=SUMIFS(C2:C8;A2:A8; ">="&DATE(2025; 12; 1); A2:A8; "<="&EOMONTH(DATE(2025; 12; 1); 0))
Date bounds instead of a text key: no format codes, so it works the same in every Excel language, and SUMIFS is faster on large journal files.
=TEXT(A4,"mmmm yyyy")
=TEXT(A4;"mmmm yyyy")
A readable label for the workpaper heading: December 2025. The month name follows the Excel language, so Dutch Excel shows december 2025.
MasterExcel 2021 or later (This example needs Excel 2021 or later)
Signed difference label with three-section format codes
You reconcile each general ledger account to the client's specification and want a label such as -7,4007.400 (-6.2%) in the workpaper: the ledger balance minus the specification, with an explicit plus or minus sign and the percentage in brackets. No difference must read 0 (0.0%), and an account with a zero specification must not show #DIV/0!.
| Row | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Account | Specification | Ledger | Difference | |
| 2 | 1100 Bank | €48,000.00€ 48.000,00 | €51,250.00€ 51.250,00 | ||
| 3 | 1300 Debiteuren | €120,000.00€ 120.000,00 | €112,600.00€ 112.600,00 | -7,400 (-6.2%)=LET( spec, B3, ledger, C3, diff, ledger - spec, pct, IF(spec = 0, 0, diff / spec), TEXT(diff, "+#,##0;-#,##0;0") & TEXT(pct, " (+0.0%); (-0.0%); (0.0%)") )=LET( spec; B3; ledger; C3; diff; ledger - spec; pct; IF(spec = 0; 0; diff / spec); TEXT(diff; "+#,##0;-#,##0;0") & TEXT(pct; " (+0.0%); (-0.0%); (0.0%)") ) | |
| 4 | 1600 Crediteuren | €86,500.00€ 86.500,00 | €86,500.00€ 86.500,00 | ||
| 5 | 1800 Te betalen btw | €35,000.00€ 35.000,00 | €36,120.00€ 36.120,00 | ||
| 6 |
Swipe sideways to see all columns
Formula in D3
=LET( spec,B3, ledger, C3, diff, ledger - spec, pct, IF(spec = 0, 0, diff / spec), TEXT(diff, "+#,##0;-#,##0;0") & TEXT(pct, " (+0.0%); (-0.0%); (0.0%)") )
=LET( spec;B3; ledger; C3; diff; ledger - spec; pct; IF(spec = 0; 0; diff / spec); TEXT(diff; "+#,##0;-#,##0;0") & TEXT(pct; " (+0.0%); (-0.0%); (0.0%)") )
Result: -7,400 (-6.2%)
Step by step
- LET names the inputs: spec is
B3, 120,000120.000, and ledger isC3, 112,600112.600. diff = 112,600112.600 - 120,000120.000 = -7,4007.400. - IF checks spec = 0, which is FALSE, so pct = -7,4007.400 / 120,000120.000 = -0.061666...
The first TEXT uses a code with three sections separated by semicolons: positive, negative, zero.
diff is negative, so Excel uses the second section,
-#,##0. A code section for negatives shows the value without its sign, so the - in the section supplies it:-7,400.- The second TEXT also picks its negative section,
(-0.0%). The % multiplies by 100 and one decimal is kept: -6.1666... rounds to 6.2, giving(-6.2%)with a leading space. - & joins the two texts: -7,4007.400 (-6.2%). Copied to the 1600 Crediteuren row, diff is 0, the third sections apply and the label reads 0 (0.0%); 1100 Bank gets +3,2503.250 (+6.8%).
Watch out: The mirror-image mistake: a code such as +#,##0;#,##0 has a negative section without a minus, so -7,4007.400 is shown as 7,4007.400. The label looks tidy and reports a ledger that is too low as one that is too high, or the other way round.
More on this example: why it works, 1 more pitfall, 1 variation
Why it works
A format code can hold up to three sections, and Excel picks one by the sign of the value, so one code handles surplus, shortfall and zero without an IF. Literal characters such as +, -, brackets and spaces are printed as they are. LET computes diff once and names the rule, and the IF on the specification handles the division edge case before TEXT sees it.
Do not use this when the difference must stay a number for totals, charts or conditional formatting: put the same code on the cell as a custom number format instead. That also survives a switch between Dutch and English Excel, because Excel translates cell formats but not the codes inside a TEXT formula.
More to watch out for
- Rounding happens only in the text. A difference of -0.04% shows as (-0.0%) in the second section, not 0 (0.0%), because the value is not zero; round pct with ROUND first if tiny differences should read as zero.
Variations
=TEXT(C3 - B3,"+#,##0;-#,##0;0")
=TEXT(C3 - B3;"+#,##0;-#,##0;0")
Only the signed amount, -7,4007.400, when the workpaper has a separate percentage column.
Common mistakes
| Symptom | Cause | Fix |
|---|---|---|
| Totals over the formatted column are 0 | Formatting a column of amounts with TEXT and then using that column in totals, which come out as 0. | Keep the numbers as numbers and format the cells instead; use TEXT only where the number is joined to other text. |
| yyyy appears instead of the year | Copying a formula with "dd-mm-yyyy" from an English website into Dutch Excel, and getting yyyy in the result instead of the year. | Use the codes of your Excel language: dd-mm-jjjj in Dutch Excel, and uu:mm instead of hh:mm for times. |
| A date shows as a number such as 46295 | Joining a date to text with & and seeing a number such as 46295. | Wrap the date in TEXT with a date code, so the formula shows the date instead of its serial number. |
| #N/A although the ID is in the other table | Padding IDs with TEXT for a lookup, while the other table stores the same IDs as numbers, so the lookup returns #N/A. | Make both sides the same type: text on both sides, or numbers on both sides. |