Skriva en beräkningsrad
Den här sidan beskriver grunderna för alla beräkningsblock: hur en rad tolkas, hur du kommenterar beräkningar, namnger och återanvänder värden samt låter en rad bero på ett villkor. Börja här om du är ny på beräkningar i Varlig. Återvänd hit om ett namn eller en kommentar inte fungerar som väntat.
Ett uttryck per rad
Beräkningar finns i beräkningsblock inuti anteckningar. Skriv en inledande rad med ```calc eller tryck på ⌘Y för att infoga ett block. Varje rad i blocket är en beräkning, och resultatet visas bredvid raden.
£3.40 * 5 ger £17.0045 min + 1 hour 20 min ger 2 hours 5 min1.5 litres in ml ger 1,500 mLTomma rader och kommentarrader visar inget resultat. Du kan därför skapa luft i blocket och lägga till förklaringar medan du skriver.
Varlig försöker först tolka hela raden som matematik, inklusive vardagliga fraser som £45 with 20% VAT. Om det inte fungerar bortser Varlig från ord som inte känns igen, så 5 apples + 3 oranges ger ändå 8. Det är praktiskt för snabba anteckningar, men en beskrivning kan krocka med en fras eller ett enhetsnamn. Använd därför en kommentar eller etikett, som beskrivs nedan, när du vill förklara vad raden avser. Läs mer under Hur Varlig tolkar en fras.
Ett ord där ett värde borde stå ger ett fel som pekar ut ordet, i stället för ett felaktigt resultat. Meddelandet föreslår det närmaste namn du har definierat:
rent = £1,150rnt + £200 ger Unsupported: unrecognized calculation at "rnt"; did you mean "rent"?Detsamma gäller namn med siffror eller understreck, som rent2 och rent_2. De ignoreras aldrig som beskrivande text och tolkas inte heller som sin sifferdel. Parenteser, funktionsanrop och omvandlingar döljer inte heller felet. Siffror går bra i etiketter, så lägg beskrivningen där:
rent = £1,150rent2 + £200 ger Unsupported: unrecognized calculation at "rent2"; did you mean "rent"?(rnt + £200) * 2 ger Unsupported: unrecognized calculation at "rnt"; did you mean "rent"?Flat 2: rent + £200 ger £1,350.00Rader som börjar med ett listtecken
En punktlistemarkör i början av raden markerar en vara i en inköpslista. Beskrivningen före beloppet ignoreras då och raden kan fortfarande beräknas. Använd -, *, •, +, – eller — följt av ett mellanslag:
- flowers 1,200 ger 1,200* coffee $4.50 ger $4.50- 12 mugs ger 12- 6 bananas @ 18p ger £1.08- 500g pasta 3 packs at £1.10 each ger £3.30Ett streck före enbart ett värde är fortfarande ett minustecken, så - 1,200 ger -1,200 och - 12 kg ger -12 kg. Börja raden med * eller • för mått i en lista. Dessa tolkas alltid som punktlistemarkörer när de står först.
Ord bredvid ett belopp
En beskrivning gör raden lättläst utan att ändra värdet. Ord sammanfogade med +, & eller per hör till beskrivningen och bildar ingen beräkning. Ett minustecken direkt intill sitt belopp hör till beloppet, och ett referensnummer efter ett ord påverkar inte beräkningen:
basin + pedestal £145 ger £145.00food cost per head £14.20 ger £14.20milk, bread, eggs £12.40 ger £12.40Netflix -£10.99 ger -£10.99DIRECT DEBIT REF 4471 £62.40 ger £62.40Invoice #123: £250 ger £250.00double cream 600 mL ger 600 mLchlorine 3 ppm ger 3 ppmt-shirt £12 ger £12.00on the day 60 at £28 ger £1,680.00Det täcker det mesta i ett kontoutdrag, en orderbekräftelse eller en komponentlista som du klistrar in: rader med stora bokstäver, uppräkningar med kommatecken, namn med bindestreck och beskrivningar som råkar börja med ett ord som Varlig känner igen, som double, per eller on the day.
En numrerad radetikett, som Year 2, Room 12 eller ISA 2026, eller en period med årtal, som Q4 2026, July 2026 eller week 40 2027, hör också till beskrivningen. Det gäller oavsett var på raden den står, så länge den följs av sitt belopp: ett värde med valuta, enhet eller procenttecken, eller ett ensamt tal före nästa operator. Etikettens nummer läggs aldrig till i beräkningen:
Year 1 £5,000 + Year 2 £6,000 ger £11,000.00Year 1 5,000 + Year 2 6,000 ger 11,000ISA 2025 £20,000 + ISA 2026 £20,000 ger £40,000.00Room 12 £40 + Room 14 £50 ger £90.00Q3 2026 £5,000 + Q4 2026 £6,000 ger £11,000.00July 2026 £500 + August 2026 £600 ger £1,100.00Ett ensamt tal efter ett ord är beloppet, som i rent 1200 + 300, och ett antal räknas fortfarande som i tickets 2 £40 each. En enhet som hour, week eller day mäter talet före den. Står den före ett tal blir den i stället en radetikett som andra ord: hour 2 betyder den andra timmen, aldrig en timme och två minuter. Om en valuta, enhet eller ett procenttecken följer inleder ett mellanslag efter etikettens nummer själva mängden. Därför betyder Week 2 150 hours 150 timmar, inte 2 150:
hour 1 £40 + hour 2 £50 ger £90.00hours 8 + hours 7 ger 15Week 2 150 hours + Week 3 160 hours ger 310 hoursKommentarer
En kommentar är texten som miniräknaren ignorerar. Det finns fyra sätt att skriva en:
| Form | Exempel | Vad ignoreras |
|---|---|---|
| Kommentar med nummertecken | rent * 12 # per year eller # Budget |
Allt från ett # och ett mellanslag till slutet av raden |
| Kommentar med snedstreck | rent * 12 // per year |
Allt från // till slutet av raden |
| Anmärkning inom citattecken | "flat whites" £3.40 * 5 |
Allt inom dubbla citattecken, var som helst på en rad |
| Anmärkning inom hakparenteser | $999 (for iPhone 16) |
Ord inom hakparenteser, var som helst på raden |
# Weekly shopmilk = £1.45bread = £1.20 // sourdougheggs = £2.30 "free range"milk + bread + eggs # without the extras ger £4.95Ett nummertecken eller snedstreck gör resten av raden till en kommentar, medan citattecken och parenteser även kan stå mitt på raden. Du kan därför beskriva vad ett belopp avser och ändå fortsätta beräkningen:
$999 (for iPhone 16) ger $999.00laptop £899 (refurbished) + £49 case ger £948.00Boing "747" is $386.8M ger $386.8MCitattecken är säkrast runt något som ser ut som ett tal. Därför tas 747 ovan inte med i beräkningen. Parenteser som bara innehåller ett tal tolkas som matematik, inte som en kommentar, eftersom ett tal intill en parentes innebär multiplikation:
$999 (3) ger $2,997.00Skriv därför antalet utanför parenteserna eller ange vad du räknar, som i $999 (3 handsets). Allt annat än enbart ett tal förblir en kommentar, även ord med bindestreck och procentsatser:
£134 (25% discount already applied) ger £134.00£10 (mother-in-law) ger £10.00En rad som börjar med nummertecken och mellanslag är en kommentar från början till slut och passar därför som rubrik i ett block.
Mellanslaget gör nummertecknet till en kommentar. Ett # direkt intill ett ord, som i #food, är en tagg. Den märker raden utan att ingå i beräkningen och låter dig summera alla rader med samma tagg, oavsett var i blocket de finns.
£12.50 lunch #food ger £12.50£8 coffee #food ger £8.00total of #food ger £20.50Ett nummertecken följt av siffror är varken kommentar eller tagg. Det anger ett referensnummer för det raden handlar om och ingår inte i beräkningen. Faktura-, order- och artikelnummer kan därför skrivas som de är.
Invoice #123: £250 ger £250.00part #4 weighs 20 g ger 20 gEtiketter
En etikett är några ord följda av ett kolon och ett mellanslag i början av en rad. Den beskriver svaret utan att vara en del av matematiken:
rent = £1,250bills = £180Rent and bills: rent + bills ger £1,430.00Café bill: £12.50 + £4 ger £16.50Etiketter får innehålla bokstäver, även med accenter, siffror, mellanslag och understreck, som i Flat 2: eller Q3 rent:.
En etikett skapar inte ett namn. Efter Rent and bills: rent + bills finns inget värde med namnet Rent and bills. Använd = om du vill återanvända resultatet. Undvik också etiketter före tilldelningar: Housing: rent = £1,250 visar beloppet men sparar inte rent.
Tilldelning
= ger ett värde ett namn. Raden visar också värdet så att du kan kontrollera det medan du skriver.
price = £85 ger £85.00price + 20% ger £102.00För att uppdatera ett namn som du redan har definierat, använd +=, -=, *= eller /=:
holiday fund = £400holiday fund += £150 ger £550.00holiday fund -= £85 ger £465.00servings = 4servings *= 3 ger 12flour = 750 gflour /= 3 ger 250 gOm höger sida misslyckas innehåller namnet felet, och varje rad som använder det visar samma fel tills du tilldelar namnet igen:
guests = 0per head = £120 / guests ger Error: divide by zeroper head + £5 ger Error: divide by zeroEtt värde som du sparar under ett namn kan ha en beskrivning, precis som på en fristående rad. Högerledet får däremot inte bestå av lösa ord runt ett ensamt namn, eftersom det då är oklart vad som ska sparas. Om rent = £1,150 är definierat rapporterar x = spent excl rent därför spent excl rent som ett fel, i stället för att obemärkt spara hyran.
paid rent = £1,150daily spend = paid rent / 16 ger £71.88Namn
Namn kan vara flera ord långa och kan innehålla accentuerade och icke-latinska bokstäver, siffror, understreck och emojis:
flat white = £3.40flat white * 5 ger £17.00crème brûlée = £6.50crème brûlée * 2 ger £13.00🍎 price = £0.45🍎 price * 6 ger £2.70q1 sales = £12,400q2 sales = £14,100q1 sales + q2 sales ger £26,500.00bedroom_width = 3.2 mbedroom_width * 2 ger 6.4 mEtt namn kan inkludera ord som Varlig använder någon annanstans, såsom to, in eller needed, och det kan låna namnet på en inbyggd funktion såsom floor. Var du än använder det som ett värde läser Varlig ditt värde:
time to work = 25 mintime to work * 10 ger 4 hours 10 minpaint needed = 12.44 Lpaint needed to 1 dp ger 12.4 Lfloor = 12 m²floor * 2 ger 24 m²floor(3.7) ger 3Med efterföljande parenteser, som i floor(3.7), fungerar funktionen fortfarande som vanligt.
Ett namn kan till och med sluta med ett talord, så att ett pris kan skrivas som på menyn:
table for four = £96table for four / 4 ger £24.00Om två namn börjar likadant har det längre företräde, så ett namn med ett nummer tolkas i sin helhet:
batch = £8.01batch 2 = £8.21batch 2 - batch ger £0.20Namn är skiftlägeskänsliga: eggs och Eggs är två olika värden.
Om ett namn ska vara tillgängligt i alla anteckningar, till exempel ditt timpris eller en skattesats, lägger du till det bland de globala definitionerna i Settings i stället för att upprepa det i varje anteckning.
Namn som krockar med inbyggda ord
Ett namn som du definierar har företräde framför allt annat med samma stavning, till exempel en enhet, ett talord eller en konstant. Vanliga namn förändrar ändå inte hur storheter tolkas. Ett tal direkt före ett namn i plural eller en enhet anger antalet av det, och en procentandel före tip eller tax anger dricksen eller skatten. Därför ändrar värden med namnen hours, nights eller tip inte dessa rader:
rate = £14 / hourhours = 7.5rate * 7.5 hours ger £105.00nights = 14£118/night * 14 nights ger £1,652.00tip = $12.69$84.60 + 18% tip ger $99.83Håll pekaren över ordet för att se vilken tolkning Varlig använde. För rate * 7.5 hours visas "Counts hours here, not the variable hours = 7.5." På andra ställen i en rad används namnets värde, som i split £90 among people.
Omvandlingar fungerar på samma sätt: efter in, to eller as har en enhet företräde framför ett namn som innehåller ett tal utan enhet. Ett namngivet antal hindrar därför inte en omvandling till en enhet med samma namn. Med miles = 12 ger 20 km in miles fortfarande 12,4274238447 mi. Ett namn framför enheten skalar den i stället för att ange ett omvandlingsmål. Därför ger 15.2 m in scale miles med scale = 76.2 meddelandet Unsupported: conversion to scale miles i stället för att välja någon av tolkningarna.
En sammansatt enhet med snedstreck utan mellanslag tolkas alltid som den enheten, oavsett hur du har använt bokstäverna på andra ställen. En densitet eller hastighet som kopieras från ett datablad behåller därför sin betydelse:
g = 9.81 m/s²2 g ger 19.62 m/s²2.7 g/cm³ ger 2.7 g/cm³50 kg * g ger 490.5 NI några fall ändrar din definition faktiskt radens betydelse:
- En ensam bokstav betyder alltid ditt värde. Efter
m = 3ger därför2 mresultatet 6 i stället för två meter. - Ett tal före ett singularnamn multiplicerar det, så efter
width = 3blir2 width6. Samma sak gäller för ett ettbokstavsnamn före en enhet eller en operator. Ledtråden säger det och föreslår att man skriver2 * widthför att göra det tydligt. - Även talord och konstanter ersätts: efter
one = 7gerone times tworesultatet 14.
Två vanor hjälper dig att undvika de flesta överraskningar:
- Använd inte ensamma enhetssymboler som namn, till exempel
m,s,hellerin. Undvik också att återanvända konstanter och talord sompi,oneochi. - Föredra beskrivande namn som
hours worked,day rateellerrun distance.
Ordningen i dokumentet
Varje rad kan använda namn som definierats ovanför den. Namnen är också tillgängliga i senare beräkningsblock i samma anteckning, så du kan ange indata en gång och återanvända dem längre ned.
price = £20quantity = 3cost = price * quantity ger £60.00price = £25price * quantity ger £75.00cost ger £60.00En ny definition av price ändrar inte den tidigare raden med cost: cost beräknades med priset som gällde där. Om du vill ändra resultatet av en tidigare beräkning redigerar du raden där dess indata definieras.
Resultatet ovanför
prev är resultatet på närmaste rad ovanför. ans betyder samma sak om du inte själv har gett ett värde namnet ans. De passar för en snabb fortsatt beräkning:
£1,250 * 12 ger £15,000.00prev / 52 ger £288.46ans + £20 ger £308.46För att lägga ihop en grupp rader, skriv sum eller total på en egen rad. Se Att lägga ihop raderna ovan.
Referera till en rad med dess nummer
line1, line2 och så vidare hänvisar till en beräkning genom dess position i anteckningen, med alla beräkningsblock räknade i ordning:
price = £100 ger £100.00line1 * 2 ger £200.00En referens fortsätter att peka på samma rad. Om du infogar en rad ovanför eller flyttar rader med Format › Move Line Up och Move Line Down används fortfarande samma rad i resultatet. Varlig numrerar om referenstexten åt dig i ett separat steg som kan ångras, så att det som står också är det som beräknas.
Om du raderar raden som en referens pekar på visas Error: line2 refers to a deleted line i stället för att ett annat värde används obemärkt. Ångra återställer både raden och referensen.
Referenser bevaras vid kopiering och inklistring
Om du kopierar eller klipper ut beräkningsrader och klistrar in dem fortsätter referenser som line2 och ↑ att läsa de rader som de läste tidigare:
- En referens till en kopierad rad följer kopian och numreras om efter dess nya position.
- En referens till en rad som du inte kopierade fortsätter att läsa samma rad om du klistrar in i samma anteckning.
- Om du klistrar in i en annan anteckning blir referensen i stället namnet som raden definierar, till exempel
rentförrent = $1,200. Det fungerar när den nya anteckningen definierar namnet eller importerar det. En rad utan namn blir en referens somline2_of_Budget, som visar ett meddelande tills du ersätter den:
5 + line2_of_Budget ger Unsupported: line2_of_Budget is a line of another noteUrklipp innehåller bara texten du markerade, så andra appar får exakt den texten. Inklistringen är ett enda steg som kan ångras. Rader från en lösenordsskyddad anteckning klistras in precis som de är skrivna.
Omvandla prosa till en beräkning
Har du klistrat in en faktura eller skrivit några rader som ska beräknas? Markera raderna och välj Format › Convert to Calculation Block, eller tryck på ⌘Y med texten markerad. Varlig omsluter raderna med avgränsare för ett beräkningsblock i en enda ändring som kan ångras. Resultaten visas bredvid raderna.
Med ingenting valt infogar ⌘Y ett tomt block. Text utanför ett block beräknas aldrig, så ett klistrat e‑postmeddelande behåller sina siffror, datum och fakturareferenser exakt som de är.
Nollställa definitionsområdet
En rad som bara innehåller --- inleder ett nytt definitionsområde. Namn, egna enheter och egna funktioner som definierats ovanför är inte längre tillgängliga nedanför. Det är praktiskt när du jämför två scenarier i samma anteckning utan att deras värden påverkar varandra.
# Option A: the flat in townrent = £1,250travel = £60rent + travel ger £1,310.00---# Option B: the flat further outrent = £980travel = £210rent + travel ger £1,190.00Nedanför --- måste travel definieras igen. Om du glömmer har den rad som använder den ingenting att hänvisa till.
Villkorsuttryck
if … then … else … väljer ett av två värden baserat på en jämförelse. Du kan använda det på egen hand eller tilldela resultatet ett namn:
basket = £34.50delivery = if basket >= £40 then £0 else £3.99 ger £3.99basket + delivery ger £38.49Lägg till else if för fler än två möjliga utfall:
basket = £34.50if basket < £20 then £4.99 else if basket < £40 then £2.99 else £0 ger £2.99Endast den valda grenen beräknas, så den andra grenen kan innehålla något som skulle misslyckas:
guests = 0if guests > 0 then £120 / guests else £0 ger £0.00Efterställda if och unless
Du kan också sätta villkoret efter värdet. value if condition visar värdet när villkoret är sant, och value unless condition visar det när villkoret inte är sant. I båda fallen visar raden ingenting annars.
basket = £34.50£3.99 if basket < £40 ger £3.99£3.99 unless basket >= £40 ger £3.99Värdet kan vara text inom dubbla citattecken. Då kan en kontroll visa ett meddelande om läget och lämna raden tom när villkoret inte gäller:
conversion = 0.667%"on target" if conversion > 0.5% ger on targetTilldelning inuti ett villkorsuttryck
Båda grenarna kan tilldela ett värde till samma namn:
basket = £34.50if basket >= £40 then shipping = £0 else shipping = £3.99 ger £3.99shipping ger £3.99Med enbart en then-gren sker tilldelningen när villkoret är uppfyllt. Annars behåller namnet sitt tidigare värde:
basket = £34.50points = 0if basket > £30 then points = 50 ger 50points ger 50Jämförelser såsom >= och &&- och ||-operatorerna täcks i Operatorer, jämförelser och villkor.
Samlat exempel
Här är en liten frilansfaktura, skriven på det sätt du kanske kan spara den i en anteckning:
# March invoiceday rate = £420days worked = 6travel = £86.40 // train faresfees = day rate * days worked ger £2,520.00subtotal = fees + travel ger £2,606.40vat registered = truevat = if vat registered then subtotal * 20% else £0 ger £521.28Total due: subtotal + vat ger £3,127.68Alla indata har namn, så nästa månad behöver du bara ändra days worked och travel. Resten av fakturan uppdateras. Kommentarerna och etiketten gör blocket lättläst, och villkoret gör att samma anteckning fungerar oavsett om du tar ut moms.