Condividi tramite


Gestione degli errori in Power Query

In Power Query è possibile riscontrare due tipi di errori:

  • Errori a livello di fase
  • 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 fase

Un errore di passaggio impedisce il caricamento della query e visualizza i componenti di errore in un pannello giallo.

Screenshot di un errore a livello di fase in cui non è stata trovata una colonna.

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

Power Query Online visualizza dettagli leggermente diversi. Il dettaglio dell'errore è ancora Column, ma il messaggio di errore online contiene anche il motivo dell'errore (Expression.Error) e il codice di errore (10224).

Screenshot di un errore online a livello di passaggio in cui una colonna non è stata trovata.

Errori comuni a livello di fase

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 Mostra dettagli , se disponibile, per visualizzare altri dettagli sull'errore.

Screenshot di un messaggio di errore con il pulsante evidenziato

Impossibile trovare la sorgente - DataSource.NotFound

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 una posizione diversa.

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.NotFound perché non esiste un'unità D nel proprio ambiente.

Screenshot di un errore dell'origine dati che non è riuscito a 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.

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.

Screenshot di un errore di espressione in cui 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. Questa modifica consente l'esecuzione della query senza questo errore.

Altri errori comuni a livello di fase

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.

Screenshot di un errore di Firewall della formula che indica che la query fa riferimento ad altre query o passaggi, quindi potrebbe non accedere direttamente a un'origine dati.

Questo errore si verifica per 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.

Screenshot che mostra la visualizzazione del messaggio di errore selezionando spazi vuoti in una cella di tabella contenente un errore.

Annotazioni

Gli strumenti di profilatura dei dati consentono di identificare più facilmente gli errori a livello di cella con la funzionalità qualità della colonna. Per altre informazioni, vedere 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 come punto di partenza. 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.

Screenshot che mostra l'errore di formato dei dati, con l'errore

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.

Screenshot del pulsante Rimuovi errori nella scheda Home.

Il risultato di tale operazione fornisce la tabella seguente.

Screenshot della tabella che in precedenza conteneva cinque righe. Ora, la riga che conteneva l'errore è stata rimossa, 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.

Uno screenshot del 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.

Screenshot della finestra di dialogo Sostituisci errori con il valore impostato su 10.

Il risultato di tale operazione fornisce la tabella seguente.

Screenshot della tabella in cui la terza riga conteneva un errore nella colonna Vendite, ora 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. Questa situazione è il caso in cui mantenere gli errori può essere utile. 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.

Screenshot del pulsante Mantieni errori nella scheda Home.

Il risultato di tale operazione fornisce la tabella seguente.

Screenshot della tabella finale che mantiene solo le righe che contengono errori.

Errori comuni a livello di cella

Come per qualsiasi errore a livello di fase, è consigliabile esaminare attentamente i motivi di errore, i messaggi di errore e i dettagli di errore 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.

Screenshot che mostra i dettagli dell'errore Impossibile convertire al 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.

Screenshot dell'errore di espressione nel riquadro degli errori causato dal tentativo di applicare un operatore And al testo e a un numero della colonna Vendite.

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

Screenshot della tabella con la colonna vendite convertita da un numero a un tipo di testo e una 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:

Screenshot di un errore per valori annidati generati 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 Protezione dei Dati memorizza nel buffer un'origine dati, i valori non scalari annidati vengono convertiti automaticamente in errori.
  • Quando una colonna definita con il tipo di dati contiene valori non scalari, tali valori vengono 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.