09. juni 2009 - 13:37Der er
8 kommentarer og 1 løsning
Betinget formatering i et diagram
Hej alle eksperter!
Jeg er ved at lave et dynamisk diagram (data er sammenstykket fra en access-database og flyttet over i en tabel ved hjælp af SUMPRODUKT-funktionen), som viser statistik over fordeling af nogle fejl i procent på forskellige personer. Det er dog forskelligt fra person til person, hvilke fejl de laver og hvor mange de laver.
Nogen af personerne laver ingen fejl i en bestem kategori og denne fejl/kategori skal derfor ikke vises i diagrammet.
Hvordan får jeg de kategorier, som har en værdi på 0% til ikke at fremgå af diagrammet? Er der en måde hvorpå jeg kan lave en form for betinget formatering, som man ellers kan lave i en tabel?
Jeg har prøvet at lave mit eget brugerdifineret tal i formater dataetikette for at skjule 0'et: #%;#
Dette virker til dels, da værdien 0 ikke længer er synlig, men selve kategorinavnet og procenttegnet (%) vises stadig.
Arbejder jeg ud fra en helt forkert løsning på problemet, eller er der nogen der kan vise mig hvordan det så kan gøres?
Det vil ikke rigtigt virke når jeg overføre din formel til excel 2007, men jeg har ihvert fald noget at arbejde vider med. :)
Synes godt om
Slettet bruger
16. juni 2009 - 04:42#6
Jon
Det har du ret i. Jeg har selv konstateret det samme.Ved eftertanke mindes jeg at have læst andetsteds, at grafværktøjet i Excel 2007 er en dårlig erstaning for grafværktøjet i Excel 2003 (måske bortset fra noget "vinduespynt"). Jeg har desværre ingen forslag her, altså udover at bruge Excel 2003.
Jeg har arbejdet lidt vider med ovenstående dilemma, og fundet en VBA-løsning som fungere - hvis der nu skulle være nogen der var interesseret.
Sub SorterDiagram()
Range("A2:B7").Select ActiveWorkbook.Worksheets("Ark1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Ark1").Sort.SortFields.Add Key:=Range("B2:B7"), _ SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Ark1").Sort End With Sheets("Ark2").Select ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Sheets("Ark1").Range("A2:B" & 7 - Sheets("Ark1").Range("B8")) Range("A1").Select
End Sub
Jeg har skrevet formlen =TÆL.HVIS(B2:B7;0) På den måde får jeg et søjlediagram som kun viser søjler der har værdier fra min statiskit (man kan også bruge =TÆL.HVIS(B2:B7;"") hvis man har tomme celler i stedet for nuller).
Det er muligt at koden ikke er super anvendelig ved søjlediagrammer, men hvis man gerne vil undgå at have dataetiketter med værdien 0 i et lagkagediagram er den god. Det giver helt klart en bedre visuelt indtryk af diagrammet.
Hvis man vil have et lagkagediagram i stedet for et søjlediagram skal man bare skifte følgende sætning ud:
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.