Om arbetsboken: SEGES Innovation är danskt lantbruks kunskaps- och innovationshus. Arket beräknar kalkulationsrenten — diskonteringsräntan för lantbrukets investeringskalkyler. De två kritiska fynden: arkets egna beräkningsvägar ger 1,40 % respektive 1,44 % för samma rad — 4 räntepunkter, utan facit om vilken som gäller. Räknestycket bakom allvaret: i 25-åriga investeringskalkyler flyttar det nuvärdet ca 0,5 % (ca 49 000 DKK per 10 miljoner); vid värdering av jord som evig avkastning (värde = avkastning/ränta) är utslaget 1,44/1,40 = ±2,9 % — 430 000 till 570 000 DKK på en heltidsgård med 100 ha à 150–200 000 DKK/ha. Fel här fortplantar sig till investeringsbeslut i hela näringen.
33 fynd, varav 2 allvarliga
2
Allvarliga
28
Varningar
3
Upplysningar
Fynd
F15Inkonsekvent avrundning i beräkningskedjaAllvarliga
Stegen som matar samma beräkning avrundar olika: vissa avrundar, andra inte, eller till olika antal decimaler. Ören som försvinner och återuppstår olika beroende på väg är den vanligaste orsaken till att rapporter 'inte går ihop' med underlaget.
Celler: Bidragssats!L38
Detalj: chain toward Bidragssats!L38 rounds in 1 of 2 contributing steps
F15Inkonsekvent avrundning i beräkningskedjaAllvarliga
Stegen som matar samma beräkning avrundar olika: vissa avrundar, andra inte, eller till olika antal decimaler. Ören som försvinner och återuppstår olika beroende på väg är den vanligaste orsaken till att rapporter 'inte går ihop' med underlaget.
Celler: Bidragssats!M38
Detalj: chain toward Bidragssats!M38 rounds in 1 of 2 contributing steps
F01Hårdkodade konstanter i formlerVarningar
Värden som skattesatser eller påslag ligger inbakade direkt i formeln i stället för i en namngiven cell. När värdet ändras måste någon hitta och ändra varje förekomst — missas en enda räknar arket fel utan att det syns.
Celler: 2. Finansiering!H7
Detalj: constants 0.01 in Beregninger!D19*0.01+J7
F01Hårdkodade konstanter i formlerVarningar
Värden som skattesatser eller påslag ligger inbakade direkt i formeln i stället för i en namngiven cell. När värdet ändras måste någon hitta och ändra varje förekomst — missas en enda räknar arket fel utan att det syns.
Celler: 2. Finansiering!H25, 2. Finansiering!H26, 2. Finansiering!H27, 2. Finansiering!H28
Detalj: constants 2 in (((1+$H$7)^2)-1)+J25 [same pattern in 4 cells]
F01Hårdkodade konstanter i formlerVarningar
Värden som skattesatser eller påslag ligger inbakade direkt i formeln i stället för i en namngiven cell. När värdet ändras måste någon hitta och ändra varje förekomst — missas en enda räknar arket fel utan att det syns.
Celler: 2. Finansiering!M48
Detalj: constants 6 in (((1+H7)^6)-1)*(1-C60)
F01Hårdkodade konstanter i formlerVarningar
Värden som skattesatser eller påslag ligger inbakade direkt i formeln i stället för i en namngiven cell. När värdet ändras måste någon hitta och ändra varje förekomst — missas en enda räknar arket fel utan att det syns.
Celler: Beregninger!B25
Detalj: constants 0.07 in B26+0.07%
F01Hårdkodade konstanter i formlerVarningar
Värden som skattesatser eller påslag ligger inbakade direkt i formeln i stället för i en namngiven cell. När värdet ändras måste någon hitta och ändra varje förekomst — missas en enda räknar arket fel utan att det syns.
Celler: Beregninger!S25
Detalj: constants 6 in (((1+'2. Finansiering'!H7)^6)-1)*'2. Finansiering'!D49
F01Hårdkodade konstanter i formlerVarningar
Värden som skattesatser eller påslag ligger inbakade direkt i formeln i stället för i en namngiven cell. När värdet ändras måste någon hitta och ändra varje förekomst — missas en enda räknar arket fel utan att det syns.
Celler: Bidragssats!H26, Bidragssats!I26, Bidragssats!J26
Detalj: constants 10, 100, 0.05 in IF((ROUND(AVERAGE(H11:H14)*10,0)/10)-(ROUND(AVERAGE(H11:H14)*100,0)/100)<0.05,(IF((ROUND(AVERAGE(H11:H14)*10,0)/10)-(ROUND(AVERAGE(H11:H14)*100,0)/100)>0,(ROUND(AVERAGE(H11:H14)*10,0)/10),(ROUND(AVERAGE(H11:H14)*10,0)/10)+0.05)),(ROUND(AVERAGE(H11:H14)*10,0)/10)-0.05) [same pattern in 3 cells]
F01Hårdkodade konstanter i formlerVarningar
Värden som skattesatser eller påslag ligger inbakade direkt i formeln i stället för i en namngiven cell. När värdet ändras måste någon hitta och ändra varje förekomst — missas en enda räknar arket fel utan att det syns.
Värden som skattesatser eller påslag ligger inbakade direkt i formeln i stället för i en namngiven cell. När värdet ändras måste någon hitta och ändra varje förekomst — missas en enda räknar arket fel utan att det syns.
Värden som skattesatser eller påslag ligger inbakade direkt i formeln i stället för i en namngiven cell. När värdet ändras måste någon hitta och ändra varje förekomst — missas en enda räknar arket fel utan att det syns.
I en rad eller kolumn där cellerna följer samma beräkningsmönster gör den här cellen något annat. Det är ofta resten av en manuell justering eller en kopiering som gått snett — och just sådana celler brukar ligga bakom summeringar som inte stämmer.
Celler: 1. Balance!D16
Detalj: formula deviates from the pattern of 10 neighbours: SUM(D10:D15)
F02Formel avviker från mönstretVarningar
I en rad eller kolumn där cellerna följer samma beräkningsmönster gör den här cellen något annat. Det är ofta resten av en manuell justering eller en kopiering som gått snett — och just sådana celler brukar ligga bakom summeringar som inte stämmer.
Celler: 1. Balance!I14
Detalj: formula deviates from the pattern of 7 neighbours: SUM(I10:I13)
F02Formel avviker från mönstretVarningar
I en rad eller kolumn där cellerna följer samma beräkningsmönster gör den här cellen något annat. Det är ofta resten av en manuell justering eller en kopiering som gått snett — och just sådana celler brukar ligga bakom summeringar som inte stämmer.
Celler: 1. Balance!I18
Detalj: formula deviates from the pattern of 7 neighbours: SUM(I16:I17)
F02Formel avviker från mönstretVarningar
I en rad eller kolumn där cellerna följer samma beräkningsmönster gör den här cellen något annat. Det är ofta resten av en manuell justering eller en kopiering som gått snett — och just sådana celler brukar ligga bakom summeringar som inte stämmer.
Celler: 2. Finansiering!B45
Detalj: formula deviates from the pattern of 3 neighbours: SUM(B39:B43)+SUM(B34:B36)+SUM(B25:B28)+SUM(B21:B22)+B17+SUM(B8:B15)
F02Formel avviker från mönstretVarningar
I en rad eller kolumn där cellerna följer samma beräkningsmönster gör den här cellen något annat. Det är ofta resten av en manuell justering eller en kopiering som gått snett — och just sådana celler brukar ligga bakom summeringar som inte stämmer.
Celler: 2. Finansiering!D17
Detalj: formula deviates from the pattern of 22 neighbours: '1. Balance'!I11
F02Formel avviker från mönstretVarningar
I en rad eller kolumn där cellerna följer samma beräkningsmönster gör den här cellen något annat. Det är ofta resten av en manuell justering eller en kopiering som gått snett — och just sådana celler brukar ligga bakom summeringar som inte stämmer.
Celler: 2. Finansiering!D20, 2. Finansiering!D24
Detalj: formula deviates from the pattern of 22 neighbours: '1. Balance'!I12 [same pattern in 2 cells]
F02Formel avviker från mönstretVarningar
I en rad eller kolumn där cellerna följer samma beräkningsmönster gör den här cellen något annat. Det är ofta resten av en manuell justering eller en kopiering som gått snett — och just sådana celler brukar ligga bakom summeringar som inte stämmer.
Celler: 2. Finansiering!D23
Detalj: formula deviates from the pattern of 22 neighbours: IF(SUM(D25:D29)=D24, " ", "Fejl i sum")
F02Formel avviker från mönstretVarningar
I en rad eller kolumn där cellerna följer samma beräkningsmönster gör den här cellen något annat. Det är ofta resten av en manuell justering eller en kopiering som gått snett — och just sådana celler brukar ligga bakom summeringar som inte stämmer.
Celler: 2. Finansiering!D31
Detalj: formula deviates from the pattern of 22 neighbours: '1. Balance'!I20
F02Formel avviker från mönstretVarningar
I en rad eller kolumn där cellerna följer samma beräkningsmönster gör den här cellen något annat. Det är ofta resten av en manuell justering eller en kopiering som gått snett — och just sådana celler brukar ligga bakom summeringar som inte stämmer.
Celler: 2. Finansiering!D33
Detalj: formula deviates from the pattern of 22 neighbours: '1. Balance'!I17
F02Formel avviker från mönstretVarningar
I en rad eller kolumn där cellerna följer samma beräkningsmönster gör den här cellen något annat. Det är ofta resten av en manuell justering eller en kopiering som gått snett — och just sådana celler brukar ligga bakom summeringar som inte stämmer.
Celler: 2. Finansiering!D38
Detalj: formula deviates from the pattern of 22 neighbours: '1. Balance'!I13
F02Formel avviker från mönstretVarningar
I en rad eller kolumn där cellerna följer samma beräkningsmönster gör den här cellen något annat. Det är ofta resten av en manuell justering eller en kopiering som gått snett — och just sådana celler brukar ligga bakom summeringar som inte stämmer.
Celler: 2. Finansiering!H25, 2. Finansiering!H26, 2. Finansiering!H27, 2. Finansiering!H28
Detalj: formula deviates from the pattern of 12 neighbours: (((1+$H$7)^2)-1)+J25 [same pattern in 4 cells]
F09Manuellt värde där formel förväntasVarningar
Mitt i ett formelmönster ligger ett hårt inskrivet värde — någon har skrivit över formeln, ofta för att 'rätta' en siffra inför en deadline. Cellen uppdateras aldrig mer när indata ändras.
Celler: 2. Finansiering!D36
Detalj: constant value where the surrounding 22-cell formula pattern predicts a formula
F09Manuellt värde där formel förväntasVarningar
Mitt i ett formelmönster ligger ett hårt inskrivet värde — någon har skrivit över formeln, ofta för att 'rätta' en siffra inför en deadline. Cellen uppdateras aldrig mer när indata ändras.
Celler: Beregninger!U36, Beregninger!U47, Beregninger!U60, Beregninger!U72, Beregninger!V36, Beregninger!V47, Beregninger!V60, Beregninger!V72, Beregninger!W36, Beregninger!W47, Beregninger!W60, Beregninger!W72
Detalj: constant value where the surrounding 4-cell formula pattern predicts a formula [same pattern in 12 cells]
F09Manuellt värde där formel förväntasVarningar
Mitt i ett formelmönster ligger ett hårt inskrivet värde — någon har skrivit över formeln, ofta för att 'rätta' en siffra inför en deadline. Cellen uppdateras aldrig mer när indata ändras.
Celler: Beregninger!X60, Beregninger!X72, Beregninger!Y60, Beregninger!Y72, Beregninger!Z60, Beregninger!Z72, Beregninger!AA60, Beregninger!AA72, Beregninger!AB60, Beregninger!AB72, Beregninger!AC60, Beregninger!AC72, Beregninger!AD60, Beregninger!AD72
Detalj: constant value where the surrounding 3-cell formula pattern predicts a formula [same pattern in 14 cells]
F20Kopierade blad som divergeratVarningar
Samma formelmönster finns på flera blad, men bladen har olika utsträckning. Det är spåret av ett kopierat blad som sedan vuxit eller krympt — formler som täckte all data på ett blad täcker den inte längre på ett annat, utan varning.
Celler: 1. Balance!D10, 2. Finansiering!I7
Detalj: 1 shared formula pattern(s) of >=5 cells on sheets with diverging structure: 1. Balance (used extent I25) vs 2. Finansiering (used extent M88)
F05Odokumenterade villkorsgränserUpplysningar
Tröskelvärden i IF-villkor ligger direkt i formeln i stället för i en dokumenterad cell. Gränserna syns inte vid granskning, och ingen vet om 37,5 är ett medvetet beslut eller en kvarglömd siffra.
Celler: Bidragssats!H26, Bidragssats!I26, Bidragssats!J26
Detalj: condition thresholds 0.05 hardcoded in IF((ROUND(AVERAGE(H11:H14)*10,0)/10)-(ROUND(AVERAGE(H11:H14)*100,0)/100)<0.05,(IF((ROUND(AVERAGE(H11:H14)*10,0)/10)-(ROUND(AVERAGE(H11:H14)*100,0)/100)>0,(ROUND(AVERAGE(H11:H14)*10,0)/10),(ROUND(AVERAGE(H11:H14)*10,0)/10)+0.05)),(ROUND(AVERAGE(H11:H14)*10,0)/10)-0.05) [same pattern in 3 cells]
F05Odokumenterade villkorsgränserUpplysningar
Tröskelvärden i IF-villkor ligger direkt i formeln i stället för i en dokumenterad cell. Gränserna syns inte vid granskning, och ingen vet om 37,5 är ett medvetet beslut eller en kvarglömd siffra.
F22Skydd saknas kring känsliga formlerUpplysningar
Bladen med formler saknar skrivskydd samtidigt som arket innehåller hårdkodade eller känsliga konstanter. Arkets känsligaste värden kan ändras av vem som helst med filen — utan spår, historik eller varning.
Detalj: no sheet protection on formula sheet(s) 1. Balance, 2. Finansiering, Beregninger, Bidragssats — 46 cells with hardcoded constants (F01) and 16 sensitive constants (F13) can be edited by anyone with the file
Känslighet
Konstanter i formler som slår oproportionerligt på resultatet när de ändras — modellens odokumenterade rattar:
F13Känslig odokumenterad konstantVarningar
En liten ändring av en hårdkodad konstant slår oproportionerligt hårt på arkets resultat. Ett tal som ingen dokumenterat är i praktiken en av modellens viktigaste rattar — utan ägare, utan historik och utan kontroll. Just de här cellerna bör bli styrda parametrar.
Celler: 2. Finansiering!H25, Beregninger!M22, 2. Finansiering!H26, Beregninger!M23, 2. Finansiering!H27, Beregninger!M24, 2. Finansiering!H28
Detalj: undocumented constant 2 in 2. Finansiering!H25: a 5% change moves Beregninger!M22 by 67% [same pattern in 4 cells]
F13Känslig odokumenterad konstantVarningar
En liten ändring av en hårdkodad konstant slår oproportionerligt hårt på arkets resultat. Ett tal som ingen dokumenterat är i praktiken en av modellens viktigaste rattar — utan ägare, utan historik och utan kontroll. Just de här cellerna bör bli styrda parametrar.
Celler: 2. Finansiering!M48, Beregninger!U79
Detalj: undocumented constant 6 in 2. Finansiering!M48: a 5% change moves Beregninger!U79 by 366%
F13Känslig odokumenterad konstantVarningar
En liten ändring av en hårdkodad konstant slår oproportionerligt hårt på arkets resultat. Ett tal som ingen dokumenterat är i praktiken en av modellens viktigaste rattar — utan ägare, utan historik och utan kontroll. Just de här cellerna bör bli styrda parametrar.
Celler: Beregninger!S25, Beregninger!T25
Detalj: undocumented constant 6 in Beregninger!S25: a 5% change moves Beregninger!T25 by 366%
F13Känslig odokumenterad konstantVarningar
En liten ändring av en hårdkodad konstant slår oproportionerligt hårt på arkets resultat. Ett tal som ingen dokumenterat är i praktiken en av modellens viktigaste rattar — utan ägare, utan historik och utan kontroll. Just de här cellerna bör bli styrda parametrar.
Celler: Bidragssats!H26, Bidragssats!N38
Detalj: undocumented constant 10 in Bidragssats!H26: a 5% change moves Bidragssats!N38 by 233% [same pattern in 10 cells]
Den här analysen ser mönsterbrott: trasiga referenser, överskrivna formler, odokumenterade konstanter, avvikare i beräkningsmönster. Vad den inte kan se är fel i avsikt — när alla celler konsekvent räknar på fel sätt, eller när en etikett lovar något annat än formeln gör. Sådant kräver granskning begrepp för begrepp, mot någon som vet vad arket är tänkt att göra. En rapport utan fynd betyder därför "inga mönsterbrott hittade" — inte "färdiggranskat".
Nästa steg
Den här rapporten är den kostnadsfria hälsokontrollen. Den betalda verifieringen bygger vidare på samma analys och levererar:
Riskrapport — samtliga fynd i arkets logik med cellreferenser, allvarlighet och förklaring. Den här rapporten är det första steget och ingår redan.
Kravspecifikation — arkets beräkningslogik dokumenterad i läsbar form — ofta första gången processen finns beskriven utanför arket.
Körbar ersättare — arkets logik som testad applikation med formulär för indata.
Ekvivalensbevis — rapport som visar att ersättaren ger identiskt resultat som arket över tusentals testfall inklusive kantfall, med grentäckningsredovisning.
Första uppdraget börjar med en pilot på ett ark, fast pris. Piloten är riskvänd — och ni är domaren: tycker ni vid genomgången att fynden inte var värda priset, stryks fakturan. Kod och bevis levereras därefter i uppdraget, mot milstolpar ni själva godkänner under resans gång.