È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!

Excel Forum Per condividere esperienze su Microsoft Excel

Grafico Classifica serieA

  • Messaggi
  • OFFLINE
    by sal
    Post: 5.462
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 28/08/2018 06:43
    Ciao a tutti, sto creando un nuovo file per il campionato italiano della serie A.

    Ho un problema con questo grafico, ricordo che è un grafico pivot, ma se non fosse Pivot, il problema sarebbe lo stesso su uno normale



    meglio 2 problemi il primo le etichette si sovrappongono, come si vede, so che esiste il sistema per non farle sovrapporre.

    ma vorrei che oltre a non sovrapporsi sia indicata solo alla fine della linea e non ad ogni punto.

    oltre alle etichette anche gli indicatori(logo squadra) hanno lo stesso problema.

    sarebbe possibile far comparire, l'etichetta e l'indicatore solo alla fine della linea non sovrapposti.

    allego il file estrapolato dal file originale.

    Ciao By Sal [SM=x423051]

    [Modificato da by sal 28/08/2018 06:45]
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    dodo47
    Post: 1.904
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 28/08/2018 09:19
    Ciao
    se non ho capito male, nel seguente link trovi un esempio anche da scaricare

    saluti

    http://www.databison.com/chart-label-trick-label-last-point-in-a-line-chart-and-offset-axis-crossover/



    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    by sal
    Post: 5.462
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 28/08/2018 10:10
    grafico
    Ciao Domenico, ho visto sembra utile, ma non riesco a duplicare lo spostamento dell'asse y vicino all'ultimo valore della linea.

    ci lavoro ancora un poco a vedere se riesco

    Grazie per il momento Ciao By Sal [SM=x423051]

    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    dodo47
    Post: 1.905
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 28/08/2018 13:04
    Io e i grafici non siamo molto amici [SM=x423059]

    Ti ho sottoposto il link solo perchè mi sembrava adatto a quello che cerchi...sorry

    saluti



    Domenico
    Win 10 - Excel 2016
  • ONLINE
    Marius44
    Post: 604
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    00 28/08/2018 17:33
    Buon pomeriggio a tutti
    Credo che bisogna ricorrere a VBA
    Questa macro prima mette l'etichetta (il nome della squadra) e quindi elimina tutte le etichette di ogni serie tranne l'ultima.
    Non ho provato ma per quanto concerne l'indicatore (il logo della squadra) penso si possa agire con lo stesso sistema.
    Ovvio che talune etichette sono sovrapposte, ma tu hai detto che sai come fare per metterle ... a posto.

    Tieni presente che io ho creato un Grafico sullo stesso Foglio della Classifica (e la macro a questo si riferisce).

    Ecco la macro:
    Sub Solo_Ultima_Etichetta()
    Dim i As Long, j As Long
    Sheets("Dati").ChartObjects("Grafico 1").Select
    ActiveChart.ChartArea.Select
    For i = 1 To 20
      On Error Resume Next
      ActiveChart.SeriesCollecti0n(i).DataLabels.Select
      Selection.ShowSeriesName = True
      For j = 1 To ActiveChart.SeriesCollecti0n(i).Points.Count - 1
        ActiveChart.SeriesCollecti0n(i).Points(j).DataLabel.Select
        Selection.Delete
        On Error GoTo 0
      Next j
      On Error GoTo 0
    Next i
    End Sub
    


    Fai sapere. Ciao,
    Mario
  • OFFLINE
    by sal
    Post: 5.463
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 29/08/2018 08:00
    grafico
    Ciao Mario, grazie per la risposta, si funziona il tuo metodo anche se ho dovuto riscrivere la macro, in quanto con la versione 2013, cambiano i comandi vba per i grafici.

    appena ho terminato inserisco la macro con il risultato.

    la tua macro ha un errore, non riuscivo a capirlo.

    SeriesCollecti0n.

    lo zero al posto di o, come mai?, hai fatto copia incolla dal file?.

    Ciao e grazie per il momento By Sal [SM=x423051]

    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • ONLINE
    Marius44
    Post: 605
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    00 29/08/2018 09:53
    Ciao Sal
    non so proprio risponderti. Nella mia macro, ovviamente, non c'è lo 0 (zero) ma una semplice o (vocale).

    Ho provato a riallegare la macro sia con Code, sia con Quote, sia senza nulla e, facendo l'anteprima, noto che riporta lo 0 (zero) in ogni caso.
    Non capisco perchè.

    Per fortuna che è capitato a te che non sei ... un novellino. Forse sarebbe il caso di segnalarlo al WebMaster.

    Mi faresti cosa gradita se, alla fine, pubblicassi l'intero codice.
    Ciao,
    Mario
  • OFFLINE
    by sal
    Post: 5.464
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 29/08/2018 14:49
    grafico
    Ciao Mario sarà il solito caso delle accentate, che l'editor del Forum trasforma in altre lettere oppure caratteri strani.

    si certo sarà mia cura inserire il codice, anche se poi per te non sarà forse eseguibile vista la differenza tra la versione 2010-2013.

    Ciao Salvatore [SM=x423051]

    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • ONLINE
    Marius44
    Post: 606
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    00 29/08/2018 16:52
    Ciao Sal
    Ti ringrazio in anticipo e poi vedrò di lavorarci sopra per condividerlo con coloro che hanno ancora la vers.2010

    Ciao,
    Mario
  • OFFLINE
    by sal
    Post: 5.465
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 30/08/2018 10:18
    Grafico
    Ciao Mario, ma mi rivolgo a tutti gli interessati, mi sto bloccando, sono riuscito con le macro, sia a mettere l'ultima etichetta, che ad inserire l'ultimo indicatore.

    Sono anche riuscito a recepire le posizioni delle etichette in base a "Top-Left", ora però in base al "Top" di ogni serie dovrei distanziarle per l'accavallamento.

    sai che la classifica del calcio a volte è specialmente ad inizio campionato ci sono molte squadre a pari punti, quindi accavallate.

    quindi dovrei sapere prima quante sono le squadre a pari punti, e spostare solo quelle che sono più di 1 che vuol dire accavallate, ma spostarle in modo tale che non vadano ad accavallare quelle sotto o sopra.

    ma forse mi sto facendo io un falso problema.

    Questa la macro che rileva la posizione dell'etichetta:

    Sub posizione() 'rileva posizione dell'etichetta
    Dim r, c, x, y, n, Posiz
    
    ReDim Posiz(1 To 20, 1 To 2)
        ActiveSheet.ChartObjects("Grafico 1").Select
        ActiveChart.ChartArea.Select
        For x = 1 To 20
            ActiveChart.FullSeriesCollecti0n(x).DataLabels.Select
            n = ActiveChart.FullSeriesCollecti0n(x).Points.Count
            ActiveChart.FullSeriesCollecti0n(x).Points(n).DataLabel.Select
            Posiz(x, 1) = Selection.Left
            Posiz(x, 2) = Selection.Top
        Next x
    
    
    '    ActiveChart.FullSeriesCollecti0n(1).DataLabels.Select
    '    ActiveChart.FullSeriesCollecti0n(1).Points(3).DataLabel.Select
    '    Selection.Left = 551.797
    '    Selection.Top = 47.94
    End Sub
    


    una volta che ho tutte le posizioni potrò spostare le etichette dove voglio, con il codice commentato.

    Se blocchi la macro ad "End Sub" vedrai che la matrice "Posiz" ti riporta tutte le posizioni di ogni serie.

    riusciresti a darmi un input, ma forse come ho detto mi sto facendo io un falso problema

    ti allego il file di prova, l'immagine sarebbe del file definitivo.



    non ho lanciato la tua macro per farti vedere il funzionamento, se funziona con il 2010, vedi sta tutto nel foglio2, è un grafico Pivot, puoi scegliere la visualizzazione, scegliendo una squadra dallo Slicer(filtro) di fianco, con control puoi selezionare più squadre

    Ciao By Sal [SM=x423051]

    P.S. NOTA "FullSeriesCollection" con lo 0zero alla "o"


    [Modificato da by sal 30/08/2018 10:28]
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • ONLINE
    Marius44
    Post: 607
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    00 30/08/2018 21:08
    Ciao Sal
    ti rispondo prima di scaricare il file (poi me lo guardo ben-benino) per darti questo indirizzo:

    http://www.freeforumzone.com/discussione.aspx?idd=10224272

    Il buon Zer0kelvin ha fatto tutto (ovviamente con un grafico diverso ma il principio dovrebbe essere sempre lo stesso).

    A ben risentirci,
    Mario
  • OFFLINE
    by sal
    Post: 5.466
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 31/08/2018 08:14
    Grafico
    Ciao Mario, si conosco quel post, il problema li era che sono solo 2 serie, quindi bastava posizionare l'etichetta una sopra e l'altra sotto per non avere l'accavallamento.

    e tempo che vado a trovare "f." alias "fernando cinquegrana" non posta più da anni, non so se lo conosci, senza togliere merito lo reputo il guru dei grafici, e vedere nei suoi archivi se ci sia qualcosa a riguardo, ma sicuramente ci sarà qualcosa.

    se trovo qualcosa ti faccio sapere.

    Ciao Salvatore [SM=x423051]

    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • ONLINE
    Marius44
    Post: 608
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    00 01/09/2018 08:39
    Ciao Salvatore
    Anch'io ho attinto molto da Fernando.
    Ti allego il file in cui ho apportato qualche variazione:
    1°) ho eliminato tutte le serie del Grafico e le ho ri-inserite perchè nel tuo Grafico mancavano quelle relative a Spal e Roma.
    2°) ho aggiunto dei pulsanti, e relative macro, con cui il primo Elimina le etichette, il secondo le rimette, il terzo lascia solo l'ultima e il quarto ... prende le distanze.

    Come puoi vedere le macro fanno tutte il proprio dovere ma nel distanziare le etichette non riesco ad evitare alcuni accavallamenti. Ho provato, ma senza risultato, a mettere le etichette che si sovrappongono leggermente sposta e a destra.

    Forse Fernando riuscirà, anzi, ne sono convinto.
    Ciao,
    Mario
  • ONLINE
    Marius44
    Post: 609
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    00 01/09/2018 19:55
    Ciao a tutti
    Non è il massimo ma può essere accettabile.
    Ho implementato il codice precedente che, quando trova etichette sovrapposte, le sposta verso destra di 50 pts

    Il problema potrebbe essere che sposta da quel punto in poi tutte le etichette.

    Vedi che te ne sembra.
    Fai sapere. Ciao,
    Mario
  • ONLINE
    Marius44
    Post: 610
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    00 02/09/2018 23:36
    Salve a tutti
    Mi sono accorto che aggiornando la Classifica coi risultai odierni (pur correggendo il 3 in P in questa parte di codice
    For i = 1 To 19
    If .SeriesCollecti0n(i).Points(P).DataLabel.Top >= .SeriesCollecti0n(i + 1).Points(P).DataLabel.Top Then
    sx = .SeriesCollecti0n(i).Points(P).DataLabel.Left + 50
    End If
    .SeriesCollecti0n(i + 1).Points(P).DataLabel.Left = sx
    Next i )
    il posizionamento sballa. Devo dedicarci qualche giorno di riflessione in più (ma sarebbe meglio l'intervento di f).

    Scusa per il tempo che t'ho fatto perdere.
    Ciao,
    Mario
  • OFFLINE
    by sal
    Post: 5.470
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 03/09/2018 07:09
    grafico
    Ciao, Mario, ma che dici,


    Scusa per il tempo che t'ho fatto perdere.



    non ci pensare nemmeno, ti devo ringraziare io per l'aiuto che mi stai dando a risolvere un mio problema, in effetti f. la soluzione l'ha già data, in quanto lui visualizza le etichette, creando una tabella dati con le posizioni X-Y di riferimento, e poi le posiziona.

    ma devo dare anche un occhiata ad i lavori di Roberto Mensa(alias r, credo) , mi sembra che ci stava un lavoro sulle etichette di anni fa, Intersezione o altro al solito non ricordo l'età avanza, non so se lo conosci.

    ecco alcuni lavori, ama i Rebus, infatti il titolo del sito è un rebus,"e90e50" spiegato anni fa che adesso non ricordo al solito.

    https://sites.google.com/site/e90e50charts/

    comunque guardo il tuo lavoro e se può andare bene mi accontento, non si può cercare l'impossibile.

    Grazie comunque per l'impegno

    Ciao By Sal [SM=x423051]

    [Modificato da by sal 03/09/2018 07:16]
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • ONLINE
    Marius44
    Post: 611
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    00 03/09/2018 13:23
    Ciao Salvatore
    stai rispolverando tutte le mie "icone" (come si fa a non conoscere il mitico Roberto Mensa!!!).

    Credo di aver risolto il problema in maniera un po' empirica (e non ne ho provato per esteso la validità) riferendomi ai punteggi.
    Mi spiego.
    Quando si inserisce in un Grafico un'Etichetta e, oltre al valore, si vuol mostrare anche il Nome Serie la DataLabel contiene una Stringa separata da un ; (punto e virgola).
    Splittando detta stringa (come sai gli indici partono da 0 zero) il secondo termine è il valore sotto forma di stringa. Inserendo la funzione Val() si ottiene il valore (cioè il punteggio).
    Quindi ho assegnato a due variabili (sx1 e sx2) la posizione Left dell'Etichetta e la posizione + 60 pts.
    Quindi ho detto a VBA se il punteggio è dispari, pone l'etichetta a sinistra, se è pari, poni l'etichetta a destra.
    Mi sembra che non ci siano più accavallamenti (il prosieguo del Campionato mi/ci darà una risposta).

    Una precisazione: mi sembra che il Parma non abbia la penalità.

    Fai sapere che te ne pare.
    Ciao,
    Mario
    [Modificato da Marius44 03/09/2018 13:23]