05. november 2004 - 11:09Der er
10 kommentarer og 1 løsning
Sum.hvis med dynamisk sum_område
Jeg har en tabel med dagens transaktioner fra en kiosk og kolonne overskrifterne er f.eks. Slik, Is, blade hver række repræsenterer en dag.
Den formel jeg bruger ser således ud! =SUM.HVIS(Data!$D:$D;$A8&" "&$A$2;Data!S:S)
Jeg vil meget gerne have Data!S:S udskiftet med en formel der udfra et felt hvor jeg selv kan indtaste (f.eks. Slik) søger rækkeoverskrifterne igennem og returnere den kolonne hvor Slik står.
Først navngiver du hver kolonne, brug navnene slik, is, blade. altså det samme som overskriften
Det gøres ved at makere kolonnen, så kan du se over i vinduet til celle adressen, at der står feks. H1 , klik derind, skriv navnet på overskriften og VIGTIGT tryk på enter.
Så er navnet på kolonnen lavet, det gøres så for alle de andre også.
Jeps så langt er jeg nået jeg har navngivet overskriftsområdet og bruger den som opslag. Det kræver dog at jeg også, som du nævner navngiver hver kolonne med overskriften.
Jeg kunne dog godt tænke mig at der fandtes en metode til at returnere kolonnen så det hele blev mere flexibelt. har f.eks. fundet den her søge fidus på eksperten, men den returnere hele celle referencen.
Public Function FindKolonne(Område As Range, Kriterie As Range) For Each c In Område If c = Kriterie Then FindKolonne = "$" & Chr(c.Column + 64) & ":$" & Chr(c.Column + 64) Exit Function End If Next End Function
Område A1:Z1 , det er overskrifterne Kriterie = den celle du skriver i , J1 som i forslaget = din indtastnings celle
kaldes med =FindKolonne(A1:Z1;J1)
i formlen =SUM.HVIS(Data!$D:$D;$A8&" "&$A$2;INDIREKTE(J1)) skal du lave J1 om til den celle du har den nye funktion i.
Mums det ser lækkert ud. Jeg havde dog lidt problemer med at få funktionen til at virke først, men efter jeg indsattet et Module så funker det. Meget fornemt, men jeg har lige en bøn eller to:
1) hvorfor kan den kun fungere med kolonnerne A-Z 2) og er det muligt og få den til at returnere arknavnet for resultatet. JEg står f.eks. i Ark1 og søger i arket data, så metoden ser sådan ud: =findkolonne(data!a1:z1;b2) Så kan den nemlig kalde funktionen i et ark og søge i et andet.
Håber du kan hjælpe mig lidt med det. Jeg har nu arbejdet med økonomirapportering i en del år og den funktion som du lige har leveret kan hjælpe mig helt sindsygt meget.
ok, nu har jeg gjort hvad jeg kunne, med den sidste funktion.
Public Function FindKolonne(Område As Range, Kriterie As Range) Dim A As String, B As String, D As Variant For Each c In Område If c = Kriterie Then A = c.Address D = Område.Worksheet.Name For i = 1 To Len(A) If IsNumeric(Mid(A, i, 1)) Then B = Left(A, i - 2) Exit For End If Next FindKolonne = D & "!" & B & ":" & B Exit Function End If Next End Function
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.