Jeg har et giga regneark, hvor jeg skal have programmeret noget der tester på om teksten nedenunder ændre sig. Hvis teksten i D ændre sig skal den finde et gennemsnit for et området over (her a1:C5), hvor teksten i D er ens, returnere i en celle i kolonne E og derefter gå videre ned gennem hele arket.
A B C D 5 5 5 Asian Economic Organisation and Competitiviness 5 5 5 Asian Economic Organisation and Competitiviness 5 4 4 Asian Economic Organisation and Competitiviness 5 5 5 Asian Economic Organisation and Competitiviness 3 2 2 Asian Societies from a Comparative Perspective 3 3 5 Asian Societies from a Comparative Perspective 3 4 5 Asian Societies from a Comparative Perspective 4 5 4 Asian Societies from a Comparative Perspective 4 4 5 Asian Societies from a Comparative Perspective
Håber der er nogen der kan hjælpe? Gode hilsner fra Mia
Jeg er ikke erfaren bruge af VBA, men kan nok finde ud af det, hvis jeg får hjælp til syntaksen. Hvordan skal jeg forklare det bedre..... jeg har det her kæmpe regneark, med en masse fag, hvor jeg skal have et gennemsnit pr. fag. Teksten (fagets navn)står i kollonne D, og når teksten skifter skal den udregne et gennemsnit for det område til venstre for teksten (her a1:c4), som vist ovenfor, hvor teksten i kolonne D er ens. Gennemsnitstallet skal returneres i en celle ved siden i kolonne E. Jeg tænker når teksten i kolonne D skifter, skal den udregne et gennemsnit for det område, der ligger i samme rækker som ligger til venstre for kolonne D, (som jo er med samme tekst). Giver det mening? /Mia
Du skal bare oprette en Pivot tabel, den vil automatisk beregne gennemsnittet. Marker hele dit dataområde og gå ind under "indsæt" og vælg PivotTabel. Brug evt hjælp til at finde flere oplysninger om, hvordan du ændrer fra sum til gennemsnit.
Noget i denne retning - er anbragt under relevante ark:
Sub optælling() Dim kolD As String, rækStart As Long, rækSlut As Long Dim Total, antalRæk As Long rækStart = 1 rækSlut = 1 kolD = Range("D1")
For ræk = 2 To ActiveCell.SpecialCells(xlLastCell).Row If Range("D" & ræk) = kolD Then rækSlut = ræk Else rækSlut = ræk - 1 Total = 0 For Each cc In Range("A" & rækStart & ":C" & rækSlut).Cells Total = Total + cc.Value Next cc Range("E" & rækSlut).Value = Total / ((rækSlut - rækStart + 1) * 3)
rækStart = ræk kolD = Range("D" & ræk) End If Next ræk
Rem Sidste interval rækSlut = ræk - 1 Total = 0 For Each cc In Range("A" & rækStart & ":C" & rækSlut).Cells Total = Total + cc.Value Next cc Range("E" & rækSlut).Value = Total / ((rækSlut - rækStart + 1) * 3) End Sub
Tusind tak for jeres input, jeg håber det virker...men jeg er allerede stødt på et problem...jeg har oprettet en pivot tabel, men jeg er i tvivl om hvor jeg skal indsætte syntaksen...
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.