User‎ > ‎

Grafici a Cruscotto in 10 passi ... con Excel

Di seguito viene illustrato come creare un grafico a cruscotto dalla combinazione di un grafico ad anello con uno radar.
 

In A1 di Foglio1 (attenzione il nome del foglio deve essere proprio Foglio1 in quanto verrà usato nella formula per il nome della lancetta) sia il valore che vogliamo rappresentare nel cruscotto, in B1 il valore massimo della scala (zero è il valore minimo quindi possiamo rappresentare in questo caso valori compresi tra 0 e 100) in C1 l'angolo interno del futuro cruscotto ... scriviamo quindi:
in A1 il valore 70
in B1 il valore 100
in C1 il valore 120

a zero gradi corrisponderà la lancetta che indica il valore 0 a 120 la lancetta che indica il valore massimo 100.

I 10 passi da seguire:
1) Menu Inserisci->Nome<definisci ...
aggiungete il nome:
Lancetta
in Riferito a incollate questa formula:
=MATR.PRODOTTO((RESTO(INT($A$1/$B$1*$C$1)-$C$1/2+1-RIF.RIGA(INDIRETTO("Foglio1!1:360"));360)={0;1;359;179;180;181})*SCEGLI({1;2;2;3;3;3};95;75;5);{1\1\1\1\1\1})+5

Click su Ok

2) nuovamente Menu Inserisci->Nome<definisci ...
aggiungete il nome:
scala_r_v
in Riferito a incollate questa formula:

=SE({0\1\0};1-a/360;a/2/360)
Ok

3) Menu Inserisci->Grafico ...
scegliete Anello  ...
Avanti>
Scheda Serie vi troverete Serie1 e in valori qualcosa tipo:
=Foglio1!$A$1:$C$1 oppure ={1}
modificate con:

=Foglio1!Lancetta

Click su Aggiungi
evidenziate ={1} nel campo valori e cliccate sul foglio di calcolo ... in valori avrete qualcosa tipo:
=Foglio1!$C$30
modificate con:
=Foglio1!scala_r_v

Click su Avanti>

Scheda Legenda ... togliete la spunta a Mostra legenda
Click su Fine

Otterrete qualcosa tipo:

4) Tasto destro sull'anello più interno del grafico e scegliete
Tipo di grafico
poi Radar e tra i tre Radar Riempito

Click su Ok

5) Torniamo sul grafico, tasto destro e scegliere:
Opzioni grafico
Scheda assi ... togliere la spunta a Assi dei valori (Y)
poi Ok

ci siamo quasi ...

6) Tasto destro e click su una delle due mezzelune nere (sono le etichete del radar) e scegliete Cancella

Ecco il cruscotto è praticamente finito ... ancora qualche operazione per abbellirlo e nascondere le ultime cose che non ci servono ...

7) tasto destro nell'anello e scegliere Formato serie dati
Scheda Motivo ... Bordo scegliere assente
Scheda Opzioni ... portare a 90 la Dimensione anello
Click su Ok

8) due click distanziati nel tempo sulla parte dell'anello più ampia (quella in basso) ... viene segnata solo questa parte della serie ...
tasto destro sempre su questa parte e e scegliere Formato dat
Scheda Motivo -> Area ... flag su Assente quindi Ok

9)ripetere l'ultima operazione per le altre due mezzelune (quelle piccole in alto) del grafico ad anello ... scegliendo rispettivamente per quella di destra il colore verde e per quella di sinistra il colore rosso

10) tasto destro sulla lancetta e scegliere Formato serie dati
Scheda Motivo ... Area ... scegliere il Nero quindi Cklick su Ok
E' possibile personalizzare ulteriormente la lancetta ... aggiungiamo:
in D1 di Foglio1 (attenzione il nome del foglio deve essere proprio Foglio1 in quanto verrà usato nella formula per il nome della lancetta) il valore 5 (che starà a indicare la larghezza del centro lancetta) in E1 il valore 80
 
Menu Inserisci->Nome<definisci ...
aggiungete il nome:
cl
Riferito a =$D$1
Scegliere Ok
 
Menu Inserisci->Nome<definisci ...
aggiungete il nome:
Riferito a =$C$1
Scegliere Ok
 
Menu Inserisci->Nome<definisci ...
aggiungete il nome:
m 
Riferito a =$B$1
Scegliere Ok
 
Menu Inserisci->Nome<definisci ...
aggiungete il nome:
f 
Riferito a =$E$1
Scegliere Ok
 
I nomi sono riferiti rispettivamente a:
  • Larchezza del centro lancetta (cl)
  • Angolo interno del cruscotto (a già valorizzato all'inizio con 120)
  • Valore massimo (m già valorizzato all'inizio con 100)
  • Forma della lancetta (più o meno a freccia)
 
Modifichiamo ora la formula del nome Lancetta ...
Menu Inserisci->Nome<definisci ...
scegliete il nome:
Lancetta
in Riferito a sostituire la precedente formula con:
=MATR.PRODOTTO((RESTO(INT($A$1/m*a)-a/2+1-RIF.RIGA(INDIRETTO("Foglio1!1:360"));360)={0;1;359;179;180;181})*SCEGLI({1;2;2;3;3;3};95-cl;f-cl;cl);{1\1\1\1\1\1})+cl

 
Scegliere Ok
 
Abbiamo finito!
provate ora a personalizzare i valori delle celle D1, C1 e B1 ... ad esempio modifichiamo l'angolo portandolo da 120 a 220.
Ecco il nuovo risultato:
 
Qui sotto il riepilogo di tutti i nomi per la versione italiana e quella inglese:
 
Versione italiana:

a =Foglio1!$C$1

cl =Foglio1!$D$1

f =Foglio1!$E$1

lancetta =MATR.PRODOTTO((RESTO(INT($A$1/m*a)-a/2+1-RIF.RIGA(INDIRETTO("Foglio1!1:360"));360)={0;1;359;179;180;181})*SCEGLI({1;2;2;3;3;3};95-cl;f-cl;cl);{1\1\1\1\1\1})+cl

m =Foglio1!$B$1

scala_r_v =SE({0\1\0};1-a/360;a/2/360)

Versione inglese:

a =Foglio1!$C$1

cl =Foglio1!$D$1

f =Foglio1!$E$1

lancetta =MMULT((MOD(INT($A$1/m*a)-a/2+1-ROW(INDIRECT("Foglio1!1:360")),360)={0,1,359,179,180,181})*CHOOSE({1,2,2,3,3,3},95-cl,f-cl,cl),{1;1;1;1;1;1})+cl

m =Foglio1!$B$1

scala_r_v =IF({0;1;0},1-a/360,a/2/360)

E' da notare che all'interno di indiretto il nome del foglio è necessario:
INDIRETTO("Foglio1!1:360")
in alternativa infatti la serie che utilizza il nome Lancetta non viene accettata dal grafico.
Volendo è possibile sostituire con scarto nella forma:
SCARTO($A$1;;;360)
però in questo caso qualora venisse eliminata la cella A1 si andrebbe incontro ad un errore o ancora inserende una riga sopra A1 si perderebbe il giusto riferimento ...
Meglio sarebbe utilizzare scarto *nascondendo* la cella di riferimento in una posizione meno significativa e rendere lo scarto relativo per evitare che l'inserimento di righe ne mutino il riferimento:
SCARTO($Z$100;1-RIF.RIGA($Z$100);;360)
In entrambi questi ultimi due casi non è necessario il riferimento al foglio al momento in cui la formula viene incollata nella casella del nome (Riferito a) perchè excel lo aggiungerà in piena autonomia dove necessario.
Per un cruscotto a più gradazioni visita la pagina dei grafici a semaforo:
 
 

Ĉ
r,
Oct 5, 2010, 8:58 AM
Comments