Kategorie szkoleń | Egzaminy | Kontakt
  • 6
  • 3
  • 98

Witam.

Chciałbym stworzyć wskaźnik w Excelu, tylko nie wiem do końca jak to zrobić, aby przy wartości granicznej wykres liniowy zmieniał kolor?

 

 

Poniżej 1 kolor czerwony, a powyżej zielony.

Proszę o pomoc.

Bartłomiej_Pawlak
  • Zapytał
  • @ Bartłomiej_Pawlak | 15.12.2016
    • 2
    • 0
    • 1
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedzi (6)

  • 0

Z wykresem liniowym jest pewien problem. Dużo łatwiej takie zadanie jest wykonać na wykresie kolumnowym skumulowanym. Przykładowe rozwiązanie - takie jak poniżej - jest w załączniku.

 

 

Wykres liniowy jest o tyle kłopotliwy, że koloruje segmenty między znacznikami - stąd cała trudność.

Czy zadowoli Pana wykres liniowy ze znacznikami, ale bez widocznych linii? Takie rozwiązanie tez podrzucam w tym samym załączniku.

W obydwu przykładach przyjąłem, że graniczną wartością jest 2.

Z kolumny "kolor" wartości poniżej 2 usunięte zostały ręcznie. Użycie funkcji JEŻELI powodowało, że Excel traktował komórki z wynikiem funkcji jako wartości zerowe, mimo zaznaczenia opcji "odstępy" w sekcji "puste i ukryte komórki".

 

Załączniki

  • xlsx

    proby_rozwiazania.xlsx ( 21K )
  • Odpowiedział
  • @ | 21.12.2016
  • TRENER ALTKOM AKADEMII
  • 3

Z wykresem liniowym jest faktycznie bardzo trudna sprawa.

Kolega Andrzej przedstawił rozwiązanie dla wykresu kolumnowego, ja natomiast dla wykresu warstwowego.

Zakładam ze wykres warstwowy już mamy.

 

 

Naszym celem jest oznaczenie wyników do 1 na czerwono powyżej na zielono.

Najpierw wyjaśnię co będziemy musieli policzyć.

Wykorzystamy formatowanie wykresu za pomocą gradientu.

Jeżeli wejdziemy w formatowanie serii danych możemy wybrać wypełnienie gradientowe.

 

 

Gradient może być konkretnego typu.

Posiadać kierunek przejścia.

Możemy także określać ilość, kolor i położenie stopni gradientu.

Nas będzie interesowało następujące ustawienie gradientu:

Typ liniowy, kąt 270, pierwszy stopień czerwony drugi stopień zielony.

Oba stopnie muszą mieć wyliczone położenie pokrywające kolorem czerwonym tylko do 1.

 

 

Położenie wylicza się poprzez podzielenie 1 przez wartość maksymalną występującą na wykresie.

Oczywiście, że przy każdej zmianie wartości musielibyśmy ponownie wszystko wyliczać więc użyjemy do tego  VBA.

Wchodzimy do Edytora VBA (ALt F11).

W otwieramy arkuszu na którym zrobiliśmy wykres:

 

 

Wstawiamy kod:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim maksimum As Single
Dim stopien As Single
' jezeli wykonana zostanie zmiana w zakresie danych do wykresu
If Not Intersect(Target, Range("a1:b13")) Is Nothing Then
    ' wyliczamy maksimum
    maksimum = WorksheetFunction.Max(Range(Range("b2"), Range("b2").End(xlDown)))
    
    ' jezeli nie jest większe od 1
    If maksimum < 1 Then
        'to położenie stopni 100% czyli cały czerwony
        stopien = 1
    Else
        ' a jak nie oblicz stopień
        stopien = 1 / maksimum
    End If
    
    Worksheets(1).ChartObjects(1).Activate
    ActiveChart.FullSeriesCollection(1).Select
    With Selection.Format.Fill
        .Visible = msoTrue
        .TwoColorGradient msoGradientHorizontal, 4
        ' kolory mozna zmienić :)
        .ForeColor.RGB = RGB(255, 0, 0)
        .BackColor.RGB = RGB(0, 255, 0)
        .GradientStops(1).Position = stopien
        .GradientStops(2).Position = stopien
        
    End With
End If
End Sub

Testujemy rozwiązanie.

Patrz załącznik.

 

Załączniki

  • xlsm

    linia kolor.xlsm ( 24K )
  • Odpowiedział
  • @ | 24.01.2017
  • TRENER ALTKOM AKADEMII
  • 0

Przykład Krzysztofa nasunął mi jeszcze jeden - chyba najprostszy pomysł. Do tabeli z danymi wystarczy dodać jedną kolumnę zawierającą wartość graniczną, a następnie zrobić z tego zwykły wykres liniowy.

 

 

Linię prezentującą granicę można zamienić na powierzchnię, która będzie półprzejrzysta. Zmieniam typ wykresu seryjnego na powierzchniowy. Po drobnej korekcie kolorów może to spełniać nasze potrzeby.

 

 

Ponieważ linia jest zielona, a płaszczyzna żółta, linia poniżej górnej płaszczyzny zaczyna wyglądać na niebieską.

 

 

Można też obie serie danych wyświetlać jako wykres powierzchniowy z półprzezroczystością obszaru granicznego.

Przykład w załączniku.

Możliwości zabawy wykresami jest dość dużo. Miłej zabawy.

Załączniki

  • xlsx

    granica.xlsx ( 18K )
  • Odpowiedział
  • @ | 26.01.2017
  • TRENER ALTKOM AKADEMII
  • 0

Problem rozwiązany!

Udało się dzięki inspiracji przykładem Krzysztofa z wypełnieniem obszarów gradientem.

Linia również może być kolorowana gradientem. Wybrałem gradient z dwóch kolorów z bardzo ostrym przejściem między nimi i WYSZŁO!

 

 

Ponieważ przejścia gradientu ustawia się za pomocą wartości procentowych - wystarczy gdzieś na boku wyliczyć, jakim procentem jest wartość graniczna na tle maksymalnej wartości i taki procent ustawić na suwaku położenie dla obu kolorów. Wyliczyłem, że w tej tabeli jest to wartość bliska 58%. Na obrazku poniżej suwak koloru czerwonego ma nieco mniejszą wartość, bo chciałem, aby był też widoczny zielony suwak. Jednak dla obu suwaków należy ustawić wartość położenie bliską 58%.

 

 

Efekt ostateczny poniżej.

 

 

Problem rozwiązany - przykład w załączniku.

Panie Bartłomieju i Krzysztofie: bardzo dziękuję Wam za inspirację. :-)

Dochodzę do wniosku, że tekst "nie da się" - w przypadku Excela w ogóle nie powinien mieć zastosowania, jak widać, to tylko kwestia pomysłu i znalezienia odpowiednich narzędzi.

Pozdrawiam.
Andrzej.

Załączniki

  • xlsx

    finalne rozwiązanie.xlsx ( 14K )
  • Odpowiedział
  • @ | 26.01.2017
  • TRENER ALTKOM AKADEMII
  • 0

Ja mam jeszcze jeden pomysł i taki zastosowałem stąd nie wchodziłem na ten post:

 

 

Dajcie Panowie znać, czy jest to zrozumiale?

Bartłomiej_Pawlak
  • Odpowiedział
  • @ Bartłomiej_Pawlak | 26.01.2017
    • 2
    • 0
    • 1
Komentarze
Na rysunku nie widać zbyt wiele. Jeśli można - prosiłbym o załączenie pliku Excela. Ale jeśli ten sposób działa prawidłowo - to znaczy, że jest prawidłowy.
Skomentował : @ TRENER ALTKOM AKADEMII ,26.01.2017
Gdzie tu jest możliwość wrzucenia pliku Excel?
Skomentował : @ Bartłomiej_Pawlak ,27.01.2017
  • 2
  • 0
  • 1
W momencie, kiedy pisze Pan odpowiedź na pytanie - na dole okna edytora - z lewej strony - jest strzałka, która pozwała przypiąć załącznik.
Skomentował : @ TRENER ALTKOM AKADEMII ,01.02.2017
  • 0

W załączniku moje rozwiązanie.

Załączniki

  • xlsx

    Wskaźnik reklamacji.xlsx ( 20K )
Bartłomiej_Pawlak
  • Odpowiedział
  • @ Bartłomiej_Pawlak | 03.02.2017
    • 2
    • 0
    • 1