Gestione degli errori in Power Query
In Power Query è possibile riscontrare due tipi di errori:
- Errori a livello di passaggio
- Errori a livello di cella
Questo articolo fornisce suggerimenti su come correggere gli errori più comuni che è possibile trovare a ogni livello e descrive il motivo dell'errore, il messaggio di errore e i dettagli degli errori per ognuno di essi.
Errore a livello di passaggio
Un errore a livello di passaggio impedisce il caricamento della query e visualizza i componenti di errore in un riquadro giallo.
- Motivo dell'errore: la prima sezione prima dei due punti. Nell'esempio precedente il motivo dell'errore è Expression.Error.
- Messaggio di errore: la sezione immediatamente dopo il motivo. Nell'esempio precedente il messaggio di errore è La colonna 'Column' della tabella non è stata trovata.
- Dettagli errore: la sezione immediatamente dopo la stringa Details: . Nell'esempio precedente, il dettaglio dell'errore è Column.
Errori comuni a livello di passaggio
In tutti i casi, è consigliabile esaminare attentamente il motivo dell'errore, il messaggio di errore e i dettagli dell'errore per comprendere cosa sta causando l'errore. È possibile selezionare il pulsante Vai all'errore , se disponibile, per visualizzare il primo passaggio in cui si è verificato l'errore.
Impossibile trovare l'origine - DataSource.Error
Questo errore si verifica in genere quando l'origine dati non è accessibile dall'utente, l'utente non dispone delle credenziali corrette per accedere all'origine dati o l'origine è stata spostata in un'altra posizione.
Esempio: si dispone di una query da un riquadro di testo che si trova nell'unità D e creato dall'utente A. L'utente A condivide la query con l'utente B, che non ha accesso all'unità D. Quando questa persona tenta di eseguire la query, ottiene un oggetto DataSource.Error perché non esiste un'unità D nel proprio ambiente.
Possibili soluzioni: è possibile modificare il percorso del file di testo in un percorso a cui entrambi gli utenti hanno accesso. Come utente B, è possibile modificare il percorso del file in modo che sia una copia locale dello stesso file di testo. Se il pulsante Modifica impostazioni è disponibile nel riquadro degli errori, è possibile selezionarlo e modificare il percorso del file.
La colonna della tabella non è stata trovata
Questo errore viene in genere attivato quando un passaggio fa riferimento diretto a un nome di colonna che non esiste nella query.
Esempio: si dispone di una query da un file di testo in cui uno dei nomi di colonna era Column. Nella query è presente un passaggio che rinomina tale colonna in Date. Tuttavia, è stata apportata una modifica al file di testo originale e non ha più un'intestazione di colonna con il nome Column perché è stata modificata manualmente in Date. Power Query non è in grado di trovare un'intestazione di colonna denominata Column, quindi non può rinominare alcuna colonna. Viene visualizzato l'errore illustrato nell'immagine seguente.
Possibili soluzioni: esistono più soluzioni per questo caso, ma dipendono tutti da ciò che si vuole fare. Per questo esempio, poiché l'intestazione di colonna Data corretta proviene già dal file di testo, è sufficiente rimuovere il passaggio che rinomina la colonna. In questo modo la query verrà eseguita senza questo errore.
Altri errori comuni a livello di passaggio
Quando si combinano o si uniscono dati tra più origini dati, è possibile che venga visualizzato un errore Formula.Firewall , ad esempio quello illustrato nell'immagine seguente.
Questo errore può essere causato da diversi motivi, ad esempio i livelli di privacy dei dati tra origini dati o il modo in cui queste origini dati vengono combinate o unite. Per altre informazioni su come diagnosticare questo problema, vedere Firewall per la privacy dei dati.
Errore a livello di cella
Un errore a livello di cella non impedisce il caricamento della query, ma visualizza i valori di errore come Errore nella cella. Se si seleziona lo spazio vuoto nella cella, viene visualizzato il riquadro degli errori sotto l'anteprima dei dati.
Nota
Gli strumenti di profilatura dei dati consentono di identificare più facilmente gli errori a livello di cella con la funzionalità qualità della colonna. Altre informazioni: Strumenti di profilatura dei dati
Gestione degli errori a livello di cella
Quando si verificano errori a livello di cella, Power Query fornisce un set di funzioni per gestirli rimuovendo, sostituendo o mantenendo gli errori.
Per le sezioni successive, gli esempi forniti usano la stessa query di esempio del punto iniziale. In questa query è presente una colonna Sales con una cella con un errore causato da un errore di conversione. Il valore all'interno della cella era NA, ma quando la colonna è stata trasformata in un numero intero di Power Query non è riuscita a convertire NA in un numero, quindi viene visualizzato l'errore seguente.
Rimuovere gli errori
Per rimuovere righe con errori in Power Query, selezionare prima di tutto la colonna che contiene errori. Nel gruppo Riduci righe della scheda Home selezionare Rimuovi righe. Dal menu a discesa selezionare Rimuovi errori.
Il risultato di questa operazione fornirà la tabella che si sta cercando.
Sostituire gli errori
Se invece di rimuovere righe con errori, è possibile sostituire gli errori con un valore fisso. Per sostituire le righe con errori, selezionare prima di tutto la colonna contenente errori. Nel gruppo Qualsiasi colonna della scheda Trasforma selezionare Sostituisci valori. Dal menu a discesa selezionare Sostituisci errori.
Nella finestra di dialogo Sostituisci errori immettere il valore 10 perché si desidera sostituire tutti gli errori con il valore 10.
Il risultato di questa operazione fornirà la tabella che si sta cercando.
Mantenere gli errori
Power Query può fungere da strumento di controllo ottimale per identificare eventuali righe con errori anche se non vengono corretti gli errori. In questo caso , è possibile mantenere gli errori . Per mantenere le righe con errori, selezionare prima di tutto la colonna contenente errori. Nel gruppo Riduci righe della scheda Home selezionare Mantieni righe. Dal menu a discesa selezionare Mantieni errori.
Il risultato di questa operazione fornirà la tabella che si sta cercando.
Errori comuni a livello di cella
Come per qualsiasi errore a livello di passaggio, è consigliabile esaminare attentamente i motivi di errore, i messaggi di errore e i dettagli degli errori forniti a livello di cella per comprendere cosa sta causando gli errori. Le sezioni seguenti illustrano alcuni degli errori a livello di cella più frequenti in Power Query.
Errori di conversione dei tipi di dati
In genere viene attivato quando si modifica il tipo di dati di una colonna in una tabella. Alcuni valori trovati nella colonna non possono essere convertiti nel tipo di dati desiderato.
Esempio: si dispone di una query che include una colonna denominata Sales. Una cella in tale colonna ha NA come valore di cella, mentre il resto ha numeri interi come valori. Si decide di convertire il tipo di dati della colonna da testo a numero intero, ma la cella con il valore NA causa un errore.
Possibili soluzioni: dopo aver identificato la riga con l'errore, è possibile modificare l'origine dati in modo da riflettere il valore corretto anziché NA oppure applicare un'operazione di errore Replace per fornire un valore per i valori NA che causano un errore.
Errori dell'operazione
Quando si tenta di applicare un'operazione non supportata, ad esempio moltiplicando un valore di testo per un valore numerico, si verifica un errore.
Esempio: si vuole creare una colonna personalizzata per la query creando una stringa di testo contenente la frase "Total Sales: " concatenata con il valore della colonna Sales . Si verifica un errore perché l'operazione di concatenazione supporta solo colonne di testo e non numeriche.
Possibili soluzioni: prima di creare questa colonna personalizzata, modificare il tipo di dati della colonna Sales come testo.
Valori annidati visualizzati come errori
Quando si utilizzano dati che contengono valori strutturati annidati,ad esempio tabelle, elenchi o record, talvolta si verifica l'errore seguente:
Expression.Error: We cannot return a value of type {value} in this context
Details: In the past we would have returned a text value of {value}, but we now return this error. Please see https://go.microsoft.com/fwlink/?linkid=2099726 for more information.
Questi errori si verificano in genere per due motivi:
- Quando il firewall per la privacy dei dati memorizza nel buffer un'origine dati, i valori annidati non scalari vengono convertiti automaticamente in errori.
- Quando una colonna definita con il tipo di dati contiene valori non scalari, tali valori verranno segnalati come errori durante il
Any
caricamento, ad esempio in una cartella di lavoro in Excel o nel modello di dati in Power BI Desktop.
Soluzioni possibili:
- Rimuovere la colonna contenente l'errore o impostare un tipo di dati non
Any
per tale colonna. - Modificare i livelli di privacy delle origini dati coinvolte in uno che consente di combinarli senza essere memorizzati nel buffer.
- Rendere flat le tabelle prima di eseguire un merge per eliminare le colonne contenenti valori strutturati annidati, ad esempio tabella, record o elenco.