---
title: "Avanserte periodeformler"
description: "Bruk avanserte formler for å automatisere rullende perioder og dynamiske datoberegninger."
lang: no
languages:
  no: https://docs.vismasoftware.no/no/onestopreporting/create-templates/report-designer/creating-reports/layout-editor/advanced-period-formulas/index.md
  en: https://docs.vismasoftware.no/onestopreporting/create-templates/report-designer/creating-reports/layout-editor/advanced-period-formulas/index.md
lastmod: 2026-07-21
---

> Documentation index: https://docs.vismasoftware.no/no/onestopreporting/create-templates/report-designer/creating-reports/layout-editor/llms.txt


# Avanserte periodeformler

Sist endret 21.07.2026

> Bruk avanserte formler for å automatisere rullende perioder og dynamiske datoberegninger.

I **Report Designer** har du mulighet til å bruke forhåndsdefinerte periodefunksjoner i rapportbyggingen. I tilfeller hvor disse funksjonene ikke er tilstrekkelige, kan du ta i bruk avanserte periodeformler for å bestemme år, periode(r) eller dag(er) i rapporten. Denne veiledningen forklarer hvordan du kan bruke slike formler i **Report Designer**.

## Avanserte periodeformler

Når du jobber med avanserte periodeformler, må du ofte forholde deg til to variabler i hver formel.

Eksempel:

```'{PeriodCalc.GetPeriod(Parameter).AddYears(X).WholeYear}'```

*Parameter* er den periodeparameteren som er skapt i rapporten, og *X* er den variabelen som bestemmer antall år, måneder/perioder og dager som formelen skal legge til eller trekke fra. (I noen tilfeller vil det være en tredje variabel, vist med *Y* i eksempelet med rullerende intervall lenger bak i dokumentet.)

Figur 1 viser hvor du finner parameteren til perioden.

1. Klikk grupperingen for å komme inn i ekspansjonen.
2. Gjør et oppslag ved å klikke forstørrelsesglasset.
3. Inne i oppslagsvinduet kan du se hva parameteren heter (markert blått). Alt du må gjøre da, er å kopiere teksten innenfor ' og lime den inn i stedet for teksten *Parameter* i formlene som er beskrevet i dette dokumentet.

> [!NOTE]
> I noen tilfeller vil det være en tredje variabel, representert ved Y i eksemplet med et rullende intervall lenger ned i dette dokumentet.

## Periodeformler basert på en måneds-id (f.eks. Periode=202201 for januar 2022) {#periodeformler-basert-på-en-måneds-id-f.eks.-periode202201-for-januar-2022}

Oversikten nedenfor viser ulike periodeformler der du kan erstatte (Parameter) med (Regnskapsperioder)^1^ og erstatte variabelen X med det antall år/måneder du ønsker legge til eller trekke fra. Formelelementet Extend bestemmer hvor mange måneder som skal legges til i et intervall.

| Period function             | Period formula                                                                                                     |
|-----------------------------|--------------------------------------------------------------------------------------------------------------------|
| Whole year in year X        | ```'{PeriodCalc.GetPeriod(Parameter).AddYears(X).WholeYear}'```                                                    |
| First period in year X      | ```'{PeriodCalc.GetPeriod(Parameter).AddYears(X).YearStart}'```                                                    |
| Last period in year X       | ```'{PeriodCalc.GetPeriod(Parameter).AddYears(X).YearEnd}'```                                                      |
| Q1 of year X                | ```'{PeriodCalc.GetPeriod(Parameter).AddYears(X).YearStart.Extend(2)}'```                                          |
| Q2-Q4 in year X             | ```'{PeriodCalc.GetPeriod(Parameter).AddYears(X).YearStart.SetIndex(X).Extend(2)}'```                              |
| Remaining periods in year X | ```'{PeriodCalc.GetPeriod(Parameter).AddYears(X).Add(1)}:{PeriodCalc.GetPeriod(Parameter).AddYears(X).YearEnd}'``` |
| This period year X          | ```'{PeriodCalc.GetPeriod(Parameter).AddYears(X)}'```                                                              |
| Current month               | ```'{PeriodCalc.CurrentPeriod}'```                                                                                 |
| Rolling from X to Y         | ```'{PeriodCalc.GetPeriod(Parameter).Add(X).Extend(Y)}'```                                                         |

^1^Begrepet som brukes varierer mellom ERP-systemer. Se etter periodeparameteren, for eksempel perioder, posteringsperioder, regnskapsperioder osv. i Oppsettsredigering. (Se figur 1 ovenfor for hvor du kan finne disse.)

## Eksempel på formel for rullende fra X til Y

Du vil vise 2 års rullende bakover. Da må du først trekke fra 1 mnd og utvide (Extend) med 23 mnd.

Her vil X få verdien -1 og Y får verdien -23.

Formelen vil slik ut:

```'{PeriodCalc.GetPeriod(Regnskapsperioder).Add(-1).Extend(-23)}'```

## Periodeformler basert på dato-id (formatet dd.mm.yyyy - f.eks. 01.01.2022) {#periodeformler-basert-på-dato-id-formatet-dd.mm.yyyy---f.eks.-01.01.2022}

Listen nedenfor viser ulike periodeformler hvor du kan erstatte variabelen *DateParameter*^2^ med et antall år/måneder/dager du ønsker å legge til eller trekke ifra. Du finner parameteren på samme måte som i eksempelet over. Den eneste forskjellen er at du har en periodedimensjon basert på dagnivå, f.eks. bilagsdato.

| 0             | 1                                                      |
|---------------|--------------------------------------------------------|
| Datoparameter | Periodeformel                                          |
| År            | ```'{DateParameter.AddYears(X).SqlDate}'```            |
| Måned         | ```'{DateParameter.AddMonths(X).SqlDate}'```           |
| Dager         | ```'{DateParameter.AddDays(X).SqlDate}'```             |
| Dag Y, i år X | ```'{DateParameter.AddYears(X).AddDays(Y).SqlDate}'``` |

```'{#tw-target-text .tw-data-text .tw-text-large .tw-ta data-placeholder="Translation" dir="ltr"}'```
MERK: Når periodeformelen er basert på en dato, i motsetning til en periode (måned), må du inkludere ' før og etter formelen:

```'{DateParameter.AddYears(X).SqlDate}'```

^2^Begrepet som brukes varierer mellom ERP-systemer. Se etter datoparametere som forfallsdato, transaksjonsdato osv.

'{PeriodCalc.Now.AddDays(X).SqlDate}'

## Eksempel på formel for dag Y i år X

Du ønsker i dette eksemplet å finne gårsdagen i fjor. Dette kan du gjøre ved å erstatte med -1 Y med -1. Formelen vil da trekke fra 1 år minus 1 dag for den datoen du setter når du kjører rapporten.

'{DateParameter.AddYears(-1).AddDays(-1).SqlDate}'

Det er en periodeformel basert på dato. Den kalkulerer dato med utgangspunkt i gjeldene dato / datoen i dag

## Eksempel på formel med forfallsdato

I dette eksemplet ønsker du å vise fakturaer som forfaller i løpet av de neste 30 dagene, basert på en datoparameter, @DueDate. Du kan gjøre dette ved å bruke denne formelen:

'{@DueDate.AddDays(30).SqlDate}'

## Oversikt over innebygde periodefunksjoner i Report Designer

| Name      | Display Name                       | Expression                                                                                                            |
|-----------|------------------------------------|-----------------------------------------------------------------------------------------------------------------------|
| ALL2Yago  | All Year 2 Years Ago               | ```'{PeriodCalc.GetPeriod([]).AddYears(-2).WholeYear}'```                                                             |
| ALL2Yfor  | All Year 2 Years Forward           | ```'{PeriodCalc.GetPeriod([]).AddYears(2).WholeYear}'```                                                              |
| All3YAgo  | All Year 3 Years Ago               | ```'{PeriodCalc.GetPeriod([]).AddYears(-3).WholeYear}'```                                                             |
| All3YFor  | All Year 3 Years Forward           | ```'{PeriodCalc.GetPeriod([]).AddYears(3).WholeYear}'```                                                              |
| AllTimeTD | All Time to Date                   | ```'{PeriodCalc.GetPeriod([0])}:{PeriodCalc.GetPeriod([])}'```                                                        |
| FPLY      | First Period Last Year             | ```'{PeriodCalc.GetPeriod([]).AddYears(-1).YearStart}'```                                                             |
| FPNY      | First Period Next Year             | ```'{PeriodCalc.GetPeriod([]).AddYears(1).YearStart}'```                                                              |
| FPTY      | First Period This Year             | ```'{PeriodCalc.GetPeriod([]).YearStart}'```                                                                          |
| LPLY      | Last Period Last Year              | ```'{PeriodCalc.GetPeriod([]).AddYears(-1).YearEnd}'```                                                               |
| LPNY      | Last Period Next Year              | ```'{PeriodCalc.GetPeriod([]).AddYears(1).YearEnd}'```                                                                |
| LPTY      | Last Period This Year              | ```'{PeriodCalc.GetPeriod([]).YearEnd}'```                                                                            |
| LY        | Last Year (all)                    | ```'{PeriodCalc.GetPeriod([]).AddYears(-1).WholeYear}'```                                                             |
| LYTD      | Last year to date                  | ```'{PeriodCalc.LastYearToDate([])}'```                                                                               |
| NY        | Next Year (all)                    | ```'{PeriodCalc.GetPeriod([]).AddYears(1).WholeYear}'```                                                              |
| Q1LY      | Q1 Last Year                       | ```'{PeriodCalc.GetPeriod([]).AddYears(-1).YearStart.Extend(2)}'```                                                   |
| Q1TY      | Q1 This Year                       | ```'{PeriodCalc.GetPeriod([]).YearStart.Extend(2)}'```                                                                |
| Q2LY      | Q2 Last Year                       | ```'{PeriodCalc.GetPeriod([]).AddYears(-1).SetIndex(4).Extend(2)}'```                                                 |
| Q2TY      | Q2 This Year                       | ```'{PeriodCalc.GetPeriod([]).SetIndex(4).Extend(2)}'```                                                              |
| Q3LY      | Q3 Last Year                       | ```'{PeriodCalc.GetPeriod([]).AddYears(-1).SetIndex(7).Extend(2)}'```                                                 |
| Q3TY      | Q3 This Year                       | ```'{PeriodCalc.GetPeriod([]).SetIndex(7).Extend(2)}'```                                                              |
| Q4LY      | Q4 Last Year                       | ```'{PeriodCalc.GetPeriod([]).AddYears(-1).SetIndex(10)}'```: ```'{PeriodCalc.GetPeriod([]).AddYears(-1).YearEnd}'``` |
| Q4TY      | Q4 This Year                       | ```'{PeriodCalc.GetPeriod([]).SetIndex(10)}:{PeriodCalc.GetPeriod([]).YearEnd}'```                                    |
| RB12M     | 12 Month Rolling (-1 -> -12)       | ```'{PeriodCalc.GetPeriod([]).Add(-1).Extend(-11)}'```                                                                |
| RBC12M    | 12Month Rolling Current (0 > -12)  | ```'{PeriodCalc.GetPeriod([]).Add(0).Extend(-11)}'```                                                                 |
| RF12M     | 12 Months Rolling (+1 -> +12)      | ```'{PeriodCalc.GetPeriod([]).Add(1).Extend(11)}'```                                                                  |
| RF3M1     | 3 Months Rolling (+1 -> +3)        | ```'{PeriodCalc.GetPeriod([]).Add(1).Extend(2)}'```                                                                   |
| RF3M2     | 3 Months Rolling (+4 -> +6)        | ```'{PeriodCalc.GetPeriod([]).Add(4).Extend(2)}'```                                                                   |
| RF3M3     | 3 Months Rolling (+7 -> +9)        | ```'{PeriodCalc.GetPeriod([]).Add(7).Extend(2)}'```                                                                   |
| RF3M4     | 3 Months Rolling (+10 -> +12)      | ```'{PeriodCalc.GetPeriod([]).Add(10).Extend(2)}'```                                                                  |
| RFC12M    | 12 Months Rolling Current (0 > 12) | ```'{PeriodCalc.GetPeriod([]).Add(0).Extend(11)}'```                                                                  |
| RPLY      | Remaining Periods Last Year        | ```'{PeriodCalc.GetPeriod([]).AddYears(-1).Add(1)}'```: ```'{PeriodCalc.GetPeriod([]).AddYears(-1).YearEnd}'```       |
| RPTY      | Remaining Periods This Year        | ```'{PeriodCalc.GetPeriod([]).Add(1)}:{PeriodCalc.GetPeriod([]).YearEnd}'```                                          |
| TPLY      | This Period Last Year              | ```'{PeriodCalc.GetPeriod([]).AddYears(-1)}'```                                                                       |
| TPNY      | This Period Next Year              | ```'{PeriodCalc.GetPeriod([]).AddYears(1)}'```                                                                        |
| TPTY      | This Period This Year              | ```'{PeriodCalc.GetPeriod([])}'```                                                                                    |
| TYALL     | This Year (all)                    | ```'{PeriodCalc.GetPeriod([]).WholeYear}'```                                                                          |
| YTD       | Year to Date                       | ```'{PeriodCalc.FiscYearToDate([])}'```                                                                               |

## Ekstra periodesyntaks

Følgende syntaks kan brukes i periodefilteret.
    *DateParameter = navn på periodeparameter*

| Expression Syntax | Example                                                                                                                    |
|-------------------|----------------------------------------------------------------------------------------------------------------------------|
| AddDays(n)        | 1 ```'{DateParameter.AddDays(30).SqlDate}'``` 2. ```'{DateParameter.YearEnd.AddDays(1).SqlDate}:2020-12-31 AddMonths(n)``` |
| AddYears(n)       | ```'{DateParameter.AddYears(-1).SqlDate}'```                                                                               |
| WeekStart         | ```'{PeriodCalc.Now.WeekStart.SqlDate}:{PeriodCalc.Now.SqlDate}'```                                                        |
| MonthEnd          | ```'{DateParameter.MonthEnd.SqlDate}'```                                                                                   |
| MonthStart        | ```'{DateParameter.MonthStart.SqlDate}'```                                                                                 |
| YearEnd           | ```'{DateParameter.YearEnd.SqlDate}'```                                                                                    |
| YearStart         | ```'{DateParameter.YearStart.SqlDate}'```                                                                                  |

Funksjonene kan kombineres:

```'{DateParameter.YearEnd.AddDays(1).SqlDate}:2022-12-31'```


---

[View this page](https://docs.vismasoftware.no/no/onestopreporting/create-templates/report-designer/creating-reports/layout-editor/advanced-period-formulas/)
