Sundhedstjek af regneark

dk-kl-friplejebolig.xlsx
2026-08-01 12:53 UTC
Om projektmappen: KL's og BDO's skabelon til beregning af friplejeboligtakster — beløbene, der styrer betalingsstrømmene mellem kommuner og private plejeboliger; skabelonen er ifølge publiceringssiden udarbejdet af KL sammen med revisions- og rådgivningsvirksomheden BDO, publiceret med vejledning på https://www.kl.dk/oekonomi-og-administration/oekonomi-og-styring/offentlig-privat-samarbejde/takstvejledninger/vejledning-til-beregning-af-friplejeboligtakster. En takst ville kunne blive en anden end tilsigtet, den dag en indbygget konstant er forældet — konstanterne står i formlerne uden navn, kilde eller historik. Belægget: fem hårdkodede konstanter (F01) og tre udokumenterede tærskler (F05). Ni formler kunne ikke analyseres — de oplyses åbent i rapportens afsnit om ikke-analyserbare formler. Ingen kritiske fund; fundene er risikomønstre.
Vurdering
13 fund, heraf 0 alvorlige

Ingen fund af højeste alvorlighed. 9 advarsler peger på mønstre, der gør arket sværere at gennemgå og ændre sikkert.

Berørte ark: Omkostninger, Fordelingsnøgler, Beregning af døgntakst, PL

0
Alvorlige
9
Advarsler
4
Oplysninger
Analysens dækning

432 af 433 formelceller kunne tolkes (99 %). De øvrige 1 oplyses i deres helhed under "Ikke-analyserbare formler" — intet udelades af rapporten.

Fund

F01 Hårdkodede konstanter i formler Advarsler
Værdier som skattesatser eller tillæg ligger bagt direkte ind i formlen i stedet for i en navngiven celle. Når værdien ændres, skal nogen finde og rette hver forekomst — overses blot én, regner arket forkert uden at det ses.
Celler: Fordelingsnøgler!D10
Detalje: constants 38, 67 in 38/67
F01 Hårdkodede konstanter i formler Advarsler
Værdier som skattesatser eller tillæg ligger bagt direkte ind i formlen i stedet for i en navngiven celle. Når værdien ændres, skal nogen finde og rette hver forekomst — overses blot én, regner arket forkert uden at det ses.
Celler: PL!D6, PL!E6, PL!F6, PL!G6, PL!H6, PL!E7, PL!F7, PL!G7, PL!H7, PL!F8, PL!G8, PL!H8, PL!G9, PL!H9, PL!H10
Detalje: constants 100 in C6*(1+(D$3/100)) [same pattern in 15 cells]
F01 Hårdkodede konstanter i formler Advarsler
Værdier som skattesatser eller tillæg ligger bagt direkte ind i formlen i stedet for i en navngiven celle. Når værdien ændres, skal nogen finde og rette hver forekomst — overses blot én, regner arket forkert uden at det ses.
Celler: PL!I6, PL!J6, PL!K6, PL!L6, PL!I7, PL!J7, PL!K7, PL!L7, PL!I8, PL!J8, PL!K8, PL!L8, PL!I9, PL!J9, PL!K9, PL!L9, PL!I10, PL!J10, PL!K10, PL!L10, PL!I11, PL!J11, PL!K11, PL!L11, PL!J12, PL!K12, PL!L12, PL!K13, PL!L13, PL!L14
Detalje: constants 100 in IF(I$3="","",H6*(1+(I$3/100))) [same pattern in 30 cells]
F01 Hårdkodede konstanter i formler Advarsler
Værdier som skattesatser eller tillæg ligger bagt direkte ind i formlen i stedet for i en navngiven celle. Når værdien ændres, skal nogen finde og rette hver forekomst — overses blot én, regner arket forkert uden at det ses.
Celler: PL!C7, PL!C8, PL!D8, PL!C9, PL!D9, PL!E9, PL!C10, PL!D10, PL!E10, PL!F10, PL!C11, PL!D11, PL!E11, PL!F11, PL!G11
Detalje: constants 100 in D7/(1+(D$3/100)) [same pattern in 15 cells]
F01 Hårdkodede konstanter i formler Advarsler
Værdier som skattesatser eller tillæg ligger bagt direkte ind i formlen i stedet for i en navngiven celle. Når værdien ændres, skal nogen finde og rette hver forekomst — overses blot én, regner arket forkert uden at det ses.
Celler: PL!C12, PL!D12, PL!E12, PL!F12, PL!G12, PL!H12, PL!C13, PL!D13, PL!E13, PL!F13, PL!G13, PL!H13, PL!I13, PL!C14, PL!D14, PL!E14, PL!F14, PL!G14, PL!H14, PL!I14, PL!J14, PL!C15, PL!D15, PL!E15, PL!F15, PL!G15, PL!H15, PL!I15, PL!J15, PL!K15
Detalje: constants 100 in IFERROR(D12/(1+(D$3/100)),"") [same pattern in 30 cells]
F02 Formel afviger fra mønstret Advarsler
I en række eller kolonne hvor cellerne følger samme beregningsmønster, gør denne celle noget andet. Det er ofte resten af en manuel justering eller en kopiering, der er gået skævt — og netop den slags celler ligger typisk bag summeringer, der ikke stemmer.
Celler: Omkostninger!H11, Omkostninger!H15, Omkostninger!H19, Omkostninger!H23, Omkostninger!H27, Omkostninger!H31, Omkostninger!H35
Detalje: formula deviates from the pattern of 27 neighbours: _xlfn.IFNA( IF( Bolig[[#This Row],[Beregn med fordelingsnøgle]]="Nej", Bolig[[#This Row],[Beløb]], IF( Bolig[[#This Row],[Fordelingsnøgle]]="Ingen", Bolig[[#This Row],[Beløb]], VLOOKUP( Bolig[[#This Row],[Fordelingsnøgle]], Fordelingsnøgler!$C$8:$D$37, 2, FALSE )*Bolig[[#This Row],[Beløb]] ) ), "") [same pattern in 7 cells]
F17 Flettede celler i beregningsområde Advarsler
Formler refererer til områder, der indeholder flettede celler. Kun den øverste venstre celle i en fletning bærer værdien — resten læses som tomme. Summeringer over området regner da noget andet end det viste, og kopiering af formler hen over området går i stykker.
Celler: Beregning af døgntakst!F5, Beregning af døgntakst!G5, Beregning af døgntakst!H5, Beregning af døgntakst!I5, Beregning af døgntakst!J5
Detalje: referenced range overlaps merged cells Omkostninger!Q3:Q4; referenced range overlaps merged cells Omkostninger!Q5:U6 [same pattern in 5 cells]
F17 Flettede celler i beregningsområde Advarsler
Formler refererer til områder, der indeholder flettede celler. Kun den øverste venstre celle i en fletning bærer værdien — resten læses som tomme. Summeringer over området regner da noget andet end det viste, og kopiering af formler hen over området går i stykker.
Celler: Omkostninger!P5
Detalje: referenced range overlaps merged cells Omkostninger!K5:K6; referenced range overlaps merged cells Omkostninger!L5:L6; referenced range overlaps merged cells Omkostninger!M5:M6; referenced range overlaps merged cells Omkostninger!N5:N6; referenced range overlaps merged cells Omkostninger!O5:O6
F17 Flettede celler i beregningsområde Advarsler
Formler refererer til områder, der indeholder flettede celler. Kun den øverste venstre celle i en fletning bærer værdien — resten læses som tomme. Summeringer over området regner da noget andet end det viste, og kopiering af formler hen over området går i stykker.
Celler: Omkostninger!P6
Detalje: referenced range overlaps merged cells Omkostninger!K5:K6; referenced range overlaps merged cells Omkostninger!L5:L6; referenced range overlaps merged cells Omkostninger!M5:M6; referenced range overlaps merged cells Omkostninger!N5:N6; referenced range overlaps merged cells Omkostninger!O5:O6
F05 Udokumenterede betingelsesgrænser Oplysninger
Tærskelværdier i IF-betingelser ligger direkte i formlen i stedet for i en dokumenteret celle. Grænserne ses ikke ved gennemgang, og ingen ved, om 37,5 er en bevidst beslutning eller et glemt tal.
Celler: Omkostninger!P5
Detalje: condition thresholds 1 hardcoded in IF(OR(SUM(K5:O6)=1,SUM(K5:O6)=0),0,1)
F05 Udokumenterede betingelsesgrænser Oplysninger
Tærskelværdier i IF-betingelser ligger direkte i formlen i stedet for i en dokumenteret celle. Grænserne ses ikke ved gennemgang, og ingen ved, om 37,5 er en bevidst beslutning eller et glemt tal.
Celler: Omkostninger!P6
Detalje: condition thresholds 1 hardcoded in IF(OR(SUM(K5:O6)=1,SUM(K5:O6)=0),0,1)
F05 Udokumenterede betingelsesgrænser Oplysninger
Tærskelværdier i IF-betingelser ligger direkte i formlen i stedet for i en dokumenteret celle. Grænserne ses ikke ved gennemgang, og ingen ved, om 37,5 er en bevidst beslutning eller et glemt tal.
Celler: Omkostninger!P7, Omkostninger!P8, Omkostninger!P9, Omkostninger!P10, Omkostninger!P11, Omkostninger!P12, Omkostninger!P13, Omkostninger!P14, Omkostninger!P15, Omkostninger!P16, Omkostninger!P17, Omkostninger!P18, Omkostninger!P19, Omkostninger!P20, Omkostninger!P21, Omkostninger!P22, Omkostninger!P23, Omkostninger!P24, Omkostninger!P25, Omkostninger!P26, Omkostninger!P27, Omkostninger!P28, Omkostninger!P29, Omkostninger!P30, Omkostninger!P31, Omkostninger!P32, Omkostninger!P33, Omkostninger!P34, Omkostninger!P35, Omkostninger!P36, Omkostninger!P37, Omkostninger!P38, Omkostninger!P39, Omkostninger!P40, Omkostninger!P41, Omkostninger!P42
Detalje: condition thresholds 1 hardcoded in IF(OR(SUM(K7:O7)=1,SUM(K7:O7)=0),0,1) [same pattern in 36 cells]
F22 Manglende beskyttelse omkring følsomme formler Oplysninger
Arkene med formler mangler skrivebeskyttelse, samtidig med at projektmappen indeholder hårdkodede eller følsomme konstanter. Arkets mest følsomme værdier kan ændres af enhver med filen — uden spor, historik eller varsel.
Detalje: no sheet protection on formula sheet(s) Beregning af døgntakst, Enheder, Fordelingsnøgler, Omkostninger, PL — 91 cells with hardcoded constants (F01) can be edited by anyone with the file

Ikke-analyserbare formler

Følgende formler ligger uden for analysens nuværende funktionsflade og er ikke gennemgået:

Omkostninger!C2 = SUM(H:H)

Om projektmappen

ArkForside, Omkostninger, Fordelingsnøgler, Enheder, Beregning af døgntakst, Omkostningsdefinition, PL, Tjekliste
Formelceller433
Inputceller437
Skjulte ark0

Metode

Analysen læser arkets formler og struktur — aldrig celleværdier eller data.

Værktøjsversion0.1.3
Analysedato2026-08-01 12:53 UTC
Arkversionukendt (udateret skabelon)
Arket hentet2026-07-27

Hvad analysen ikke ser

Denne analyse ser mønsterbrud: brudte referencer, overskrevne formler, udokumenterede konstanter, afvigere i beregningsmønstre. Hvad den ikke kan se, er fejl i hensigt — når alle celler konsekvent regner forkert, eller når en etiket lover noget andet, end formlen gør. Det kræver gennemgang begreb for begreb med nogen, der ved, hvad regnearket skal gøre. En rapport uden fund betyder derfor "ingen mønsterbrud fundet" — ikke "færdigt gennemgået".

Næste skridt