Questo post spiega come risolvere 'Dataformat.error: non potevamo convertire in numero'. Lavorare con i dati inQuery di potenza, sia inEccellereOPotenza BI, può semplificare l'analisi e il reporting. Tuttavia, gli errori di conversione del tipo di dati sono una frustrazione comune che molti utenti affrontano, soprattutto mentre si occupano di formati incoerenti.
Che si tratti di delimitatori non corrispondenti, tipi di dati misti o impostazioni regionali, i problemi possono causare erroneamente la query di potenza, portando a un errore di conversione che recita:
Dataformat.error: non siamo riusciti a convertire in numero. Dettagli: [ERROR_DETAILS]
In questo post, esploreremo le cause alla radice dietro l'errore e forniremo soluzioni pratiche per risolvere il problema.
Correggi DataFormat.Error: non siamo riusciti a convertire in numero
Per correggereDataformat.error, non siamo riusciti a convertire in numero, quando si lavora con i dati inQuery di potenza, sia inEccellereOPotenza BIUsa queste soluzioni:
- Elimina il passaggio automatico di "tipo di modifica"
- Filtrare i valori non numerici
- Pulire e standardizzare i dati prima della conversione del tipo
- Imposta manualmente delimitatori e locali
- Corretto decimale e mille separatori
Vediamo questo in dettaglio.
1] Elimina il passaggio automatico di "tipo di modifica"
La query di alimentazione spesso aggiunge automaticamente un passaggio di "tipo di modifica" dopo il caricamento dei dati per provare a assegnare tipi di dati alle colonne in base alle prime 1.000 righe. Se i tuoi dati includono tipi incoerenti, come numeri miscelati con il testo nella stessa colonna, questo passaggio automatico può causare "DataFormat.error: non potremmo convertire in numero".
Per risolvere questo problema, vai alDatiTab (in Excel) e selezionaOttieni dati> Avvio dell'editor di query di alimentazione(In Power BI, cliccaTrasforma i dati).
Sul lato destro della finestra dell'editor di query di potenza, vedrai ilPassaggi applicatiriquadro. Se c'è un passo chiamato 'Tipo modificato', Power Query ha assegnato automaticamente i tipi di dati. Fare clic sulXaccanto al passo per eliminarlo. Ciò impedirà alla query di potenza di tentare conversioni automatiche.
Dopo aver eliminato il passaggio "Tipo modificato", impostare manualmente il tipo di dati di ciascuna colonna per assicurarsi che sia corretto.
2] filtrare i valori non numerici
Le colonne contenenti valori di testo e numerici (ad es. "ABC 123") possono causare la query di potenza a tentare di convertire tutto in un numero, portando all'errore sopra. Puoi fare un paio di cose per sistemare questo:
- Modificare il tipo di dati della colonna in "testo", utilizzare ilSostituire i valoriOpzione per correggere la voce problematica, quindi ripristinare il tipo di dati in "numero decimale".
- Usare ilColonna divisacaratteristica a. Quindi applicare il tipo di dati "numero" sulla colonna numerica e il tipo "testo" sull'altro.
- È inoltre possibile filtrare le righe con valori non numerici (che non dovrebbero essere lì) prima di convertire la colonna nel tipo di dati numerici.
Dopo aver filtrato i valori non numerici, è possibile modificare in sicurezza il tipo di dati della colonna originale.
3] pulire e standardizzare i dati prima della conversione del tipo
I dati copiati da siti Web o altre fonti possono includere spazi non di rottura o simboli come '&' o ',' che confondono la query di potenza mentre si tenta di convertire o unire le colonne.
Applicare ilPULITOOORDINAREfunzione daTrasformareMenu Per rimuovere questi caratteri (la funzione di rivestimento rimuove gli spazi extra dal testo, lasciando solo singoli spazi tra le parole, la funzione pulita rimuove tutti i caratteri non stampabili ed è particolarmente utile per la pulizia dei dati importati da fonti esterne in cui possono esistere caratteri nascosti).
Dopo aver applicato queste funzioni, prova a impostare nuovamente il tipo di dati della colonna.
4] Impostare manualmente delimitatori e locali
Se i tuoi dati coinvolgono impostazioni regionali, assicurarsi che la query di alimentazione utilizzi il delimitatore e la localizzazione corretti. Ad esempio, se stai lavorando con i dati europei in cui le virgole vengono utilizzate come separatori decimali, impostare manualmente il locale di dati andando aFile> Opzioni> Opzioni di query> Impostazioni regionalie regolare ilLocaleper abbinare l'origine dati.
Se è una singola colonna, usa ilModifica Tipo> Utilizzo della localeOpzione per garantire una corretta conversione del tipo di dati con le impostazioni regionali corrette applicate.
Allo stesso modo, per i file CSV, verificare se i dati utilizzano virgole o punti e virgole come delimitatori e regolano manualmente questo durante l'importazione.
5] DECIMAL CORRETURA E TIMPI SEPATORI
Infine, se la query di potenza non riesce a convertire i numeri a causa di punti decimali non corrispondenti e migliaia di separatori, utilizzare l'opzione Valori di sostituzione per scambiare il separatore errato (ad esempio, modifica ". A", per i dati europei) per corrispondere al formato previsto.
È tutto!
Leggere: .
Come risolvere l'errore DataFormat Non siamo riusciti a convertire in numero?
Assicurati che le colonne con cui lavori siano formattate correttamente come "testo" o come "numero". Quando incontri "DataFormat.Error: non siamo riusciti a convertire in numero", guarda la sezione "Dettagli" del messaggio di errore. Ciò evidenzia spesso il valore o il carattere particolare che la query di potenza non può interpretare come un numero. Se una colonna contiene sia testo che numeri, dividerla in colonne separate e quindi applicare il tipo di dati corretto sulla colonna numerica.
Perché Excel non mi permette di convertire in numero?
Excel potrebbe non permetterti di convertire i numeri memorizzati come testo in numeri se le celle sono formattate come "testo" o se contengono caratteri invisibili come spazi non di rottura o simboli speciali. Se una delle celle interessate viene unita, Excel potrebbe limitare alcune operazioni come la conversione dei numeri. Infrontare le cellule prima di tentare di convertire.
Leggi dopo: .