INT
INTEGER in Dutch Excel
Rounds a number down to the nearest whole number below it, which also strips the time from a date-time value.
Last updated: 13 October 2026
| Row | A | B | C |
|---|---|---|---|
| 1 | Invoice no. | Days overdue | Full periods |
| 2 | 25-1041 | 9595 | 33=INT(B2 / 30)=INT(B2 / 30) |
| 3 | 25-1042 | 3030 | |
| 4 | 25-1043 | 6161 | |
| 5 | 25-1044 | 2929 | |
| 6 | 25-1045 | 118118 |
Swipe sideways to see all columns
Result: 3
=INT(B2 / 30)
=INT(B2 / 30)
What INT does and when to use it
What it does: it rounds a number down to the whole number at or below it, for example 75 days overdue gives 2 full periods of 30 days.
When to use it: for whole units from a division, for bands of equal width, and to separate the date from a date-time. Note that -0.65 becomes -1, not 0. To round to the nearest whole number, use ROUND.
How Excel evaluates it
Excel evaluates number first, including any division or reference inside it. It then looks for the largest whole number that is less than or equal to that value:
- a value that is already whole comes back unchanged
- a positive number with a fractional part loses it
- a negative number with a fractional part moves down to the next integer
The result is a plain number; when the input was a date-time, the result is the date's serial number and the cell needs a date format to read as a date.
Watch out: For a negative number INT goes down, not toward zero: -3.2 becomes -4, not -3. Use TRUNC when a negative number must be cut toward zero, so that -3.2 becomes -3.
Mental model
A number line with a marker on every whole number: INT always slides left to the nearest marker, never right, whichever side of zero you start on.
Terms used on this page: reference, serial number, cell
INT(number)
INT(number)
| Argument | Type | Meaning |
|---|---|---|
number | Required | The value to round down to a whole number; negatives go further from zero. |
Return value:The largest whole number that is not greater than number
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
Full 30-day periods overdue on a receivables aging list
You are working through the client's receivables aging list (ouderdomsanalyse debiteuren). For each open invoice you have the number of days past the due date, and you want to know how many full 30-day periods it is overdue, to sort invoices into the 30, 60 and 90-day bands.
An invoice 95 days overdue has passed 3 full periods; the list should say 3.
| Row | A | B | C | D |
|---|---|---|---|---|
| 1 | Invoice no. | Days overdue | Full periods | |
| 2 | 25-1041 | 9595 | 33=INT(B2 / 30)=INT(B2 / 30) | |
| 3 | 25-1042 | 3030 | ||
| 4 | 25-1043 | 6161 | ||
| 5 | 25-1044 | 2929 | ||
| 6 | 25-1045 | 118118 | ||
| 7 |
Swipe sideways to see all columns
Formula in C2
=INT(B2 / 30)
=INT(B2 / 30)
Result: 33
Step by step
- Excel evaluates the argument first:
B2/ 30 = 95 / 30 = 3.166..., the number of periods if a part-period counted. - INT looks for the largest whole number not above 3.166...: that is 3. The .166... (5 days) is dropped.
C2shows 3. Check: 3 × 30 = 90 days, and 95 - 90 = 5 days remain, fewer than a full period.- Copy down.
C3: 30 / 30 = 1 exactly, so INT returns 1 unchanged.C4: 61 / 30 = 2.033..., so 2.C5: 29 / 30 = 0.966..., so 0. C5is 0: invoice25-1044has not completed one period, even though ROUND would have said 1.C6: 118 / 30 = 3.933..., so 3, not 4.
Watch out: Invoices not yet due have negative days overdue. INT(-10 / 30) gives -1, not 0, so a flagged invoice would show up as a minus one period. Test the sign first, for example with MAX(0, B2).
More on this example: why it works, 1 variation
Why it works
Dividing by 30 converts days into periods, and the fraction is the period that is not yet complete. INT removes exactly that fraction and never rounds up, so an invoice is only placed in a later band when it has really passed that boundary.
Variations
=B2 - INT(B2 / 30) * 30
=B2 - INT(B2 / 30) * 30
The days into the current period, 95 - 90 = 5. Shows the two parts of the split side by side; MOD(B2, 30) gives the same.
Intermediate
Group reconciliation differences into bands of 500 euro
You are reconciling the receivables ledger (grootboekrekening 1300) to the client's aging list, customer by customer. The differences are positive and negative.
To decide which ones to follow up, you want each difference labelled with the start of its band of 500 euro (from -1,5001.500 up to -1,0001.000, from 0 up to 500, and so on). The band width sits in E2 so you can change it.
| Row | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Relation | Difference | Band from | Band width | ||
| 2 | D1001 | -€1,250.00€ -1.250,00 | -€1,500.00€ -1.500,00=INT(B2 / $E$2) * $E$2=INT(B2 / $E$2) * $E$2 | euro | 500500 | |
| 3 | D1002 | €320.00€ 320,00 | ||||
| 4 | D1003 | €1,180.00€ 1.180,00 | ||||
| 5 | D1004 | -€80.00€ -80,00 | ||||
| 6 | D1005 | €2,750.00€ 2.750,00 | ||||
| 7 | D1006 | -€500.00€ -500,00 | ||||
| 8 |
Swipe sideways to see all columns
Formula in C2
=INT(B2 / $E$2) * $E$2
=INT(B2 / $E$2) * $E$2
Result: -€1,500.00€ -1.500,00
Step by step
- Excel divides the difference by the band width:
B2/$E$2= -1250 / 500 = -2.5. That says the difference lies 2.5 bands below zero. - INT(-2.5) looks for the largest whole number not above -2.5. That is -3, not -2: on the number line, -3 is the first whole number to the left.
- Multiplying back by the width gives the band start: -3 × 500 = -1500. The difference -1,2501.250 belongs to the band from -1,5001.500 up to -1,0001.000, which is correct.
- Compare with TRUNC, which cuts toward zero: TRUNC(-2.5) = -2, so -1,2501.250 would land in the band from -1,0001.000 up to -500, one band too high. Every negative difference would be placed too close to zero.
- Copy down;
$E$2stays fixed.D1002: INT(0.64) × 500 = 0.D1003: INT(2.36) × 500 = 1000.D1004: INT(-0.16) × 500 = -500.D1005: INT(5.5) × 500 = 2500.D1006: -500 / 500 = -1 exactly, INT(-1) = -1, so -500: a difference on a boundary opens its band. - Change
E2to 1000 and the bands become 1,0001.000 wide: -1250 / 1000 = -1.25, INT gives -2, so the band starts at -2000.
Watch out: Without the $ signs, C3 divides by E3, which is empty, and returns #DIV/0!. The band width must be locked.
More on this example: why it works, 1 more pitfall, 1 variation
Why it works
Equal-width bands need the same rule on both sides of zero: every value goes to the band whose start is at or below it. INT is exactly that rule, because it always moves left on the number line. Dividing by the width, applying INT and multiplying back turns 'whole numbers' into 'whole multiples of the width'.
More to watch out for
- Swapping INT for TRUNC gives no error and the positive differences stay right, so the mistake only shows in the negative rows. Always test a band formula with a negative difference.
Variations
=FLOOR.MATH(B2,$E$2)
=FLOOR.MATH(B2;$E$2)
FLOOR.MATH rounds down to a multiple of the width in one step and also goes away from zero for negatives by default: -1500 for -1250. Use it when the reader knows the function; INT with divide and multiply works in every version.
Advanced
Count manual entries created on the year-end date
In journal entry testing you have the manual entries (dagboek MEM) with the date and time the system created them. You want the number of entries created on 31 December 2025, the date in E1, for your cut-off work.
COUNTIF on the timestamp column does not work, because a timestamp at 09:10 is not equal to the date itself, so the formula has to compare the date part of each timestamp.
| Row | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Entry no. | Created | Date | 31 Dec 2025 | ||
| 2 | 25-0901 | 30 Dec 2025 17:45 | Entries | 44=SUMPRODUCT(--(INT(B2:B7) = E1))=SUMPRODUCT(--(INT(B2:B7) = E1)) | ||
| 3 | 25-0902 | 31 Dec 2025 00:00 | ||||
| 4 | 25-0903 | 31 Dec 2025 09:10 | ||||
| 5 | 25-0904 | 31 Dec 2025 15:20 | ||||
| 6 | 25-0905 | 31 Dec 2025 23:58 | ||||
| 7 | 25-0906 | 2 Jan 2026 08:30 | ||||
| 8 |
Swipe sideways to see all columns
Formula in E2
=SUMPRODUCT(--(INT(B2:B7) = E1))
=SUMPRODUCT(--(INT(B2:B7) = E1))
Result: 44
Step by step
E1holds 31 December 2025, serial number 46022. Each timestamp inB2:B7is a serial number with a fraction:25-0903at 09:10 is 46022 + 550 / 1440 = 46022.3819.- The innermost function is INT(B2:B7). It works on every timestamp and drops the time: {46021; 46022; 46022; 46022; 46022; 46024}.
25-0905at 23:58 is still 46022.9986, so INT keeps it on 31 December. - The comparison with E1 gives {FALSE; TRUE; TRUE; TRUE; TRUE; FALSE}, and the double minus turns that into {0; 1; 1; 1; 1; 0}.
- SUMPRODUCT adds the ones: 0 + 1 + 1 + 1 + 1 + 0 = 4. Entry
25-0902at exactly 00:00 counts for 31 December, because its fraction is 0 and INT leaves it unchanged;25-0901the day before does not. - SUMPRODUCT is what lets INT work on the whole range in every Excel version without Ctrl+Shift+Enter. Change
E1to 2 January 2026 and the result is 1 (25-0906).
Watch out: COUNTIF(B2:B7, E1) returns 1 here, not 4: only 25-0902 at 00:00 is exactly equal to the date. It looks like a quiet year-end, which is why the error goes unnoticed.
More on this example: why it works, 1 more pitfall, 2 variations
Why it works
A date is a whole number and a date-time is that number plus a fraction of a day, so 'on this date' means 'the whole part equals this date'. INT extracts the whole part for every row at once, and the comparison plus SUMPRODUCT turns the matches into a count.
More to watch out for
- If one timestamp arrived as text that Excel cannot read as a date (such as n/a) in the export, INT returns #VALUE! for that row and SUMPRODUCT returns #VALUE! for the whole count. Check the column with ISNUMBER.
Variations
=COUNTIFS(B2:B7,">=" & E1, B2:B7, "<" & E1 + 1)
=COUNTIFS(B2:B7;">=" & E1; B2:B7; "<" & E1 + 1)
Counts timestamps from midnight up to, but not including, the next midnight. Faster on large auditfiles, because COUNTIFS does not calculate INT for every row.
=B3 - INT(B3)
=B3 - INT(B3)
The other half of the split: the time of day as a fraction, 0 for 25-0902. Give the cell a time format to read it as 00:00.
MasterExcel 2021 or later (This example needs Excel 2021 or later)
Flag manual entries created outside office hours or on weekends
In journal entry testing you select manual entries (dagboek MEM) that were created at an unusual moment:
- on a Saturday or Sunday
- before 07:00
- from 19:00 onwards
The auditfile gives the creation moment as one date-time. You want a 1 for every entry that meets one of these criteria and a 0 for the others. An entry created at exactly 07:00 on a weekday is within office hours.
| Row | A | B | C | D |
|---|---|---|---|---|
| 1 | Entry no. | Created | Unusual moment | |
| 2 | 25-0911 | 31 Dec 2025 22:40 | 11=LET( created, B2, day, INT(created), hours, ROUND((created - day) * 24, 2), IF(OR(WEEKDAY(day, 2) > 5, hours < 7, hours >= 19), 1, 0) )=LET( created; B2; day; INT(created); hours; ROUND((created - day) * 24; 2); IF(OR(WEEKDAY(day; 2) > 5; hours < 7; hours >= 19); 1; 0) ) | |
| 3 | 25-0912 | 30 Dec 2025 07:00 | ||
| 4 | 25-0913 | 27 Dec 2025 11:00 | ||
| 5 | 25-0914 | 2 Jan 2026 06:30 | ||
| 6 | 25-0915 | 30 Dec 2025 10:15 | ||
| 7 |
Swipe sideways to see all columns
Formula in C2
=LET( created,B2, day, INT(created), hours, ROUND((created - day) * 24, 2), IF(OR(WEEKDAY(day, 2) > 5, hours < 7, hours >= 19), 1, 0) )
=LET( created;B2; day; INT(created); hours; ROUND((created - day) * 24; 2); IF(OR(WEEKDAY(day; 2) > 5; hours < 7; hours >= 19); 1; 0) )
Result: 11
Step by step
- LET names the inputs. created is
B2, 31 December 2025 at 22:40: serial 46022 + 1360 / 1440 = 46022.9444. - day is INT(created) = 46022: 31 December 2025 at 00:00. The time part is created - day = 0.9444.
- hours converts that to hours: 0.9444... × 24 = 22.666..., and ROUND to 2 decimals gives 22.67. ROUND removes the binary noise that time fractions carry, so an entry at exactly 07:00 is 7 and not 6.9999999999.
- The three tests: WEEKDAY(46022, 2) = 3 (Wednesday), and 3 > 5 is FALSE. 22.67 < 7 is FALSE. 22.67 >= 19 is TRUE. OR finds one TRUE, so IF returns 1.
- Copy down.
25-0912: Tuesday 30 December at 07:00, hours = 7, and 7 < 7 is FALSE, so 0 (the boundary is inside office hours).25-0913: 27 December is serial 46018, WEEKDAY = 6 (Saturday), so 1. 25-0914: Friday 2 January 2026, serial 46024 + 6.5 / 24, hours = 6.5, and 6.5 < 7 is TRUE, so 1.25-0915: Tuesday at 10:15, hours = 10.25: no test is TRUE, so 0. Three of the five entries are flagged.
Watch out: The limits 7 and 19 are typed into the formula. When the client has other office hours, you have to find them inside the formula. Put them in cells and refer to them with absolute references.
More on this example: why it works, 2 more pitfalls, 1 variation
Why it works
INT of a date-time is the midnight at the start of that day, so created minus day is exactly the time of day, and WEEKDAY can use the same day. LET names day once, so the weekday test and the time-of-day calculation cannot drift apart when someone edits one of them.
Do not use this construction when the export holds times without dates: INT of a time is 0, which Excel reads as a Saturday, so every entry would be flagged by the weekend test. The alternative for a time-only test is MOD(B2, 1) * 24, which needs no date but cannot test weekends.
More to watch out for
- Use hours >= 19 and hours < 7, not <= and >. An entry at exactly 07:00 is within office hours and one at exactly 19:00 is not; the wrong operator moves both boundary cases to the other side.
- The system creation moment is not the posting date. A flagged entry is a reason to look at the support, not proof of an error.
Variations
=IF(OR(WEEKDAY(INT(B2),2) > 5, ROUND((B2 - INT(B2)) * 24, 2) < 7, ROUND((B2 - INT(B2)) * 24, 2) >= 19), 1, 0)
=IF(OR(WEEKDAY(INT(B2);2) > 5; ROUND((B2 - INT(B2)) * 24; 2) < 7; ROUND((B2 - INT(B2)) * 24; 2) >= 19); 1; 0)
The same logic without LET, for Excel 2019 and earlier. The INT and ROUND parts appear several times, so a later edit has to change every copy.
Common mistakes
| Symptom | Cause | Fix |
|---|---|---|
| -3.2 becomes -4, not -3 | A credit of -3.2 hours comes back as -4, and you expected -3. | TRUNC(-3.2) returns -3 because it cuts off the decimals on both sides of zero; INT(-3.2) returns -4 because it takes the next lower whole number. |
| A number like 46156 instead of a date | INT(A2) on a timestamp shows a number like 46156 instead of a date. | The result is correct: it is the date's serial number. Give the cell a date format. |
| INT returns 7 for a product of 8 | INT((0.1 + 0.7) * 10) can return 7 although the calculation looks like exactly 8. | Decimal fractions are stored in binary, and that product can be stored as 7.999999999999999. INT has no tolerance. Round the input first: INT(ROUND((0.1 + 0.7) * 10, 10)). |
| #VALUE! on one row of timestamps | INT on a timestamp column where an import left text that Excel cannot read as a date or time, such as n/a, gives #VALUE! for that row. | Replace or clean such entries first, and convert text that does look like a date-time with Data, Text to Columns, or VALUE, then apply INT. |