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.

Errore a livello di passaggio.

  • 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.

Passare al pulsante di 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.

Errore dell'origine dati. Impossibile trovare il file perché nell'ambiente corrente non è presente alcuna unità D.

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.

Errore di espressione, la colonna della tabella non è stata trovata perché il nome della colonna è stato modificato manualmente.

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.

Errore del firewall della formula, la query fa riferimento ad altre query o passaggi, pertanto potrebbe non accedere direttamente a un'origine dati.

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.

Visualizzazione del messaggio di errore selezionando spazi vuoti in una cella di tabella contenente un errore.

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.

Visualizza l'errore di formato dati, non è stato possibile convertire l'errore nel tipo di dati nel riquadro degli errori.

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.

Pulsante Rimuovi errori nella scheda Home.

Il risultato di questa operazione fornirà la tabella che si sta cercando.

La tabella che in precedenza conteneva cinque righe contiene ora la riga che conteneva l'errore rimosso, lasciando quattro righe nella tabella.

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.

Pulsante Sostituisci errori nella scheda Trasforma.

Nella finestra di dialogo Sostituisci errori immettere il valore 10 perché si desidera sostituire tutti gli errori con il valore 10.

Finestra di dialogo Sostituisci errori.

Il risultato di questa operazione fornirà la tabella che si sta cercando.

La tabella in cui la terza riga contiene un errore nella colonna Sales ha ora l'errore sostituito con il valore 10.

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.

Pulsante Mantieni errori nella scheda Home.

Il risultato di questa operazione fornirà la tabella che si sta cercando.

Tabella finale che mantiene solo le righe che contengono errori.

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.

Impossibile convertire in dettagli dell'errore del tipo di dati.

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.

Errore di espressione nel riquadro degli errori causato dal tentativo di applicare un operatore And al testo e a un numero dalla colonna Sales.

Possibili soluzioni: prima di creare questa colonna personalizzata, modificare il tipo di dati della colonna Sales come testo.

Tabella con la colonna sales convertita da un tipo di dati Number a un tipo di dati Text e la nuova colonna contenente entrambe le espressioni.

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:

Errore per i valori annidati attivati dal firewall della formula.

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 nonAny 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.