Etichettatura dei grafici a dispersione X-Y (Microsoft Excel)
Martin ha un foglio di lavoro contenente 50 righe di dati, ogni riga che descrive un singolo oggetto. La colonna A contiene il nome dell’oggetto, la colonna B contiene la sua coordinata X e la colonna C contiene la sua coordinata Y. Quando crea un grafico a dispersione X-Y (colonna B contro colonna C) il risultato, come desiderato, è un grafico che mostra una matrice di punti che mostra la posizione degli oggetti. Tuttavia, Martin non sembra in grado di etichettare i punti dati con i loro nomi individuali (dalla colonna A). Quando cerca di etichettare i punti dati, le uniche opzioni disponibili sono etichettare ogni punto con il suo valore X, valore Y o Nome serie. Martin si chiede se esiste un modo per utilizzare facilmente la colonna A per etichettare i punti dati tracciati.
Questo può essere fatto manualmente, ma nella migliore delle ipotesi è noioso. Per 50 file sarebbe rapidamente brutale, quindi è meglio guardare a un approccio macro-oriented. Un’idea è usare una macro simile alla seguente, che passa attraverso i punti dati nel grafico X-Y e legge i valori dell’etichetta dalla colonna A.
Sub DataLabelsFromRange() Dim Cht As Chart Dim i, ptcnt As Integer Set Cht = ActiveSheet.ChartObjects(1).Chart On Error Resume Next Cht.SeriesCollection(1).ApplyDataLabels _ Type:=xlDataLabelsShowValue, _ AutoText:=True, _ LegendKey:=False ptcnt = Cht.SeriesCollection(1).Points.Count For i = 1 To ptcnt Cht.SeriesCollection(1).Points(i).DataLabel.Text = _ ActiveSheet.Cells(i + 1, 1).Value Next i End Sub
La macro presuppone che la prima riga del foglio di lavoro contenga le informazioni di intestazione e che i dati effettivi inizino nella riga 2. Se i dati iniziano davvero nella riga 1, modificare “i + 1” semplicemente “i”. (Questo approccio macro è in realtà una variazione di una macro che si trova alle pagine 570-571 dell’eccellente libro di John Walkenbach Excel 2003 Power Programming with VBA.)
Un approccio non macro piuttosto unico consiste nell’utilizzare i formati personalizzati di Excel.
Tutto quello che devi fare è impostare una serie di formati personalizzati che contengono solo il testo che desideri venga visualizzato. Ad esempio, se hai i valori Età, 15 e 23 nelle celle da A3 a C3, puoi formattare la cella B3 o C3 per mostrare la parola “Età” anche se il valore rimarrà rispettivamente 15 o 23. Basta inserire “Età” (comprese le virgolette) per il formato personalizzato per la cella. Quindi formatta il grafico per visualizzare l’etichetta per il valore X o Y.
Quando lo fai, i valori dell’asse X del grafico probabilmente cambieranno tutti in qualunque sia il nome del formato (cioè, Età). Tuttavia, dopo aver formattato l’asse X su Numero (senza cifre dopo il decimale in questo caso) anziché su Generale, il grafico dovrebbe essere visualizzato correttamente.
Questo approccio può ovviamente richiedere ancora un po ‘di tempo per l’implementazione mentre imposti e applichi una serie di formati personalizzati per ciascun valore nelle serie di dati. Se non vuoi perdere tempo scrivendo e testando le tue macro o creando una serie di formati personalizzati, puoi sempre rivolgerti a componenti aggiuntivi scritti da altri. Microsoft MVP Rob Bovey ha creato un eccellente componente aggiuntivo (gratuito) per Excel che include una funzione di etichettatura X-Y tra molti altri. Può essere scaricato a questo indirizzo:
http://www.appspro.com/Utilities/ChartLabeler.htm
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (3503) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: