applied · Level 2
Automate a spreadsheet workflow with AI, checks and an audit trail
Clean a messy expenses sheet with formulas an assistant suggests, then prove every change with control totals, validation checks and a change log.

Your next step
Start this course online
Register your start, then work through the lessons and exercises at your own pace. You can download the PDF separately. Where a scored exam is available, you will find it after the lessons.
Register or resume your course
Start with the essentials
The short answer
To automate a spreadsheet job with an AI assistant safely, keep the original untouched, share only invented sample rows and treat every suggested formula as a draft. Check it against control totals you worked out independently, spot-check rows and test odd inputs. Record each change in a change log, then reconcile row counts and totals before and after.
What you will learn
- You will be able to set up a workbook that keeps the original data untouched and imported as text.
- You will be able to ask an assistant for a formula using invented sample rows only, never personal or confidential data.
- You will be able to check a formula with control totals, spot checks and odd inputs before trusting it.
- You will be able to keep a change log and a reconciliation that show how the before and after totals connect.
- You will be able to recognise silent type conversion, day and month swaps, rounding gaps, hidden rows, wrong ranges and invented functions.
Who it is for
Office workers who use spreadsheets and have tried an AI assistant, and who want to automate a routine clean-up without losing track of what changed. You need to be able to enter a formula and fill it down a column. No coding is needed.
Before you start
- Comfort entering a simple formula, such as a SUM, and filling it down a column. A spreadsheet program: the examples were run in LibreOffice Calc and use functions that Excel and Google Sheets also list. The free AI toolkit workbook covers choosing an assistant and checking its privacy settings.
Learn in your browser · Chapter 01 of 06
Set up safely: a copy, a raw sheet and invented data
Before any formula, protect the original and decide what an assistant may see.
The job: a system exports expenses each month as a CSV file (comma-separated values, plain text any spreadsheet can read), and you clean and total it. An AI assistant can draft the formulas in seconds, and can be wrong in ways that look right. So never edit the original, check every formula against figures you worked out independently, and log every change.
Paste this invented file into a plain text editor and save it as expenses.csv, keeping every space.
ref,date,category,amount
EX-1001,02/03/2026,Travel,45.00
EX-1002,2026-03-02,Meals,12.50
EX-1003,03/03/2026,Postage,3.20
EX-1004,04/03/2026,Stationery, 18.75
EX-1005,05/03/2026,Travel,62.40
,,,
EX-1006,2026-03-06,Meals,9.80
EX-1007,09/03/2026,Travel ,120.00
EX-1008,10/03/2026, Postage,6.60
EX-1009,11/03/2026,Travel,14.994
EX-1010,12/03/2026,Meals,23.10
EX-1011,13/03/2026,Stationery,7.45
EX-1012,2026-03-13,Travel, 38.00
EX-1012 ,2026-03-13,Travel, 38.00
EX-1013,16/03/2026,Postage,3.20
EX-1014,17/03/2026,Travel,15.004
EX-1015,18/03/2026,Stationery,22.00
EX-1016,19/03/2026,Travel,75.50
,,,
EX-1017,20/03/2026,Travel,31.204
EX-1018,2026-03-23,Meals,11.25
EX-1019,24/03/2026,Stationery,4.99
EX-1007,09/03/2026,Travel ,120.00
EX-1020,25/03/2026,Postage,6.60
EX-1021,26/03/2026,Meals,8.90
EX-1022,27/03/2026,Meals,18.40
EX-1023,2026-03-30,Stationery,9.99
EX-1024,30/03/2026,Travel,52.00
EX-1025,31/03/2026,Postage,3.20
EX-1026,31/03/2026,Meals,14.75The mess is deliberate: two date styles, stray spaces, three amounts with three decimals, two blank rows and two duplicates. The invented system also reported 28 records, total 796.782. Outside figures like these are control totals: your results must match them.
- LibreOffice Calc: open the file; in the Text Import dialog choose comma as separator, set every Column type to Text and leave Trim spaces unticked.
- Excel: switch on From Text (Legacy) under File > Options > Data, then use Data > Get Data > Legacy Wizards > From Text (Legacy). In the Text Import Wizard, choose Text for every column.
- Other programs: look for an option that keeps columns as text, or log whatever the exercise shows was converted.
- Name the imported sheet
Rawand never type in it. - Add sheets named
Clean,ChecksandLog. - Use Save As to save the workbook as a new file in your program's own format (.ods or .xlsx), not CSV: a CSV keeps only the current sheet. The CSV stays untouched as your original.
What an assistant should not see. Real sheets hold names, bank details and confidential figures. The UK National Cyber Security Centre has recommended keeping sensitive information out of queries to public large language models, and the ICO's data minimisation guidance says to identify the minimum amount of personal data you need to fulfil your purpose. So show an assistant only the shape of your data: headers and two or three invented rows.
Codes in place of names are not enough: the ICO says pseudonymised data is still personal data for anyone holding the link back. Sampled real rows are still real data. Your organisation's AI policy comes first.
Try it yourself · Activity 01
15 minImport and inspect
Import the file as text and confirm that nothing was converted.
- Import
expenses.csvas text intoRaw. - In
Checkscells E2 and E3, enter=COUNTA(Raw!A2:A31)(cells that are not empty) and=COUNT(Raw!D2:D31)(cells holding numbers). - In
Log, write entry 1: the date, your initials, what you imported and both counts.
Why is a count of zero numbers good news here?
Worked answer
COUNTA gives 28: thirty data rows minus two blank ones. COUNT gives 0: every amount arrived as text, as intended. If COUNT gives 28, your program converted the amounts, so import again as text or log the difference. If it dropped the blank rows, later rows move up: log that too. In LibreOffice, a COUNTA of 1 means Formula syntax is still Calc A1: switch to Excel A1 and enter both formulas again.
Learn in your browser · Chapter 02 of 06
Control totals: measure before you change anything
A control total is a figure worked out independently that later results must match. Formula mistakes rarely raise an error; control totals make them visible.
Scroll sideways to see every column.
| Formula in Checks | LibreOffice result | Meaning |
|---|---|---|
=COUNTA(Raw!A2:A31) | 28 | Non-blank records |
=COUNT(Raw!D2:D31) | 0 | Amounts stored as numbers |
=SUM(Raw!D2:D31) | 0 | The total of text: nothing |
The last line is the classic silent failure: Microsoft's documentation says SUM ignores text values. Where only a few amounts are text, the total looks right and is quietly short. On any column that should hold numbers, compare COUNT with COUNTA.
The hand check. Add a small group with a calculator, before any formula. Postage has five rows: 3.20 + 6.60 + 3.20 + 6.60 + 3.20 = 22.80.
Try it yourself · Activity 02
10 minA second hand check
Add up Meals by hand and record your control totals.
- Add every Meals amount in
Rawwith a calculator. - In
Checksrow 2, typeExport note (typed in)in A2, 28 in B2 and 796.782 in C2. - Log each control total and where it came from.
Why can no formula error change these figures?
Worked answer
Seven Meals rows: 12.50 + 9.80 + 23.10 + 11.25 + 8.90 + 18.40 + 14.75 = 98.70. Your controls came from the export note and your calculator, not from a formula, so no formula error can change them.
Learn in your browser · Chapter 03 of 06
Ask an assistant, then make it prove itself
Treat every formula an assistant drafts as untested until it passes your checks.
A good request gives the layout, the rules and invented rows, and asks for weak spots:
Sheet Raw has columns ref, date, category, amount, all stored as text.
Dates look like 2026-03-02 or 02/03/2026 (day/month/year).
Invented rows:
EX-9001,2026-03-02,Meals,12.50
EX-9002,13/03/2026,Travel, 38.00
Write a formula for Clean!B2 that turns Raw!B2 into a date.
Explain it and list inputs that would break it.Suppose the reply is this illustrative formula:
=IF(MID(Raw!B2,5,1)="-",DATE(VALUE(LEFT(Raw!B2,4)),VALUE(MID(Raw!B2,6,2)),VALUE(RIGHT(Raw!B2,2))),DATE(VALUE(RIGHT(Raw!B2,4)),VALUE(LEFT(Raw!B2,2)),VALUE(MID(Raw!B2,4,2))))It reads well: a dash in fifth place means one layout, otherwise the other. Check it three ways.
- Spot-check a row you can read.
Rawrow 2 holds 02/03/2026, 2 March. The formula gives 3 February 2026. - Test an edge case. Row 13 holds 13/03/2026. The formula gives 3 January 2027: there is no month 13, so DATE rolled forward, which all three vendors document and Google calls silent.
- Compare with a control. Every date should be in March 2026. For 20 of the 26 rows you will keep, it is not.
The second DATE reads month then day, the US order. Nothing raised an error; only checking found it.
Try it yourself · Activity 03
15 minCatch the swap
Check the assistant's formula, then fix it.
- Enter it in
Cleancell B2, fill down to B31 and format column B as a date. - Compare rows 2, 3 and 13 with
Raw. - Swap
LEFT(Raw!B2,2)andMID(Raw!B2,4,2)in the second DATE, fill down again and re-check. - Optional: send the prompt above to an assistant you use and test its answer the same way.
Without row 13, which check would still catch the error?
Worked answer
Before the fix, row 2 gives 3 February 2026, row 3 (written 2026-03-02) is right, row 13 gives 3 January 2027, and blank rows 7 and 20 show an error (Err:502 in LibreOffice) until the next chapter. After the swap, rows 2 and 13 give 2 and 13 March 2026. Without row 13, the March check still catches row 2's 3 February. Any assistant's answer must pass all three checks.
Learn in your browser · Chapter 04 of 06
Clean with formulas you can trace
Build Clean beside Raw, row for row, so every clean value points back to its source.
The rules: Clean row 2 always reads Raw row 2; flag problem rows, never delete them; round only where a stated rule says so; never paste values over the formulas, or the trail back to Raw is lost. Type these headers in row 1, A to G: ref, date, category, amount_raw, status, amount, check. Then type each formula, from the = sign, into the cell named before it:
A2 =TRIM(Raw!A2)
B2 =IF(A2="","",IF(MID(Raw!B2,5,1)="-",DATE(VALUE(LEFT(Raw!B2,4)),VALUE(MID(Raw!B2,6,2)),VALUE(RIGHT(Raw!B2,2))),DATE(VALUE(RIGHT(Raw!B2,4)),VALUE(MID(Raw!B2,4,2)),VALUE(LEFT(Raw!B2,2)))))
C2 =TRIM(Raw!C2)
D2 =IF(A2="","",VALUE(TRIM(Raw!D2)))
E2 =IF(A2="","blank",IF(COUNTIF(A$2:A2,A2)>1,"duplicate","keep"))
F2 =IF(E2="keep",ROUND(D2,2),"")
G2 =IF(E2<>"keep","",IF(AND(ISNUMBER(F2),F2>0,B2>=DATE(2026,3,1),B2<=DATE(2026,3,31),OR(C2="Travel",C2="Meals",C2="Postage",C2="Stationery")),"ok","CHECK"))TRIMremoves spaces at the start and end.VALUEturns text into a number. Microsoft documents an error for text it cannot read: loud, not silent.DATEneeds numbers (Google documents #VALUE! for text), hence theVALUEwrappers. The outerIFleaves blank rows blank.COUNTIF(A$2:A2,A2)counts this reference from row 2 down to the current row, so a count above 1 means it appeared earlier. The$pins the range's top as you fill down. Because column A is trimmed, the secondEX-1012is caught despite its trailing space.ROUND(D2,2)rounds kept amounts to pence; column D keeps the original.- Column G says
okonly for a positive amount, a March 2026 date and one of four categories.
Fill all seven down to row 31. If column B shows numbers such as 46094, format it as a date: spreadsheets store dates as serial numbers.
The result: 26 keep, 2 duplicate, 2 blank. In rows 11, 17 and 21, 14.994, 15.004 and 31.204 became 14.99, 15 and 31.2 (trailing zeros are not shown). A repeated reference is a question, not proof: compare whole rows before excluding one.
The exercise uses this version, which reads A5:
=IF(MID(A5,5,1)="-",DATE(VALUE(LEFT(A5,4)),VALUE(MID(A5,6,2)),VALUE(RIGHT(A5,2))),DATE(VALUE(RIGHT(A5,4)),VALUE(MID(A5,4,2)),VALUE(LEFT(A5,2))))Try it yourself · Activity 04
15 minTest the formulas on odd inputs
Feed the logic inputs it has not seen, in a sheet named Tests.
- Format column A as Text, then type in A2 to A8:
7.5(with spaces),12.5O(letter O),-3.20,13/03/2026,4/3/2026,31/02/2026,2026-3-4. - In B2 enter
=ROUND(VALUE(TRIM(A2)),2)and fill down to B4. - In B5 enter the formula above, fill down to B8 and format as dates.
- Mark each result right, error or silently wrong.
Which silently wrong results would the March check miss?
Worked answer
LibreOffice gave 7.5 (right); an error for 12.5O (Err:502; Microsoft documents #VALUE!); -3.2, which column G's positive test catches; 13 March 2026 (right); an error for 4/3/2026, which lacks two-digit parts; 3 March 2026 for 31/02/2026, silently rolled over; and 27 August 2025 for 2026-3-4. The March check catches the last but misses 31/02/2026.
Learn in your browser · Chapter 05 of 06
Log, validate and reconcile
Three records let someone else check your work: what changed, what is valid and whether the totals connect.
The change log. The AQuA Book, UK government guidance on assuring the quality of analysis, describes logging why, when and by whom each change was made, and who signed decisions off. Add date and initials columns to this:
Scroll sideways to see every column.
| No. | What changed | Rows | Why | Check and result |
|---|---|---|---|---|
| 1 | Imported CSV as text | 30 | Keep the original exact | COUNTA 28, COUNT 0 |
| 2 | Trimmed spaces | 7 cells | Spaces break matching | EX-1012 rows match |
| 3 | Converted dates, day first | 28 | Two date styles | All March 2026; rows 2, 13 checked |
| 4 | Converted amounts | 28 | Arrived as text | 796.782 matches export |
| 5 | Flagged duplicates | 2 (158.00) | Exported twice | Whole rows compared |
| 6 | Rounded to pence | 3 (-0.012) | Pounds and pence | Reconciles to zero |
Validation. =COUNTIF(Clean!E2:E31,"keep")-COUNTIF(Clean!G2:G31,"ok") counts kept rows that fail column G. It gives 0. Counting ok rather than CHECK means a row showing an error counts as a problem too.
Reconciliation. Before, minus every logged change, must equal after. Build this in Checks:
Scroll sideways to see every column.
| Row | Step (A) | Records (B) | Amount (C) |
|---|---|---|---|
| 2 | Export note (typed in) | 28 | 796.782 |
| 3 | Raw as imported | =COUNTA(Raw!A2:A31) | =SUM(Clean!D2:D31) |
| 4 | Less duplicates | =COUNTIF(Clean!E2:E31,"duplicate") | =SUMIF(Clean!E2:E31,"duplicate",Clean!D2:D31) |
| 5 | Rounding (typed from the log) | 3 | -0.012 |
| 6 | Clean result | =COUNT(Clean!F2:F31) | =SUM(Clean!F2:F31) |
| 7 | Difference | =B2-B4-B6 | =ROUND(C2-C4+C5-C6,3) |
LibreOffice gave 28 and 796.782 in row 3, matching the export note; 2 and 158; 26 and 638.77; and a difference of 0 and 0. Row 7 starts from the typed export note, so an amount typed over or misread in Raw shows as a difference instead of cancelling out. Row 5 comes from the log, so this tests the log itself.
Try it yourself · Activity 05
20 minReconcile to zero, then break it
Build both, then find what a reconciliation cannot see.
- Fill in
Logwith the six changes, each dated and initialled. - Build
Checksrows 2 to 7 as shown, plus the validation count. - Set C5 to 0 and read C7, then restore -0.012.
- Add
=SUMIF(Clean!C2:C31,"Postage",Clean!F2:F31)and compare it with your hand check. - Type
keepoverCleancell E24 (the second EX-1007) and read rows 4, 6 and 7. Then fill E23 down to E24 to restore the formula.
What can a reconciliation prove, and what can it not?
Worked answer
Row 7 shows 0 and 0; the validation count is 0. With C5 at 0, C7 shows 0.012, exactly the unlogged rounding. The Postage SUMIF gives 22.8, matching your 22.80. With E24 forced to keep, row 4 becomes 1 and 38, row 6 becomes 27 and 758.77, and row 7 stays 0 and 0. A reconciliation proves nothing was added or lost without explanation; it cannot judge whether a row should have been kept.
Learn in your browser · Chapter 06 of 06
Traps that look fine
Most spreadsheet errors do not announce themselves. Each trap below was run on the practice file.
Scroll sideways to see every column.
| Trap | The check that catches it |
|---|---|
| Silent type conversion | COUNT against COUNTA |
| Day and month swapped | Dates in the expected period; a day above 12 |
| Rounding | Round once, at a stated step, and log it |
| Hidden rows and filters | Unhide, clear filters, compare |
| Wrong range | Group totals add to the grand total |
| Invented function | The program's own function list |
Rounding. Shown to two decimals, column D's total displays 796.78, yet the 28 amounts as displayed add to 796.77: the stored values carry a third decimal. Decide where rounding happens, do it once with ROUND, and log it.
Hidden rows and filters. With Clean rows 2 to 6 hidden, SUM and SUBTOTAL with code 9 over F2:F31 gave 638.77, but =SUBTOTAL(109,Clean!F2:F31) gave 496.92. All three vendors document that codes 101 to 111 skip hidden rows and that SUBTOTAL always leaves out rows hidden by a filter. With a filter showing only Travel, SUM stayed at 638.77 and SUBTOTAL(9) gave 454.09. Unhide everything and clear filters before reconciling.
Wrong range. =SUMIF(Clean!C2:C31,"Travel",Clean!F3:F32) looks right, but its amounts start one row late. It returns 88.45, not 454.09, with no error. Likewise, matching on Raw!C2:C31 misses Travel with its trailing space (334.09), and =SUM(Clean!F2:F30) drops the last row (624.02). The catch: the four category totals must add to 638.77.
Know the limits. Checks lower risk but cannot prove a sheet right, as 31/02/2026 showed. The AQuA Book says the analyst and the assurer shall be independent, so for work that matters, ask a colleague to re-run your checks from the log.
Try it yourself · Activity 06
20 minBreak it, then catch it
Reproduce three traps and the check that catches each.
- Hide
Cleanrows 2 to 6, compare=SUM(Clean!F2:F31)with=SUBTOTAL(109,Clean!F2:F31), then unhide them. - Build a SUMIF for each category, like the Postage one, and add the four.
- Enter the shifted SUMIF above and compare it with your Travel figure.
- Enter
=CLEANNUMBER(Raw!D2)in a spare cell, read it, then delete it.
Which traps would a glance at the screen miss?
Worked answer
SUM gives 638.77 and SUBTOTAL(109) gives 496.92. The gap, 141.85, is the hidden rows: 45.00 + 12.50 + 3.20 + 18.75 + 62.40. Categories: Travel 454.09, Meals 98.7, Postage 22.8 and Stationery 63.18, adding to 638.77. The shifted SUMIF gives 88.45, not 454.09. CLEANNUMBER gives #NAME?, the only trap visible at a glance; the others look like ordinary numbers.
Keep learning
The complete workbook
This workbook takes one small, invented expenses file with typical mess and cleans it with formulas of the kind an AI assistant suggests. You will check each formula against control totals and odd inputs, flag rows rather than delete them, and finish with a change log and a reconciliation that connects the before and after totals. Every formula was run in LibreOffice Calc.
- 01Set up safely: a copy, a raw sheet and invented dataRead here · 1 exercise
Before any formula, protect the original and decide what an assistant may see.
- 02Control totals: measure before you change anythingRead here · 1 exercise
A control total is a figure worked out independently that later results must match. Formula mistakes rarely raise an error; control totals make them visible.
- 03Ask an assistant, then make it prove itselfRead here · 1 exercise
Treat every formula an assistant drafts as untested until it passes your checks.
- 04Clean with formulas you can traceRead here · 1 exercise
Build
CleanbesideRaw, row for row, so every clean value points back to its source. - 05Log, validate and reconcileRead here · 1 exercise
Three records let someone else check your work: what changed, what is valid and whether the totals connect.
- 06Traps that look fineRead here · 1 exercise
Most spreadsheet errors do not announce themselves. Each trap below was run on the practice file.
Also inside: a 9-point checklist, a glossary of 11 terms and 10 questions and answers to test yourself. 6 hands-on exercises, each with a worked answer at the back where the workbook gives one.
The PDF is free. We ask for your name and email before downloading. Read the privacy notice at the download form. Free to download and use for personal learning, study groups and inside your own team. Please do not resell the workbooks or republish them as your own. Link people to trust-agent.ai instead.
Get your free PDF workbook
Enter your name and email, then download the complete workbook. This form also works without JavaScript.
Test yourself
Questions and answers
Can I paste my real spreadsheet into an AI assistant?
Not if it holds personal or confidential data. The UK National Cyber Security Centre has recommended keeping sensitive information out of queries to public large language models, and data protection law expects you to use only the personal data you need. Give the assistant the column headers and a few invented rows in the same format, and check your organisation's AI policy first.
Is replacing names with codes enough to make data safe to share?
Not on its own. The ICO says pseudonymised data is still personal data for anyone who holds the information that links the codes back to people. A sample of real rows is still real data too. Invented rows in the right format are the safer way to get help with a formula.
Why import everything as text instead of just opening the file?
Opening a CSV lets the program convert values automatically, and Microsoft documents that Excel does this, for example by dropping leading zeros. A date read in the wrong order is then wrong before you start, with no error. Importing as text keeps the raw sheet identical to the file, so every conversion happens in a formula you can see and check.
What is a control total, and where do I get one?
A figure from outside your formulas that your results must match: the record count and total a system reports with an export, a figure from an earlier report, or a small group you add by hand. Record them before you write any formula, so no formula can influence them.
Why did SUM return 0 on my amounts?
Because they are stored as text. SUM ignores text values, as Microsoft's documentation says, and gives no error. Compare COUNT, which counts numbers, with COUNTA, which counts cells that are not empty. If they differ on a column that should hold only numbers, convert with VALUE and check the result against your control total.
How do I stop dates being read the wrong way round?
Import dates as text and build them with DATE from the parts you know, day then month for UK dates. Then spot-check a row whose day is above 12 and count dates outside the expected period. DATE silently rolls impossible values forward, so a swapped month of 13 becomes January of the next year rather than an error.
Should I delete duplicate and blank rows?
Flag them instead. A status column marking each row keep, duplicate or blank leaves the evidence in place, lets the reconciliation count what was excluded and lets someone else check your decision. Before excluding a duplicate, compare the whole row, not just the reference.
Does a reconciliation of zero prove my sheet is right?
No. It proves that nothing was added or lost without explanation. It cannot tell whether a row you kept should have been excluded: a duplicate you failed to flag simply moves from one line to another and the difference stays zero. Combine it with validation checks, spot checks and, for work that matters, an independent reviewer.
The assistant used a function my spreadsheet does not recognise. What now?
Treat it as a warning sign. Assistants sometimes use functions that do not exist, or that exist in one program only. Look it up in your program's own function list. If it is not there, ask for a version that uses only listed functions, then test that version like any other formula.
Do these formulas work in Excel and Google Sheets?
Every function used appears in Microsoft's Excel function list and Google's Sheets function list, but the formulas were run only in LibreOffice Calc 26.2.5.2, so test them on the practice file in your own program first. In LibreOffice, set Formula syntax to Excel A1 so that sheet references such as Raw!A2 work as printed.
Write as you go
My notes
Use this scratchpad for your own notes, working or answers as you read. Notes are saved in this browser on this device. Downloading makes a local copy; it does not send your notes to Mickai.
Consolidate your learning
Review your work
Work through the exercises and questions, then compare your reasoning with the worked answers. A scored exam and verifiable certificate are not yet available for this course.
Review the questionsLearn the language
Key terms
- CSV
- Comma-separated values: a plain text table in which each line is a row and commas separate the cells.
- Control total
- A figure from outside your formulas, such as a record count or a hand-added sum, that later results must match.
- Reconciliation
- Showing that the before figure, minus each logged change, equals the after figure, with no unexplained difference.
- Change log
- A record of every change made to the data: what, where, when, who, why, and how it was checked.
- Validation check
- A formula that tests whether each row meets the rules, such as a positive amount and a date in the right month.
- Edge case
- An unusual input, such as a missing value or a day above 12, used to test whether a formula still behaves.
6 of the workbook's 11 terms. The complete glossary is in the workbook.
Follow the evidence
Sources and checks
Facts last checked: .
Examples in this workbook were run on: LibreOffice Calc 26.2.5.2 on Windows 11 Pro, run headless through its bundled Python 3.12.13 UNO bridge (text import, typed formulas, fill down, hidden rows, filter); Python 3.12.10 with openpyxl 3.1.5 for an .xlsx cross-check and exact decimal arithmetic (2026-09-26).
These workbooks use AI assistance. See how the workbooks are made.
- Excel functions (alphabetical)Microsoft Support
- Google Sheets function listGoogle Docs Editors Help
- Functions by Category (Calc)LibreOffice Help, The Document Foundation
- Set automatic data conversionsMicrosoft Support
- Import or export text (.txt or .csv) filesMicrosoft Support
- Text Import WizardMicrosoft Support
- Text ImportLibreOffice Help, The Document Foundation
- Importing and Exporting CSV FilesLibreOffice Help, The Document Foundation
- Formula optionsLibreOffice Help, The Document Foundation
- SUM functionMicrosoft Support
- COUNT functionMicrosoft Support
- COUNTGoogle Docs Editors Help
- VALUE functionMicrosoft Support
- DATE functionMicrosoft Support
- DATEGoogle Docs Editors Help
- DATELibreOffice Help, The Document Foundation
- SUBTOTAL functionMicrosoft Support
- SUBTOTALGoogle Docs Editors Help
- Mathematical Functions (SUBTOTAL)LibreOffice Help, The Document Foundation
- ChatGPT and large language models: what's the risk?National Cyber Security Centre (UK)
- Principle (c): Data minimisationInformation Commissioner's Office (UK)
- PseudonymisationInformation Commissioner's Office (UK)
- The AQuA BookGOV.UK (Government Analysis Function and partners)
Created by Mickarle Wagstaff-Irons - Micky Irons with the Mickai team. Published by Mickai LTD. Last updated 26 September 2026.
NextKeep going
Where to go next
Recommended for you
Python: from first script to a useful automation
A complete beginner's route from installing Python to a tested, dry-run-first tool that sorts and reports on a folder, using only what comes with Python.
Recommended for you
What is an AI agent? Agentic AI explained
A plain-English guide to AI agents: how they differ from chatbots and workflows, the parts and the loop, levels of autonomy, the main risks and how to keep a human in control.
Recommended for you
Build your first app with an AI coding assistant
Build a small bill-splitting web page with any AI coding assistant while staying in control: brief it, build in steps, review the code, test edge cases and keep safe copies.