{"course":{"slug":"choosing-your-tools","title":"Choosing and Using the Tools","url":"https://addaly.com/learn/choosing-your-tools","level":"beginner","track":"work"},"lesson":{"slug":"spreadsheet-and-data-tools","title":"Spreadsheets and data tools","url":"https://addaly.com/learn/choosing-your-tools/spreadsheet-and-data-tools","position":63,"of":76,"minutes":8,"answer":"Data work is the category where checking is cheapest, so choose tools that show you the code, and make printing row counts before and after every operation the habit that catches silently dropped records.","keyIdea":"Data work is the category where checking is cheapest, so choose tools that show you the code, and make printing row counts before and after every operation the habit that catches silently dropped records."},"body":{"format":"markdown","text":"## The category where verification is easy, and that changes everything\n\nMost AI work is hard to check. Data work is the exception: if the model writes code, you can read the code, run it, and compare the answer with something you already know. That makes this the category where these tools give the most reliable return, and it should shape how you choose among them.\n\nThe consequence is a strong preference: **prefer a tool that shows you the code over one that shows you only the answer.**\n\n## Four shapes on offer\n\n**AI inside the spreadsheet.** Formula suggestions, natural-language column operations, summarising a range. Convenient for small jobs, and it operates on your live sheet, which is worth respecting.\n\n> Figure: Why data work is the category that pays. A two by two grid, rows The tool shows you the code and The tool shows you only the answer, columns The answer is right and The answer is wrong: The tool shows you the code and The answer is right: Verified; The tool shows you the code and The answer is wrong: Caught; The tool shows you only the answer and The answer is right: Believed; The tool shows you only the answer and The answer is wrong: Believed. Which cell you land in is decided when you choose the tool, not when you read the output. Prefer the product that leaves a formula or a script over the one that pastes a value, even when the value is what you wanted.\n\n**Code interpreter in a chat product.** Upload a file, ask a question, get an answer plus a chart plus the code that produced it. Currently the best general-purpose option for anybody who does not write code, precisely because the code is visible.\n\n**A notebook with an assistant.** Jupyter or a hosted notebook with completion. More control, more setup, the same visibility.\n\n**SQL assistants.** Turn a question into a query against a database. The query is the thing to read; a wrong join is invisible in the result and obvious in the SQL.\n\n## The free path\n\n**LibreOffice Calc** for the spreadsheet. **Python with pandas** in a free notebook: Google Colab and Kaggle both offer free hosted notebooks, and a local Jupyter costs nothing. A free coding assistant such as Continue with a local model handles the writing. **DuckDB** runs SQL over CSV files directly, free, on your own machine, without a database server.\n\nThat combination does everything the paid data tools do for anyone working at the scale of a spreadsheet, and it keeps the data local.\n\n## The failures specific to data work\n\n**The silently dropped row.** A filter or a join that removes records nobody counted. Always print the number of rows before and after every operation. This one habit catches more errors than any other.\n\n**The wrong column.** Two columns with similar names, and the model picks the other one. Reading the code catches it; reading the chart does not.\n\n**Numbers that are text.** A column of amounts stored as strings, with currency symbols or thousands separators, sorts alphabetically and sums to zero. Very common in exported data.\n\n**Dates.** Ambiguous formats, mixed conventions in one column, and time zones. `03/04/2026` is two different days depending on where the file came from.\n\n**The confident average.** A mean computed over a column containing sentinel values like `-1` or `9999` for \"unknown\". The answer is a number, and it is meaningless.\n\n**Silent type coercion.** A join on an identifier where one side is numeric and the other is text produces zero matches, and the code runs without complaint.\n\n## The habit that makes it safe\n\nAsk three questions of every result, and ask them out loud:\n\n1. **How many rows went in, and how many came out?**\n2. **Does the answer match something I already know?** One value you can verify by hand.\n3. **What would this look like if the code were wrong?** If you cannot tell, add a check that would distinguish the two.\n\nThen read the code. Even without knowing the language, the column names and the filter conditions are readable, and that is where the errors are.\n\n## Where the AI-in-the-spreadsheet products differ\n\nIf you do stay inside a spreadsheet, one distinction is worth knowing. Some products generate a **formula** you can inspect and keep; others compute a **value** and paste it in. The first leaves an auditable sheet that recalculates when the data changes; the second leaves a number nobody can explain in six months.\n\nPrefer the formula every time, even when the value is what you wanted. A spreadsheet full of pasted constants is the same problem as an answer without code, and it is harder to spot because the sheet looks normal.\n\n## Where these tools are excellent\n\nExploratory work on a file you have never seen. Ask what is in it, what the distributions look like, what is missing, what looks odd. That is an hour of tedious work compressed into five minutes, it is exactly the kind of task where a wrong answer is visible, and it is the best argument for the whole category."},"check":{"question":"An assistant joins two tables and returns a summary that looks plausible, but every row from one table is missing. Which check would have exposed this?","options":[{"text":"Printing row counts before and after the join and comparing with what was expected.","correct":true},{"text":"Asking the assistant to explain its approach in plain language before running it.","correct":false,"tempting":"Produces a description of the intended logic, which will sound correct while the type mismatch that broke the join goes unmentioned."},{"text":"Comparing the summary against a figure you already know to be correct.","correct":false,"tempting":"Would catch a wrong total in many cases, but a summary of the surviving rows can look entirely reasonable on its own."},{"text":"Requesting the output as a chart, since a missing group is visually obvious in a plot.","correct":false,"tempting":"Relies on noticing an absence, and a chart of the remaining groups looks complete when nothing marks what is gone."}]},"prev":{"slug":"document-and-ocr-tools","title":"Documents, PDFs and OCR","url":"https://addaly.com/learn/choosing-your-tools/document-and-ocr-tools"},"next":{"slug":"meeting-notetakers","title":"Meeting notetakers","url":"https://addaly.com/learn/choosing-your-tools/meeting-notetakers"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'Spreadsheets and data tools', in Choosing and Using the Tools. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/choosing-your-tools/spreadsheet-and-data-tools (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"Spreadsheets and data tools","courseTitle":"Choosing and Using the Tools","module":{"index":7,"slug":"beyond-chat","title":"Beyond the chat box"},"answer":null,"keyIdea":"Data work is the category where checking is cheapest, so choose tools that show you the code, and make printing row counts before and after every operation the habit that catches silently dropped records.","hero":{"kind":"figure","figure":{"t":"figure","label":"Figure","figure":{"cols":["The answer is right","The answer is wrong"],"rows":["The tool shows you the code","The tool shows you only the answer"],"type":"matrix","cells":[["Verified","Caught"],["Believed","Believed"]],"title":"Why data work is the category that pays","caption":"Which cell you land in is decided when you choose the tool, not when you read the output. Prefer the product that leaves a formula or a script over the one that pastes a value, even when the value is what you wanted.","cellLabels":[["read the columns and the filters","wrong column, dropped rows, bad join"],["right, and nobody can say why","a chart nobody can question"]]},"alt":"Figure: Why data work is the category that pays. A two by two grid, rows The tool shows you the code and The tool shows you only the answer, columns The answer is right and The answer is wrong: The tool shows you the code and The answer is right: Verified; The tool shows you the code and The answer is wrong: Caught; The tool shows you only the answer and The answer is right: Believed; The tool shows you only the answer and The answer is wrong: Believed. Which cell you land in is decided when you choose the tool, not when you read the output. Prefer the product that leaves a formula or a script over the one that pastes a value, even when the value is what you wanted."}},"blocks":[{"t":"h2","id":"the-category-where-verification-is-easy-and-that-changes-eve","runs":[{"text":"The category where verification is easy, and that changes everything"}]},{"t":"p","runs":[{"text":"Most AI work is hard to check. Data work is the exception: if the model writes code, you can read the code, run it, and compare the answer with something you already know. That makes this the category where these tools give the most reliable return, and it should shape how you choose among them."}]},{"t":"p","runs":[{"text":"The consequence is a strong preference: "},{"text":"prefer a tool that shows you the code over one that shows you only the answer.","b":true}]},{"t":"h2","id":"four-shapes-on-offer","runs":[{"text":"Four shapes on offer"}]},{"t":"p","runs":[{"text":"AI inside the spreadsheet.","b":true},{"text":" Formula suggestions, natural-language column operations, summarising a range. Convenient for small jobs, and it operates on your live sheet, which is worth respecting."}]},{"t":"p","runs":[{"text":"Code interpreter in a chat product.","b":true},{"text":" Upload a file, ask a question, get an answer plus a chart plus the code that produced it. Currently the best general-purpose option for anybody who does not write code, precisely because the code is visible."}]},{"t":"p","runs":[{"text":"A notebook with an assistant.","b":true},{"text":" Jupyter or a hosted notebook with completion. More control, more setup, the same visibility."}]},{"t":"p","runs":[{"text":"SQL assistants.","b":true},{"text":" Turn a question into a query against a database. The query is the thing to read; a wrong join is invisible in the result and obvious in the SQL."}]},{"t":"h2","id":"the-free-path","runs":[{"text":"The free path"}],"role":"free"},{"t":"p","runs":[{"text":"LibreOffice Calc","b":true},{"text":" for the spreadsheet. "},{"text":"Python with pandas","b":true},{"text":" in a free notebook: Google Colab and Kaggle both offer free hosted notebooks, and a local Jupyter costs nothing. A free coding assistant such as Continue with a local model handles the writing. "},{"text":"DuckDB","b":true},{"text":" runs SQL over CSV files directly, free, on your own machine, without a database server."}]},{"t":"p","runs":[{"text":"That combination does everything the paid data tools do for anyone working at the scale of a spreadsheet, and it keeps the data local."}]},{"t":"h2","id":"the-failures-specific-to-data-work","runs":[{"text":"The failures specific to data work"}]},{"t":"p","runs":[{"text":"The silently dropped row.","b":true},{"text":" A filter or a join that removes records nobody counted. Always print the number of rows before and after every operation. This one habit catches more errors than any other."}]},{"t":"p","runs":[{"text":"The wrong column.","b":true},{"text":" Two columns with similar names, and the model picks the other one. Reading the code catches it; reading the chart does not."}]},{"t":"p","runs":[{"text":"Numbers that are text.","b":true},{"text":" A column of amounts stored as strings, with currency symbols or thousands separators, sorts alphabetically and sums to zero. Very common in exported data."}]},{"t":"p","runs":[{"text":"Dates.","b":true},{"text":" Ambiguous formats, mixed conventions in one column, and time zones. "},{"text":"03/04/2026","code":true},{"text":" is two different days depending on where the file came from."}]},{"t":"p","runs":[{"text":"The confident average.","b":true},{"text":" A mean computed over a column containing sentinel values like "},{"text":"-1","code":true},{"text":" or "},{"text":"9999","code":true},{"text":" for “unknown”. The answer is a number, and it is meaningless."}]},{"t":"p","runs":[{"text":"Silent type coercion.","b":true},{"text":" A join on an identifier where one side is numeric and the other is text produces zero matches, and the code runs without complaint."}]},{"t":"h2","id":"the-habit-that-makes-it-safe","runs":[{"text":"The habit that makes it safe"}]},{"t":"p","runs":[{"text":"Ask three questions of every result, and ask them out loud:"}]},{"t":"ol","start":1,"items":[[{"text":"How many rows went in, and how many came out?","b":true}],[{"text":"Does the answer match something I already know?","b":true},{"text":" One value you can verify by hand."}],[{"text":"What would this look like if the code were wrong?","b":true},{"text":" If you cannot tell, add a check that would distinguish the two."}]]},{"t":"p","runs":[{"text":"Then read the code. Even without knowing the language, the column names and the filter conditions are readable, and that is where the errors are."}]},{"t":"h2","id":"where-the-ai-in-the-spreadsheet-products-differ","runs":[{"text":"Where the AI-in-the-spreadsheet products differ"}]},{"t":"p","runs":[{"text":"If you do stay inside a spreadsheet, one distinction is worth knowing. Some products generate a "},{"text":"formula","b":true},{"text":" you can inspect and keep; others compute a "},{"text":"value","b":true},{"text":" and paste it in. The first leaves an auditable sheet that recalculates when the data changes; the second leaves a number nobody can explain in six months."}]},{"t":"p","runs":[{"text":"Prefer the formula every time, even when the value is what you wanted. A spreadsheet full of pasted constants is the same problem as an answer without code, and it is harder to spot because the sheet looks normal."}]},{"t":"h2","id":"where-these-tools-are-excellent","runs":[{"text":"Where these tools are excellent"}]},{"t":"p","runs":[{"text":"Exploratory work on a file you have never seen. Ask what is in it, what the distributions look like, what is missing, what looks odd. That is an hour of tedious work compressed into five minutes, it is exactly the kind of task where a wrong answer is visible, and it is the best argument for the whole category."}]}],"check":{"question":[{"text":"An assistant joins two tables and returns a summary that looks plausible, but every row from one table is missing. Which check would have exposed this?"}],"options":[{"text":[{"text":"Printing row counts before and after the join and comparing with what was expected."}],"correct":true,"tempting":null},{"text":[{"text":"Asking the assistant to explain its approach in plain language before running it."}],"correct":false,"tempting":[{"text":"Produces a description of the intended logic, which will sound correct while the type mismatch that broke the join goes unmentioned."}]},{"text":[{"text":"Comparing the summary against a figure you already know to be correct."}],"correct":false,"tempting":[{"text":"Would catch a wrong total in many cases, but a summary of the surviving rows can look entirely reasonable on its own."}]},{"text":[{"text":"Requesting the output as a chart, since a missing group is visually obvious in a plot."}],"correct":false,"tempting":[{"text":"Relies on noticing an absence, and a chart of the remaining groups looks complete when nothing marks what is gone."}]}],"order":[2,3,0,1],"why":null},"prev":{"slug":"document-and-ocr-tools","title":"Documents, PDFs and OCR","minutes":8},"next":{"slug":"meeting-notetakers","title":"Meeting notetakers","minutes":7}}}