Uso di formule nel campo "Valori serie" dei grafici

Anonimo
2020-05-10T09:57:28+00:00

Ciao

vorrei sapere se è possibile e come usare delle formule nella finestra di dialogo Seleziona dati ->Modifica serie -> Valori serie

di un grafico in modo da potere nel caso di

=DatiPisa!$W$8:$W$464

far dipendere gli estremi $W$8 e $W$464 della colonna dei dati da rappresentare dal contenuto di due celle diverse dagli estremi della colonna che contiene i dati ovvero  vorrei qualcosa del tipo

=DatiPisa!$W$(contenuto di C1):$W$(contenuto di C2)

in modo da estendere i grafici alla bisogna ma anche da zoommare nei grafici agendo in modo opportuno sugli estremi.

Ho visto come fare con i nomi ma nel mio caso ne dovrei creare troppi e non mi pare che le tabelle facciano al caso mio e cmq non vorrei usarle.

Grazie per ogni suggerimento.

Buona giornata.

Lorenzo

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

4 risposte

Ordina per: Più utili
  1. Anonimo
    2020-05-11T09:18:15+00:00

    Ciao Norman

    ho scaricato il tuo file di esempio. Ci faccio un po' di prove e ti faccio sapere asap.

    Grazie infinite.

    Regards.

    Lorenzo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2020-05-10T17:54:26+00:00

    Ciao Lorenzo.

    grazie della risposta. Purtroppo sono del tutto a digiuno di VB per cui scusa se ti faccio qualche domanda stupida.

    Dici che devo modificare il valore "A15". Ci devo mettere "C1"? Se voglio posso usare altre stringhe e il tutto si comporta in modo corretto?

    Devo fare nulla a livello dei grafici?

    Mi sono scaricato il tuo file. Lo guardo e ti faccio sapere asap.

    Grazie di nuovo.

    Sostituisci  A15 con la cella che contiene l'indirizzo della prima riga dei dati del grafico,

    Per quanto riguarda il mio file di prova, per modificare il grafico, sostituendo il contenuto della cella A15 ($B$1:$L$1) con, ad esempio, $B$1:$D$1, vedrai l'automatico aggionamento dell'ambito del grafico.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2020-05-10T16:38:57+00:00

    Ciao Norman

    grazie della risposta. Purtroppo sono del tutto a digiuno di VB per cui scusa se ti faccio qualche domanda stupida.

    Dici che devo modificare il valore "A15". Ci devo mettere "C1"? Se voglio posso usare altre stringhe e il tutto si comporta in modo corretto?

    Devo fare nulla a livello dei grafici?

    Mi sono scaricato il tuo file. Lo guardo e ti faccio sapere asap.

    Grazie di nuovo.

    Buona serata.

    Regards.

    Lorenzo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2020-05-10T16:12:00+00:00

    Ciao Lorenzo,

    vorrei sapere se è possibile e come usare delle formule nella finestra di dialogo Seleziona dati ->Modifica serie -> Valori serie

    di un grafico in modo da potere nel caso di

    =DatiPisa!$W$8:$W$464

    far dipendere gli estremi $W$8 e $W$464 della colonna dei dati da rappresentare dal contenuto di due celle diverse dagli estremi della colonna che contiene i dati ovvero  vorrei qualcosa del tipo

    =DatiPisa!$W$(contenuto di C1):$W$(contenuto di C2)

    in modo da estendere i grafici alla bisogna ma anche da zoommare nei grafici agendo in modo opportuno sugli estremi.

    Ho visto come fare con i nomi ma nel mio caso ne dovrei creare troppi e non mi pare che le tabelle facciano al caso mio e cmq non vorrei usarle.

    Non è possibile utilizzare una funzione del foglio di lavoro in una formula del grafico: è necessario modificare la formula manualmente o sfruttare VBA.

    Per aggiornare automaticamente il grafico in risposta a una modifica dell'indirizzo nella (diciamo) cella A15, prova qualcosa del genere:

    • Fai clic dx sulla linguetta del foglio di interesse
    • Seleziona l'opzione Visualizza Codice dal****menu contestuale risultante
    • Incolla il seguente codice:

     '=========>>

    Option Explicit

    '--------->>

    Private Sub Worksheet_Change(ByVal Target As Range)

        Dim Rng As Range, rngTemp As Range

        Dim myChart As Chart

        Dim arrSplit As Variant

        Dim sFormula As String

        Dim oldStr As String, oldStr2 As String

        Dim newStr As String, newStr2 As String

        Dim sStr As String

        Const sDati_Grafico As String = "A15"                        '<<=== Modifica

        Set Rng = Intersect(Me.Range(sDati_Grafico), Target)

        If Not Rng Is Nothing Then

            Set myChart = Me.ChartObjects(1).Chart

            sFormula = myChart.SeriesCollection(1).Formula

            arrSplit = Split(sFormula, ",")

            On Error GoTo XIT

            newStr = Range(Rng.Value).Address

            newStr2 = Range(Rng.Value).Offset(1).Address

            On Error GoTo XIT

            With Application

                .EnableEvents = False

                .Undo

            End With

            oldStr = Range(Rng.Value).Address

            Set rngTemp = Me.Range(oldStr)

            If rngTemp Is Nothing Then

                GoTo XIT

            End If

            oldStr2 = Range(Rng.Value).Offset(1).Address

            Rng.Value = newStr

            sFormula = Replace(sFormula, oldStr, newStr)

            sFormula = Replace(sFormula, oldStr2, newStr2)

            myChart.SeriesCollection(1).Formula = sFormula

        End If

    XIT:

        Rng.Value = newStr

        Application.EnableEvents = True

    End Sub

    '<<========= 

    • Alt+Q per chiudere l'editor di VBA e tornare a Excel.
    • Salva il file con l'estensione xlsm.

    Potresti scaricare il mio file di prova Lorenzo20200510.xlsm

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento