Three of the most common data types in South African business spreadsheets — currency amounts in Rand, calendar dates, and clock times — each have unique rules, formatting requirements, and calculation techniques. This module teaches you how to format Rand correctly, how Excel stores and calculates with dates and times internally, how to calculate the difference between two dates, how to add or subtract time periods, and which functions to use for payroll dates, project deadlines, working-day calculations, and financial period analysis.
Currency formatting does not change the underlying numeric value — it controls only how the number displays. Excel stores 1500.5 regardless of whether you see it as R 1,500.50, $1,500.50, or just 1500.5. Calculations always use the stored value.
| Method | How | Result |
|---|---|---|
| Accounting Button ($) | Select cells → Home → Number group → click the $ dropdown ▼ → select R Afrikaans (South Africa) | R 1,500.50 (Rand symbol left-aligned, decimals right-aligned, zeros show as -) |
| Number Format Dropdown | Select cells → Home → Number dropdown → More Number Formats… → Category: Currency → Symbol: R | R1,500.50 (symbol attached to number, negatives in red) |
| Custom Format | Ctrl+1 → Number → Custom → type format code | Full control over appearance |
| Format Code | Displays As | Use For |
|---|---|---|
"R "#,##0.00 | R 1,500.50 | Standard Rand with 2 decimal places — most common |
"R "#,##0 | R 1,500 | Rand without decimals — for whole-Rand amounts |
"R "#,##0.00;[Red]"(R "#,##0.00")" | Positives: R 1,500.50 • Negatives: (R 250.00) in red | Financial statements where negatives shown in brackets |
"R "#,##0.00;[Red]"-R "#,##0.00;"—" | Positives normal, negatives red with minus, zeros show as — | Income statements where zero balances should be clear |
"R "#,##0,,"M" | R 1.5M (for 1,500,000) | Executive dashboards showing millions |
"R "#,##0,"k" | R 1,500k (for 1,500,000) | Charts and summaries in thousands |
| Aspect | Currency Format | Accounting Format |
|---|---|---|
| Symbol position | Immediately left of the number: R1,500.50 | Far left of the cell, number right-aligned: R 1,500.50 |
| Zero values | R0.00 | A dash: — |
| Negatives | -R1,500.50 or (R1,500.50) or red | (R1,500.50) in brackets |
| Column alignment | Decimal points may not align in a column | Decimal points always align vertically — standard for financial reports |
| Best for | General use, invoices, price lists | Financial statements, payroll, any report where columns of figures must be clearly comparable |
When working with multiple currencies (Rand, USD, EUR, GBP) in the same workbook:
=USD_Amount * ExchangeRate_USD_ZARUnderstanding this is the key to all date calculations. Excel does not store dates as text like "15 January 2025". It stores every date as a serial number — an integer representing the number of days since a fixed starting point.
=B2-A2=A2+30 gives you the date 30 days after A2=DATEVALUE("15/01/2025") returns the serial number for that date text| You Type | Recognised As | Notes |
|---|---|---|
15/01/2025 | 15 January 2025 | DD/MM/YYYY — the SA standard. Excel right-aligns confirmed dates. |
15-01-2025 | 15 January 2025 | Hyphens also work as date separators |
15 Jan 2025 | 15 January 2025 | Month name format — unambiguous |
15 January 2025 | 15 January 2025 | Full month name also recognised |
| Ctrl+; | Today's date (static) | Inserts the current date as a fixed value — does NOT update tomorrow |
Apply via Ctrl+1 → Number → Custom:
| Format Code | Displays As | Use For |
|---|---|---|
dd/mm/yyyy | 15/01/2025 | SA standard short date |
dd mmm yyyy | 15 Jan 2025 | Abbreviated month |
dd mmmm yyyy | 15 January 2025 | Full month name — formal documents |
dddd, dd mmmm yyyy | Wednesday, 15 January 2025 | Including day of week |
mmm-yy | Jan-25 | Month-year labels in charts and reports |
mmmm yyyy | January 2025 | Month and year only (day ignored visually) |
yyyy-mm-dd | 2025-01-15 | ISO 8601 format — for systems/databases |
| Function | Returns | Updates |
|---|---|---|
=TODAY() | Today's date (no time component) | Yes — recalculates every time the workbook opens or recalculates. Useful for age calculations and deadline alerts. |
=NOW() | Current date AND time (date + fractional day) | Yes — recalculates continuously (or on each recalculation). Format with a date+time format to display both components. |
| Function | Syntax | Example & Result |
|---|---|---|
| DATE | =DATE(year, month, day) |
=DATE(2025, 3, 31) → 31 March 2025. Used to construct a date from year, month, day values stored in separate cells or calculated values. |
| YEAR | =YEAR(date) |
=YEAR(A2) → 2025 (if A2 = 15/01/2025). Extracts the year component from a date. |
| MONTH | =MONTH(date) |
=MONTH(A2) → 1 (for January). Returns 1 through 12. |
| DAY | =DAY(date) |
=DAY(A2) → 15 (the day of the month). Returns 1 through 31. |
| WEEKDAY | =WEEKDAY(date, [return_type]) |
=WEEKDAY(A2, 2) → 1=Mon through 7=Sun (return_type 2). Used to identify weekends: =IF(WEEKDAY(A2,2)>5,"Weekend","Weekday") |
| EOMONTH | =EOMONTH(start_date, months) |
=EOMONTH(A2, 0) → last day of the same month as A2. =EOMONTH(A2, 1) → last day of next month. Used for month-end billing dates and financial period calculations. |
| EDATE | =EDATE(start_date, months) |
=EDATE(A2, 3) → same day 3 months later. =EDATE(A2, -1) → same day one month earlier. Used for subscription renewal dates, lease end dates, instalment schedules. |
Convert a date to a formatted text string for display in concatenated text:
Calculating the difference between two dates is one of the most common date tasks in Excel — for age calculations, tenure, project duration, days overdue, and lease terms.
DATEDIF (Date Difference) calculates the difference between two dates in complete years, months, or days. It is a hidden function — it does not appear in IntelliSense but it works in all Excel versions.
| Unit | Returns | Example |
|---|---|---|
"Y" | Complete years | =DATEDIF(A2,TODAY(),"Y") → age in complete years |
"M" | Complete months | =DATEDIF(A2,TODAY(),"M") → tenure in complete months |
"D" | Total days | =DATEDIF(A2,TODAY(),"D") → same as TODAY()-A2 |
"YM" | Months beyond the last complete year | =DATEDIF(A2,TODAY(),"YM") → the remaining months after counting complete years (0–11) |
"MD" | Days beyond the last complete month | =DATEDIF(A2,TODAY(),"MD") → remaining days after counting complete months (0–30) |
"YD" | Days beyond the last complete year | =DATEDIF(A2,TODAY(),"YD") → remaining days within the current year |
holidays argument: a range listing public holidays to exclude (e.g., your SA public holidays list)Use NETWORKDAYS.INTL when your organisation's non-working days are not Saturday+Sunday (e.g., some sectors work Saturdays; some regions have Friday+Saturday as weekend).
Use WORKDAY for: delivery deadlines (ship date + 5 working days = expected delivery), payment due dates, SLA response deadlines.
For NETWORKDAYS and WORKDAY to exclude SA public holidays, create a holiday table on a dedicated sheet:
SAHolidays → Enter| Date | SA Public Holiday |
|---|---|
| 01/01/2025 | New Year's Day |
| 21/03/2025 | Human Rights Day |
| 18/04/2025 | Good Friday |
| 21/04/2025 | Family Day |
| 27/04/2025 | Freedom Day |
| 01/05/2025 | Workers' Day |
| 16/06/2025 | Youth Day |
| 09/08/2025 | National Women's Day |
| 24/09/2025 | Heritage Day |
| 16/12/2025 | Day of Reconciliation |
| 25/12/2025 | Christmas Day |
| 26/12/2025 | Day of Goodwill |
Time in Excel is stored as a decimal fraction of a day. Midnight = 0, noon = 0.5, end of day = 0.999… This means a cell can hold a date-and-time combined as a single number: the integer part = the date, the decimal part = the time.
| You Type | Displays As |
|---|---|
08:30 | 8:30 AM (24-hour or AM/PM depending on regional settings) |
14:45 | 2:45 PM |
8:30 PM | 8:30 PM |
| Ctrl+Shift+; | Current time (static — does not update) |
| Format Code | Displays As |
|---|---|
hh:mm | 08:30 (24-hour) |
h:mm AM/PM | 8:30 AM |
hh:mm:ss | 08:30:45 |
[h]:mm | Elapsed hours — can exceed 24 (e.g., 36:30 for 36 hours 30 minutes). Essential for timesheet totals. |
[h]:mm:ss | Elapsed hours with seconds — e.g., 36:30:00 |
hh:mm shows 19:15 (it wraps around at 24!). You MUST format the total cell as [h]:mm to show 43:15. The square brackets tell Excel to display the full elapsed hours beyond 24.
When end time is after midnight (night shift: start 22:00, end 06:00 next day), simple subtraction gives a negative result. Fix:
Q1: A cell containing the date 15/01/2025 suddenly shows "45658" instead. What happened and how do you fix it?
✓ The cell format was changed to General or Number, so the underlying serial number is now visible instead of the formatted date. Excel stores every date as a serial number (days since 1 January 1900 — 45658 = 15 January 2025). Fix: select the cell → Home → Number Format dropdown → Short Date (or Long Date) — or press Ctrl+1 → Number → Date → choose the desired date format. The date 15/01/2025 reappears. The serial number has not changed; only the display format was lost.
Q2: An employee's date of birth is in cell A2 (15/08/1990). Write a formula that displays their age in years and months in a readable format, e.g., "34 years 5 months".
✓ =DATEDIF(A2,TODAY(),"Y")&" years "&DATEDIF(A2,TODAY(),"YM")&" months". The first DATEDIF with "Y" returns the complete years (34). The second DATEDIF with "YM" returns the additional months beyond the last complete year (5). The & operator joins the text into a readable sentence. Note that the end_date must be after the start_date in DATEDIF or it returns a #NUM! error — use TODAY() which is always after any birth date.
Q3: You are calculating the hours worked for a timesheet. Cell A2 = 08:00 (start) and B2 = 17:30 (end). After entering =B2-A2 and summing all 5 days, the weekly total shows 19:15 instead of 43:15. What is the problem and how do you fix it?
✓ The total cell is formatted with hh:mm which resets to zero at 24 hours. 43:15 rolls over twice past 24, displaying 43-24-24=−5, then 24+(−5)=19:15. Fix: select the total cell → Ctrl+1 → Number → Custom → type [h]:mm → OK. The square brackets around h tell Excel to show the true elapsed hours without resetting at 24, so 43:15 displays correctly. This is essential for any timesheet where weekly hours can exceed 24.
Q4: An invoice was issued on 15 January 2025 (in A2) with 30-day payment terms. Write formulas to: (a) calculate the due date, (b) show whether the invoice is overdue or current, (c) count the days overdue if it is past due.
✓ (a) Due date: =A2+30. Simple date addition — Excel adds 30 days to the date serial number, giving 14 February 2025. (b) Status: =IF(TODAY()>A2+30,"OVERDUE","Current"). Compares today's date to the due date. (c) Days overdue: =MAX(0,TODAY()-(A2+30)). If today is before the due date, TODAY()-due_date is negative, and MAX(0,...) returns 0 (not yet due). If today is after the due date, it returns the positive number of days past due.
Q5: You need to calculate the number of working days between two project dates, excluding weekends AND South African public holidays (stored in a named range "SAHolidays"). The start date is in A2, the end date in B2. Write the formula.
✓ =NETWORKDAYS(A2,B2,SAHolidays). NETWORKDAYS counts working days (Monday through Friday) between two dates inclusively. The third argument (SAHolidays) specifies a list of additional non-working days to exclude. The formula automatically skips all weekends and all dates listed in the SAHolidays range. Note: NETWORKDAYS counts both the start and end dates if they fall on working days (it is inclusive at both ends), so =NETWORKDAYS(A2,B2)-1 if you want to exclude the start date.
Q6: What is the difference between the Currency and Accounting number formats in Excel? Which is preferred for financial statements and why?
✓ Currency format: places the symbol immediately adjacent to the number (R1,500.50), shows zero as R0.00, and negatives in red or with a minus sign. Accounting format: aligns the currency symbol to the far left of the cell with the number right-aligned (R 1,500.50), shows zero as a dash (—), and negatives in brackets. For financial statements, the Accounting format is preferred because: (1) decimal points always align vertically in a column making figures easier to compare; (2) the symbol alignment is consistent and professional; (3) zeros as dashes are the accounting convention distinguishing a zero balance from a missing entry; (4) negatives in brackets is the standard accounting notation rather than a minus sign which can be confused with a hyphen.