In questo articolo su Office 2010 impareremo a importare dati sempre aggiornati da Internet in Excel. In particolare, vedremo come avere un listino prezzi automaticamente convertito in dollari americani in base al cambio più attuale.
Scaricare le valute dal web e usare con Excel
Molto spesso, su Internet si trovano dati che ci possono fare comodo e, se lavoriamo, come ormai capita in molti uffici, sempre connessi alla rete, possiamo importare questi dati in un file Excel e utilizzarli per i calcoli che ci servono, sicuri del fatto che siano sempre aggiornati.
Noi partiremo dal file ElenchiTesto, che si trova sul booksite del libro da cui è tratto questo articolo.
Si tratta di un elenco di prodotti con il loro prezzo in euro. Vogliamo che, ogni giorno, sia calcolata la conversione in sterline di questi prezzi al cambio attuale.
Aggiungiamo dunque al file un foglio, in cui importeremo i dati di cambio.
Se fate una ricerca su Internet, trovate sicuramente molti siti che offrono questi dati. Noi abbiamo scelto di usare per il nostro esercizio il sito Exchange-Rates.org alla pagina visibile in figura 1.
Notate che la pagina contiene “più” di quanto ci serve. I dati di cui abbiamo bisogno sono solo quelli della tabella segnata con una freccia nella figura 1. Questo non è un problema. In fase di importazione, infatti, possiamo decidere quale porzione della pagina ci occorre. La cosa a cui badare è che i dati da importare abbiano una struttura “tabulare” che possa adattarsi a Excel. La tabella della pagina visibile in figura 1, in questo senso, è perfetta per noi.
Copiate l’indirizzo della pagina da importare, poi tornate al file Excel nel nuovo foglio di lavoro. A questo punto, avviamo la procedura di importazione dei dati.
Portatevi nella scheda Dati e, nel gruppo Carica dati esterni, premete il pulsante Da Web, Excel vi mostrerà la finestra Nuova query web, visibile in figura 2.
Nella casella Indirizzo, incollate (o digitate) l’indirizzo della pagina che contiene i cambi. Poi premete Vai.
Le porzioni di pagina che si possono importare sono segnalate da una freccia gialla. Se passate col mouse sopra una di queste frecce vedrete qual è l’area che potete importare selezionando quella freccia. Noi abbiamo scelto di importare tutta la tabella facendo clic sulla freccia più in alto. Quando una freccia è selezionata si trasforma in un segno di spunta su fondo verde.
Dopo che avete selezionato la porzione da importare, premete il pulsante Importa.
Excel vi chiederà di specificare da quale cella volete cominciare a incollare i dati importati. Se non avete particolari esigenze, inserite i dati importati a partire da A1.
Attendete il tempo necessario per importare i dati. Il vostro foglio Excel ora dovrebbe presentarsi come nella figura 3 (anche se i dati saranno diversi, visto che variano ogni giorno).
I dati importati si aggiornano automaticamente ogni volta che riaprite il file (purché siate connessi a Internet).
In ogni caso, è possibile in qualsiasi momento forzare l’aggiornamento, dopo aver fatto clic all’interno della tabella: basta premere il pulsante Aggiorna tutti, nel gruppo Connessioni della scheda Dati.
Perché l’aggiornamento funzioni correttamente, comunque, è bene non spostare i dati in altre celle, né tagliarne una parte o lavorarci troppo (anche perché le modifiche verrebbero eliminate dall’aggiornamento).
Piuttosto, se avete bisogno di effettuare lavori particolari sui dati, riportateli in un altro foglio.
Ipotizziamo, per esempio, di voler ordinare i dati importati in base al loro valore rispetto all’euro, cioè in base alla colonna C, e di voler eliminare le colonne E e F, che contengono informazioni che non ci servono.
Non dobbiamo assolutamente fare delle modifiche nel foglio con i dati importati che deve rimanere, il più possibile, intatto.
Aggiungete dunque un foglio e scrivete nella cella A1 di questo nuovo foglio:
=‘Dati importati’! A1
dove ‘Dati importati’ è il nome del foglio che contiene i dati importati.
Trascinate il contenuto di questa cella fino a riportare tutti i dati. Nel nostro caso dobbiamo trascinare fino alla cella J10.
A questo punto potete lavorare con questi dati copiati come volete.
Per esempio, possiamo eliminare le colonne E e F, quindi applicare un ordinamento crescente alla colonna C. come mostrato nella figura 4. Possiamo anche formattare come desideriamo il prospetto.
Usare i dati importati
Per concludere questo articolo proviamo a usare i dati importati per convertire in sterline il nostro listino.
Per comodità, assegniamo il nome Sterlina alla cella che contiene il valore della sterlina nel foglio con i dati Importati. Per noi è la cella C21 del foglio Dati importati visto in figura 3.
Ora ci spostiamo sul primo foglio col listino e nella cella C2 scriviamo la formula:
=B2*sterlina
(ricordiamo che i prezzi in euro sono memorizzati nella colonna B).
Ora trasciniamo la formula per tutta la colonna e applichiamo alla colonna C un formato Contabilità o Valutache usi il simbolo della sterlina inglese, come mostrato in figura 5.
La questione dei decimali
Quando si importano dati dal web si deve mettere in conto il problema dell’uso dei separatori dei decimali e delle migliaia.
Il web, per sua stessa natura, è “internazionale”, quindi non è escluso che i dati che ci servono utilizzino separatori diversi da quelli del nostro sistema.
Purtroppo, a differenza di quello che abbiamo visto per l’importazione da testo, la query web non dispone di un metodo per specificare i separatori usati nel sito da cui stiamo importando.
Vediamo allora come possiamo procedere. Proviamo a lavorare con i dati del sito xe.com, visibile nella figura 6.
Per impostazione predefinita, Excel importa i dati dal web senza formattazione, ma tenta ugualmente di riconoscerli.
È possibile disabilitare questo riconoscimento per le date, ma non per i numeri.
Per disabilitare il riconoscimento, nella finestra Nuova query web, che abbiamo visto in figura 2, premete il pulsante Opzioni, in alto a destra.
Nota
Quando tentate di importare i dati dal sito xe.com, potreste visualizzare una finestra che vi informa che si è verificato un errore in uno script della pagina e vi chiede se desiderate proseguire l’esecuzione dello script. Premete il pulsante No per continuare senza problemi.
Vedrete la finestra Opzioni query web, mostrata in figura 7.
Notate che l’opzione Disattiva riconoscimento della data vi permette di disattivare il riconoscimento delle date. I dati numerici di tipo “data” verranno importati come testo semplice. Potreste poi usare le funzioni di testo per elaborare questi dati nella forma che preferite.
Come notate, è attiva anche l’opzione Nessuna, nella sezione Formattazione. Nonostante questo, però, al momento dell’importazione, Excel cerca di interpretare i dati numerici come numeri.
Il risultato è sconfortante. I numeri che cominciano con lo zero sono trattati come testi (altrimenti lo zero a sinistra verrebbe cancellato), mentre gli altri vengono trattati come numeri non decimali e viene aggiunto loro un separatore delle migliaia. Per rendersene conto, basta osservare l’allineamento dei valori: ciò che viene interpretato come testo è allineato a sinistra, mentre ciò che è interpretato come numero viene allineato a destra, come visibile in figura 8.
Per evitare questa strana interpretazione dei numeri, si potrebbe applicare il formato testo (tasto destro ➔ Formato celle ➔ Testo) alle celle che ospiteranno i dati importati prima di importarli. Anche in questo caso, però, non otteniamo una soluzione totalmente soddisfacente, perché i numeri che non cominciano con zero perdono ogni separatore e quindi, di fatto, perdono il loro valore reale, come visibile in figura 9.
In questo caso specifico sappiamo che tutti i numeri hanno la parte intera composta da una sola cifra. Dunque, lavorando con le funzioni di testo di Excel, potremmo rimediare, anche se la cosa non è semplice.
Nota
La funzione da usare per la conversione delle celle numeriche è complessa. Immaginando che il primo dei valori numerici sia nella cella C/, la formula da usare sarebbe:=SE(VAL. ERRORE(RICERCA(“. ”; C7)) ;CONCATENA(SINISTRA(C7; 1) ;“, ”; DESTRA(C7; LUNGHEZZA(C7) -1)) ;SOSTITUISCI(C7; “. ”; “, ”))
Con la funzione RICERCA, vediamo se la cella contiene il carattere punto (.). Se la cella non contiene questo carattere, la funzione restituisce un errore. Con una funzione SE, andiamo dunque a verificare se questa funzione restituisce un errore ricorrendo alla funzione VAL. ERRORE. Se restituisce un errore creiamo un nuovo testo concatenando il primo numero del testo, una virgola e la parte finale del testo, altrimenti usiamo la funzione SOSTITUISCI per sostituire il punto presente nel numero con la virgola. Al momento questi numeri sono ancora testi. Vanno moltiplicati per 1 per trasformarli in numeri.
Trovate un esempio svolto nel file QueryWebConversioni.
Piuttosto si potrebbero invertire i separatori appena prima di importare i dati, in modo che Excel riconosca correttamente i numeri che importa.
Una volta importati i numeri, si possono riattivare i separatori di sistema: a questo punto Excel mostra i numeri corretti con la virgola come separatore dei decimali.
Se aggiornate i dati, però, questi vengono reimportati in modo scorretto.
Per “salvare” i dati importati, prima di effettuare qualsiasi aggiornamento copiateli e incollateli in un nuovo foglio come valori.
Purtroppo questi dati non si aggiorneranno più in tempo reale, ma una soluzione definitiva che garantisca sia l’interpretazione corretta dei dati sia il loro aggiornamento non esiste (non è prevista da Excel).
Bisogna, di volta in volta, cercare il compromesso più adatto alle proprie esigenze.
Autore: Alessandra Salvaggio – Tratto da: Problemi e soluzioni con Excel 2010 – Edizioni FAG Milano