02. marts 2017 - 09:07
Der er
3 kommentarer
svingende dato-intervaller på x-aksen udlignes som kalender
Hej
Jeg roder med en graf, hvor jeg har data fra fx 1. april, 20. april, 6. juni. Jeg ville gerne afbillede x-aksen til at vise, at der er kortere periode ml. 1-20. april end 20.april-6. juni.
Jeg tænkte på blot at have alle datoer som grundlag, men i så fald vil det være grafen jo gå ned på 0 på alle datoer uden data.
Gode bud på, hvordan jeg løser dette? Det kan enten være i simpel graf eller pivotgraf, hvis det kan hjælpe
På forhånd tak for hjælpen
02. marts 2017 - 09:41
#1
Interpolering:
Hvis du har sted I A o, Dato i B og værdier i C.
Så kan du Interpoler med denne kode, den opretter et nyt ark med resultater.
Public Sub Interpolering()
Rem A B C
Rem Sted mDate Måling
Rem L5_S1 14-04-2009 3,377947567
Dim RåData As Variant, I As Long, P As Long, NyData() As Variant, m As Integer, Y As Integer
Dim V As Double, WS As Worksheet
Range("A1").CurrentRegion.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:= _
Range("B2"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
RåData = Range("a1").CurrentRegion
P = 0
For I = 2 To UBound(RåData, 1) - 1
If RåData(I, 1) = RåData(I + 1, 1) Then
P = P + RåData(I + 1, 2) - RåData(I, 2)
End If
Next
ReDim NyData(P + UBound(RåData, 1), 3)
NyData(1, 1) = RåData(1, 1)
NyData(1, 2) = RåData(1, 2)
NyData(1, 3) = RåData(1, 3)
P = 2
For I = 2 To UBound(RåData, 1)
NyData(P, 1) = RåData(I, 1)
NyData(P, 2) = RåData(I, 2)
NyData(P, 3) = RåData(I, 3)
If I = UBound(RåData, 1) Then Exit For
P = P + 1
If RåData(I, 1) = RåData(I + 1, 1) Then
Y = RåData(I + 1, 2) - RåData(I, 2)
V = (RåData(I + 1, 3) - RåData(I, 3)) / Y
For m = 1 To Y - 1
NyData(P, 1) = RåData(I, 1)
NyData(P, 2) = RåData(I, 2) + m
NyData(P, 3) = RåData(I, 3) + V * m
P = P + 1
Next
End If
Next
Application.DisplayAlerts = False
For Each WS In Worksheets
If WS.Name = "RESULTAT" Then
WS.Delete
Exit For
End If
Next
Application.DisplayAlerts = True
Application.Worksheets.Add
ActiveSheet.Name = "RESULTAT"
Range("A1").Resize(UBound(NyData, 1), UBound(NyData, 2)) = NyData
End Sub
02. marts 2017 - 16:08
#3
Du kan sagtens have alle datoer, hvor du kun har oplysninger for 1. april, 20. april og 6. juni. Resten af dagene skal der ikke udfyldes noget.
Opret eksempelvis et linje-diagram med dine datoer på x-aksen og dine værdier op ad y-aksen. Nu vil der formentlig fremkomme et tomt diagram, men hvis du højreklikker og vælger Select Data (hedder det på engelsk), så vil der fremkomme en lille boks, hvor der i nederste venstre hjørne står "Hidden and empty cells".
Tryk på denne og vælg hvad du vil gøre med tomme celler. Som udgangspunkt står den nok til mellemrum (gaps). Hvis du vælger "Connect data points with line" skulle du få din figur som ønsket.
Tillæg: Hvis du kun vil have vist de datoer du nævner kan du lave en ny datokolonne,, hvor det kun er 1.4.2017, 20.4.2017 og 6.6.2017 der fremgår.
Vh
Anedi