Download dati da sito web per accodare tabelle con Power Query

Anonimo
2023-12-14T17:27:32+00:00

Buonasera, in allegato il file dove spiego cosa vorrei fare. Se ci fosse una soluzione alternativa a quella che ho descritto la prendo, ovviamente, in considerazione. Poiché i dati che vorrei gestire sono diversi ho l'esigenza di automatizzare il più possibile e con il comando "aggiorna" delle query riesco a farlo. In breve:

  1. dal sito, il cui link è nel file excel, riesco a scaricare con la query solo la 1° tabella con 6 righe;
  2. nel sito ci sono altre righe, con la stessa formattazione della tabella n° 1, che non mi fa scaricare
  3. queste righe, che ho fissato in 18, le copio ed incollo manualmente in excel e le converto in tabella n° 2
  4. con la query accodo le due tabelle in ordine: tabell1 come prima tabella e tabella 2 come seconda, seguendo le date della prima colonna di entrambe le tabelle.

Il problema nasce quando devo fare l'aggiornamento, in quanto nella prima tabella il sito inserisce il nuovo dato nella prima riga della mia 1° tabella ed elimina la 6° riga sempre dalla mia 1° tabella. Onde evitare di fare sempre un copia ed incolla, come nel punto 3), vorrei trovare una soluzione come descritto nel file excel.

Grazie mille per l'aiuto

ScaricoDatieAccodaTabelle.xlsx

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
Risposta accettata dall'autore della domanda
Anonimo
2023-12-20T11:29:47+00:00

Oh, evviva!

Mi sembrava impossibile che non riuscissi ad ottenere i medesi risultati.

Speriamo continui così.

Buon lavoro per la costruzione di tutto il resto :-)

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2023-12-20T10:16:05+00:00

Adesso sembra andare.

Ho provato dal file che hai condiviso e scaricato su PC con Excel 2013.

Ho formattato le due tabelle (in una ho messo il formato % e nell'altra il formato numero per le colonne dei valori).

Ho cancellato i dati e sono partito da questa situazione (ho anche aggiunto un grafico tanto per provare):

ho aggiornato i dati e ho ottenuto:

Ti metto il link al file utilizzato con Excel 2013: https://www.dropbox.com/scl/fi/n4difq99zp2mn9oq09ub3/Download-dati-da-sito-web-per-accodare-tabelle-con-Power-Query-5-scaricato.xlsm?rlkey=6t6fxw01ll7zr6xnv1o8z9xke&dl=0

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

65 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2023-12-19T08:30:49+00:00

    a) ho provato ad inserire, nella colonna Descrizione, Zona Euro - IPC (Indice dei Prezzi al Consumo) (Mensile)

    b) nella colonna Url il seguente link Inflazione Euro Zona oggi | IPC Indice prezzi (mensile) (investing.com)

    c) nella colonna Nome Foglio ho inserito Foglio1 (poi ho provato anche con un nuovo Foglio3)

    d) nella colonna Nome Tabelle ho inserito Tabella7

    Quando clicco su aggiorna dati mi compare il seguente popup: Microsoft Visual Basic - Errore di run time "1004": Errore definito dall'applicazione o dall'oggetto

    Se cancello la riga che ho inserito e clicco su Aggiorna dati è tutto a posto.

    Hai inserito una nuova tabella nominata Tabella7?

    Come spiegato il foglio e la tabella indicati nell'elenco devono essere già presenti.

    Quindi se tu dovessi indicare come nome di un foglio "Costruzioni" dovresti avere già presente un foglio con tale nome

    Se tu poi indicassi Tabella7 in quel foglio dovresti avere già presente una tabella nominata Tabella7.

    Io ho appena provate ad aggiungere un foglio nominato Foglio3, inserire una tabella, le cui intestazioni di colonna partono da A3, una tabella nominata Tabella7.

    Ho aggiunto una riga alla tabella del foglio URL inserendo in

    Descrizione: Stati Uniti - Indice dei principali prezzi di spesa per consumi (Annuale)

    Url: https://it.investing.com/economic-calendar/core-pce-price-index-905

    Nome Foglio: Foglio3

    Nome Tabella: Tabella7

    e l'aggiornamento è avvenuto correttamente.

    Ho anche provato con un altra url ma c'è un problema la cui risoluzione comporta una modifica alla query.

    Vedi questa url: https://www.investing.com/economic-calendar/cpi-733

    Noterai che le intestazioni non sono in italiano ma in inglese (a differenza delle altre).

    Release Date Time Actual Forecast Previous

    Inoltre è differente anche il formato data

    Dec 12, 2023 (Nov)

    La gestione di questi dati, in particolare la data, richiedere una modifica sostanziale della query di partenza o, più probabilmente, una query differente.

    Magari c'è anche la possibilità di gestire in un'unica query il tutto, "leggendo" il contenuto e con degli If ... Then ... else decidere che tipo di sostituzione applicare, ma io ancora non sono arrivato a questi livelli :-)

    Quindi verifica per le varie Url se i dati riportati sono in italiano pena avere un messaggio di errore da parte della gestione della query.

    Ti chiedo:

    a) una volta inseriti i dati, la tabella a 6 righe la dovrebbe inserire in automatico nel foglio indicato?

    b) se volessi inserire le altre 18 righe, le posso inserire sotto le tabelle a 6 righe e poi, ad ogni aggiornamento, scarta le righe come indicato in precedenza?

    Per tutte le tabelle di tuo interessi potresti popolarle, manualmente, con una serie di record a partire dalla prima data "mancante" dopo le prime 6 date scaricabili via query.

    Una volta fatto ciò lanciare la procedura di aggiornamento. Alle righe già presenti verranno aggiunte le 6 righe prelevate dalla tabella della query.

    Come ho detto ho impostato un parametro in modo che nel caso in cui la tabella, dopo l'eliminazione dei duplicati per data, superi le 24 righe quelle in eccesso, a partire dalla data meno recente, vengano eliminate.

    In tal modo si avranno sempre 24 righe.

    Ma se tu volessi 30 righe basterebbe andare a modificare quel parametro nel progetto VBA.

    Si tratta della voce:

    Const NumMaxRecord As Long = 24

    se tu al posto di 24 scrivessi 30 verrebbero mantenute almeno 30 righe in ogni tabella.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-12-19T07:17:26+00:00

    La versione 4 è una grande soluzione! E' proprio molto vicino, se non del tutto vicino, a cosa avrei voluto realizzare. Se non ho capito male per aggiungere una rilevazione di un dato, nel foglio URL :

    • nella colonna Descrizione della tabella devo aggiungere la descrizione del dato, ad esempio Zona Euro - IPC (Indice dei Prezzi al Consumo) (Mensile)
    • nella colonna Url devo indicare il link da cui scaricare la tabella a 6 righe
    • nella colonna Nome Foglio devo inserire il nome del Foglio dove inserire la tabella, esempio Foglio1
    • nella colonna Nome Tabelle devo inserire il nome tabella.

    Ho provato a cancellare i dati di alcune tabelle che avevi inserito. ad aggiornare e tutto fila liscio.

    Dopo tale prova, nel foglio URL

    a) ho provato ad inserire, nella colonna Descrizione, Zona Euro - IPC (Indice dei Prezzi al Consumo) (Mensile)

    b) nella colonna Url il seguente link Inflazione Euro Zona oggi | IPC Indice prezzi (mensile) (investing.com)

    c) nella colonna Nome Foglio ho inserito Foglio1 (poi ho provato anche con un nuovo Foglio3)

    d) nella colonna Nome Tabelle ho inserito Tabella7

    Quando clicco su aggiorna dati mi compare il seguente popup: Microsoft Visual Basic - Errore di run time "1004": Errore definito dall'applicazione o dall'oggetto

    Se cancello la riga che ho inserito e clicco su Aggiorna dati è tutto a posto.

    Ti chiedo:

    a) una volta inseriti i dati, la tabella a 6 righe la dovrebbe inserire in automatico nel foglio indicato?

    b) se volessi inserire le altre 18 righe, le posso inserire sotto le tabelle a 6 righe e poi, ad ogni aggiornamento, scarta le righe come indicato in precedenza?

    Grazie mille casanmaner

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2023-12-19T07:10:50+00:00

    Ok, eventualmente vedi questa variante dove ho fatto in modo che in presenza di caratteri dalla "a" alla "z" e dalla "A" alla "Z", nelle colonne Attuale, Previsto, Precedente, venga effettuata la sostituzione per tutti quei set di caratteri.

    https://www.dropbox.com/scl/fi/88092hvb6ay5gxsiyyfo8/Download-dati-da-sito-web-per-accodare-tabelle-con-Power-Query-4b.xlsm?rlkey=4hmo278h10oga2ur5mryg908x&dl=0

    In questo modo, se nelle varie tabelle, dovesse esserci qualche altra lettera utilizzata il tutto dovrebbe essere trasformato in numero.

    Se però vi fossero caratteri particolari (es. £, $ o altri ancora) occorrerebbe integrare una "funzione" personalizzata in Power Query per gestire anche questi caratteri.

    La risposta è stata utile?

    0 commenti Nessun commento