Programmeringsprojekt idéer som du faktiskt slutför

Summary

Det bästa kodprojektet är ofta det du redan har framför dig: kalkylbladet du öppnar varje morgon. Här är tolv idéer, från en eftermiddag till en helg, med vilket språk som passar var filen ligger och vilka versionsgränser du bör känna till. Hoppa över att-göra-appen. Ditt kalkylblad har redan en bättre idé.

En laptop med ett kalkylblad och en editor bredvid en anteckningsbok med projektskisser

Letar du efter programmeringsprojekt idéer som du faktiskt kommer att slutföra? Börja med kalkylbladet du redan öppnar varje morgon. En tracker som mejlar dig, ett blad som städar sig självt, en instrumentpanel som uppdaterar sig utan att du rör den: det här är riktiga kodprojekt, och datan ligger redan där. Nedan finns tolv idéer som jag själv har byggt eller sett kollegor bygga, sorterade från "en eftermiddag" till "en helg".

Varför ditt eget kalkylblad slår en att-göra-app

De flesta listor med kodprojektidéer ger dig samma fem saker: en att-göra-app, en kalkylator, en väderwidget. De är okej. De är också tråkiga, för ingen behöver resultatet.

Ett kalkylbladsprojekt börjar med ett verkligt irritationsmoment. Du kopierar samma siffror till samma kolumner varje fredag. Du jagar godkännanden för hand. Du bygger om samma rapport varje månad. När irritationen är äkta slutför du projektet, eftersom du är första användaren.

Det finns en andra anledning. Kalkylblad ger dig ett gratis gränssnitt, en gratis databas och en gratis delningsmodell. Du hoppar över installationen som dödar de flesta nybörjarprojekt och går rakt på logiken.

Vilket språk passar vilket kalkylbladsprojekt?

Välj verktyg efter var filen ligger, inte efter vad som är trendigt.

En varning om versioner: Python i Excel och LAMBDA kräver Excel 365. Apps Script fungerar bara i Sheets. VBA fungerar bara i Excel på datorn. Sitter du på en låst företagsdator, kolla det innan du blir kär i idén.

Har du aldrig kodat, börja med Apps Script. Det är JavaScript med en mjuk start: öppna Tillägg, sedan Apps Script, så står du i en editor kopplad till ditt blad.

Händer som skriver på ett tangentbord medan ett kalkylblad och ett skriptfält lyser på skärmen

Nybörjarprojekt (en eftermiddag vardera)

De här kräver kanske 20 till 60 rader kod. Jag skulle göra dem i den här ordningen.

1. En egen meny som kör en städning. Skriv en funktion som tar bort extra mellanslag, rättar versaler och tar bort tomma rader. Lägg sedan till den i en meny med onOpen. Du lär dig funktioner, intervall och menyns API på en gång. Det är också det första skriptet folk faktiskt behåller.

2. Ett månadssammandrag. Läs värden från en flik med rådata, summera dem per kategori och skriv resultatet i en andra flik. Det här är SUMIF med extra steg, och det är poängen: du ser exakt vad dina formler gjorde åt dig. Hoppa över det om du redan lever i pivottabeller. Lärdomen är loopen, inte resultatet.

3. En påminnelse om födelsedag eller förnyelse. Håll en lista med datum i ett blad och låt en daglig trigger mejla dig när ett datum är en vecka bort. Apps Script-triggers är "aha"-ögonblicket för de flesta. Något körs medan du sover.

4. En kontroll av datavalidering. Skanna en kolumn och markera varje rad som bryter mot dina regler: fel mejlformat, negativt pris, saknat ID. Du skriver din första reguljära uttryck och hatar det lite, vilket är normalt.

Så här ser det ut i ett riktigt skript. Det här är enklaste påminnelsen jag vet, redo att klistras in i Apps Script-editorn.

function sendReminders() {
  const rows = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
  rows.slice(1).forEach(([name, date]) => {
    const days = (new Date(date) - new Date()) / 86400000;
    if (days > 0 && days <= 7) {
      MailApp.sendEmail("you@example.com", "Coming up: " + name, "Due " + date);
    }
  });
}

Argument för argument: getValues() returnerar varje rad som en array, slice(1) hoppar över rubrikraden, och MailApp.sendEmail(till, ämne, text) skickar mejlet. Koppla en tidsstyrd trigger så körs det varje morgon. Konton för privatpersoner får skicka till högst 100 mottagare per dag, och en körning stoppas efter 6 minuter, enligt Apps Script-kvotsidan. Gott nog för en personlig påminnelse, inte för ett nyhetsbrev.

Mellanprojekt (en helg vardera)

Här börjar du koppla kalkylbladet till omvärlden.

5. En utgiftslogg som matas av ett formulär. Ett Google Formulär skriver till ett blad, ett skript kategoriserar varje post och en sammanfattningsflik visar utgifter per månad. Formuläret gör det tråkiga inmatningsarbetet, så du kan koncentrera dig på reglerna.

6. En bevakning av pris eller aktiekurs. Hämta ett tal från en publik sida eller ett API med UrlFetchApp, logga det med tidsstämpel varje timme och rita upp historiken. Jag följde en gång flygpriser inför en resa på det här sättet. Tyvärr var lärdomen att priserna går upp den dag du bestämmer dig för att köpa.

7. Ett godkännandeflöde. En rad får status "Väntar", godkännaren får ett mejl med två länkar, och ett klick uppdaterar bladet. Det känns som att bygga en liten SaaS-produkt. Det är också det projekt folk oftast efterfrågar på jobbet.

8. En veckosammanfattning från blad till Slack. Varje måndag postar du de fem mest försenade punkterna i en kanal. Webhooks är ett enda HTTP-anrop. Vill du inte skriva anropet själv kan en no-code-koppling sköta rördragningen medan du skriver logiken.

Post-it-lappar och en surfplatta med instrumentpanel på ett träbord

Avancerade projekt för dig som vuxit ur kalkylbladet

När bladet känns för litet, behåll det som gränssnitt och flytta det tunga arbetet ut.

9. Python i Excel för en rensningskedja. Ta bort dubbletter bland 200 000 rader, matcha företagsnamn med fuzzy matching och flagga avvikelser med några rader pandas. Microsofts dokumentation om Python i Excel beskriver installationen. Kräver Excel 365, och dina formler äger fortfarande rutnätet.

10. Ett avstämningsskript. Jämför två exporter (bank mot huvudbok, order mot fakturor) och lista det som bara finns på ena sidan. Redovisare och driftteam upprepar detta varje månad, så även en grov version sparar timmar. Börja med exakta matchningar och lägg sedan till toleransregler för belopp och datum.

11. Ett personligt API ovanpå ett blad. Publicera bladet som en liten webbapp med doGet, returnera JSON och låt ett annat verktyg läsa det. Billigt, lite hackigt, och ett bra sätt att förstå vad ett API är.

12. Ett återanvändbart LAMBDA-bibliotek. Inget skript alls, men det räknas. Paketera dina fem favoritformelmönster som namngivna funktioner, så att logiken bor på ett enda ställe. Biscuit skulle kalla det att gräva ner benet där du hittar det igen.

De tre felen som kommer att äta upp din första helg

Varje kalkylbladsskript går sönder på samma få ställen. Att känna till dem sparar timmar.

Behörighetsfrågor. Första gången ett skript skickar mejl eller rör en annan fil frågar Google efter godkännande. Folk klickar bort det, skriptet misslyckas tyst, och de antar att koden är fel. Kör funktionen en gång för hand från editorn och godkänn dialogen.

Datum som inte är datum. En cell som ser ut som ett datum kan vara text, och skriptet jämför då en sträng med ett tal. Kontrollera med typeof eller slå in värdet i new Date(). I Excel visar sig samma fälla som ett datum lagrat som text som vägrar sortera.

Slut på tid. En loop som läser eller skriver en cell i taget är långsam, eftersom varje anrop går tillbaka till servern. Läs hela intervallet en gång med getValues(), arbeta med arrayen och skriv tillbaka en gång med setValues(). Ett skript som tog fyra minuter går ofta ner till några sekunder. Det är den enskilt största hastighetsvinsten i Apps Script, och ingen nämner den i nybörjarguiderna.

När något går sönder, lägg till rader med console.log(), öppna panelen Körningar och läs det faktiska felet. Meddelandet är oftast mer hjälpsamt än det ser ut.

En realistisk första vecka

Vill du ha en plan istället för en lista, så här är den jag ger mina kollegor. Dag ett: välj irritationsmomentet och skriv önskat resultat i en mening. Dag två: gör uppgiften för hand en gång, långsamt, och anteckna varje steg. Dag tre: gör stegen till en funktion som läser datan och skriver ut resultatet i loggen. Dag fyra: skriv resultatet tillbaka till bladet. Dag fem: lägg till en trigger eller ett menyval, och visa det för en person. Ingen får medalj för ett perfekt skript. Ett grovt skript som körs varje morgon slår ett polerat som ligger i en mapp som heter "senare".

Och AI? Använd det, men läs vad det skriver

AI-assistenter är bra på den här typen av arbete, eftersom kalkylbladsskript är korta och målet är lätt att beskriva. Säg vad kolumnerna heter, vad som ska hända och hur resultatet ska se ut. Du får ett första utkast på några sekunder.

Två regler som jag följer. För det första: kör det på en kopia av bladet, aldrig på originalet. Skript kan skriva över en kolumn snabbare än du hinner säga "ångra". För det andra: be assistenten förklara varje rad, och ändra sedan ett värde själv. Kan du inte förutsäga vad som händer äger du inte koden än.

En golden retriever sitter mellan två öppna datorer och tittar på skärmen

En bra prompt ser ut så här: "Kolumn A har namn, kolumn B har förfallodatum. Mejla mig en lista över allt som förfaller inom 7 dagar, en gång om dagen." Den är konkret om indata, utdata och tidpunkt. Vaga prompter som "automatisera mitt blad" ger vag kod, och vag kod är där de tysta buggarna bor. Om första utkastet misslyckas, klistra in det exakta felmeddelandet och be om en rättning, i stället för att skriva om prompten från början.

För vanliga formler behövs inget skript. Beskriv problemet och få formeln, med en notis om den fungerar i Excel, Sheets eller båda.

Så väljer du det du faktiskt slutför

Välj projektet med minst första version. "Mejla mig när ett datum närmar sig" slår "ett fullständigt CRM". Släpp den fula versionen, använd den i två veckor och förbättra sedan den del som stör dig. Skriv ner vad som gick sönder, för listan över irritationsmoment blir dina nästa tre projekt. De flesta skript jag fortfarande använder började som ett hack på fyra rader som jag var lite generad över att visa någon.

Tre filter hjälper:

Vill du ha en plats att bygga och gå sönder på säkert, hjälper en molnbaserad kodsandlåda med de mellanstora projekt som lämnar bladet.

Var jag skulle börja på måndag

Mitt val: projekt 3, påminnelsen. Den är kort, använder triggers och resultatet landar i din inkorg, så du märker att den fungerar. Lägg sedan till projekt 1 så att städningen ligger ett klick bort. Vid månadens slut har du två skript du litar på och en tydlig idé om vad du ska bygga härnäst.

Hoppa över att-göra-appen. Ditt kalkylblad har redan en bättre idé i sig.

Frequently asked questions

Vilket språk ska jag använda för mitt första kalkylbladsskript?
Apps Script om du använder Google Sheets, eftersom det är JavaScript och startar direkt från menyn Tillägg. Använder du Excel 365 kan du välja Office Scripts eller Python i Excel.
Måste jag kunna koda för att använda de här idéerna?
Nej. Projekt 1 och 2 kräver lite kod, och projekt 3 är en påminnelse som du kan klistra in i Apps Script. Börja där och justera efter behov.
Varför körs inte mitt Apps Script-skript?
Oftast beror det på att behörigheterna inte är godkända. Kör funktionen en gång för hand från editorn och godkänn dialogen. Kontrollera sedan panelen Körningar för felmeddelandet.
Hur snabbar jag upp ett långsamt skript?
Läs hela intervallet med getValues() en gång, arbeta med arrayen och skriv tillbaka med setValues(). Att läsa och skriva cell för cell är ofta det som gör skriptet långsamt.
Fungerar Python i Excel i alla versioner?
Nej. Python i Excel kräver Excel 365, och LAMBDA kräver det också. VBA fungerar bara i Excel på datorn och Apps Script bara i Google Sheets.
Kan jag köra skriptet direkt på min riktiga fil?
Det rekommenderas inte. Testa på en kopia först, eftersom skript kan skriva över kolumner snabbt.
Hur många mejl kan ett Apps Script skicka per dag?
Konton för privatpersoner är begränsade till 100 mottagare per dag, enligt Googles kvotsida för Apps Script.