Brug af OFFSET til at referere til hyperblokke

I dette emne beskrives OFFSET-funktionen. Der refereres til eksempelrapport RP006 i Samples-programmet.

OFFSET-funktionen er ikke specifik for Application Studio, men den er særligt nyttig, når der arbejdes med hyperblokke. Det skyldes, at hyperblokke er dynamiske i visningstilstand. En hyperblok er statisk i designtilstand. Det vil sige, at den fylder et bestemt celleområde. I visningstilstand udvides og sammentrækkes en hyperblok dog sammen med sit indhold, og derfor giver specifikke cellereferencer ingen mening. Hvis du f.eks. har en formel uden for en hyperblok, som skal referere til celler i hyperblokken, skal du derfor bruge en dynamisk formel.

Du kan bruge OFFSET til at identificere celler ved at angive deres placering i forhold til en startreferencecelle. Du angiver deres placering med koordinater, der repræsenterer afstanden i form af antal rækker og kolonner fra startreferencecellen.

I dette eksempel refereres der til celle C13:

=OFFSET(F11,2,-3)

Det vil sige, at celle F11 er startreferencecellen. Det andet argument, 2, indikerer, at den celle, der refereres til, er to rækker under F11. Det tredje argument, 3, indikerer, at den celle, der refereres til, er 3 kolonner til venstre for F11.

I dette eksempel refereres der også til celle C13:

=OFFSET(B21,-8,1)

Det vil sige, at celle B21 er startreferencecellen. Det andet argument, -8, indikerer, at den celle, der refereres til, er 8 rækker over B21. Det tredje argument, 1, indikerer, at den celle, der refereres til, er 1 kolonne til højre for B21.

En typisk anvendelse af OFFSET i Application Studio er til beregning af akkumulerede værdier til brug i f.eks. ABC-analyse eller Pareto-diagrammer. Du kan beregne en akkumuleret værdi ved at føje værdien af den aktuelle celle til værdien af cellen ovenfor. I det dynamiske miljø i en hyperblok kan cellen ovenfor dog ikke angives med en statisk cellereference.

Rapport RP006 indeholder et eksempel på, hvordan OFFSET bruges til at beregne akkumulerede værdier.

Rapport RP006 har en hyperblok, der er oprettet ud fra dimensionen Product i kuben Analysis i Samples-programmet.

Hyperblokken har to værdiceller. I den første værdicelle viser en ROC-formel en værdi for hver gruppe produkter. I den anden værdicelle er der en OFFSET-formel.

I visningstilstand duplikerer cellen værdierne i den første værdicelle. Det skyldes, at OFFSET-formlen er forkert.

Formlen i celle E5 er:

=OFFSET(E5,0,0)+D5

Sådan ændres OFFSET-formlen, så den viser akkumulerede værdier:

  1. Klik på celle E5 i designtilstand.
  2. I Formel-editor skal du ændre det andet argument i OFFSET-formlen fra 0 til -1. Det vil sige, at formlen ændres til: =OFFSET(E5,-1,0)+D5 Her angiver -1 'rækken ovenfor'.

    I visningstilstand vises der akkumulerede værdier, og etiketten Cumulative vises. Dette opnås også ved brug af en OFFSET-funktion i celle E3 – indlejret i en IF-sætning.

    IF-sætningen er: =IF(OFFSET(E3,3,0)=OFFSET(E3,3,-1),"","Cumulative")

    Vi ved, at værdierne i den første række for resultaterne altid er ens. Hvis der vises akkumulerede værdier, er værdierne i alle andre rækker dog ikke ens. IF-sætningen tester derfor, om værdierne i række 2 er ens.

    IF-sætningen oversættes som: Hvis værdien af den celle, der er 3 rækker under E3, er lig med værdien i den celle, der er 3 rækker under og én kolonne til venstre for E3, vises (""). Ellers vises "Cumulative".