TÆL.HVIS på tværs af ark

TÆL.HVIS(A1:A100;"Ole") tæller hvor mange gange i området A1 til A100, værdien "Ole" forekommer. Desværre virker TÆL.HVIS kun i et enkelt ark. Skal man tælle forekomster i flere ark, bliver man nødt til, at lave en formel for hvert ark, og så lægge dem sammen til sidst. Hvis de celler, der skal tælles i de forskellige ark, er de samme i alle ark, kan man omgå problemet. Det kræver at man bruger nogle hjælpeceller i samme ark, som "tælleformlen" skal være. I disse celler skriver man navnene på alle de ark, der er i mappen, og som skal undersøges.

Når alle ark er listet, kan man indsætte denne formel i det ark, som indeholder arknavnene.

SUMPRODUKT(TÆL.HVIS(INDIREKTE("'"&A1:A20&"'!F1:F800");"Ole"))

hvor A1:A20 er det område i arket, hvor listen over arknavne står. Formlen forudsætter at det område det skal tælles for forekomster af Ole, står i F1 til F800 i alle ark. Også dette kan naturligvis ændres, bare området er det samme i alle ark.
 

Er der mange ark, kan det tage en rum tid, at indskrive alle arknavne. I stedet kan man bruge en variant af makroen, der er vist under Opret oversigtsark med diagramark:

Sub ListArk()
    Dim i As Long, ws As Object
    On Error Resume Next
    ActiveWorkbook.Names("Alleark").Delete
    Sheets(1).Range("Z:Z").ClearContents
    i = 0
    For Each ws In Worksheets
        i = i + 1
        Sheets(1).Cells(i, 26).Value = ws.Name
    Next
    Range("z1:" & Range("z65536").End(xlUp).Address).Select
    ActiveWorkbook.Names.Add Name:="Alleark", _
        RefersToR1C1:=Range("z1:" & Range("z65536").End(xlUp).Address)
End Sub

Denne makro lister alle mappens regneark (diagramark udelades) i kolonne Z. Dette kan selvfølgelig rettes til en anden kolonne. Når listen er oprettet, navngives det område, der indeholder arknavnene som "Alleark". Skal man bruge funktionen igen, slettes områdenavnet inden makroen listen dannes og dernæst etableres det igen til slut. Det er vigtigt at huske, at såfremt makroen skal virke rigtigt, skal man stå i Ark1 (det ark, hvor navnene anbringes), når man afspiller den. Formlen kan nu rettes til

SUMPRODUKT(TÆL:HVIS(INDIREKTE("'"&alleark&"'!f1:f800");"Ole")) og vil derefter virke, hvis makroen køres efter der er tilføjet eller slettet ark i mappen.

- Retur til Excel -