Caricare Excel, CSV e SQL passo-passo
Le tre sorgenti che incontrerai in 90% dei progetti reali. In questa lezione facciamo le tre connessioni con tutte le insidie: fogli vs tabelle vs named range, encoding CSV, separatori, query SQL custom, autenticazione, query folding.
- ⏱ Tempo stimato: ~30 min + esercizi pratici
- 🎯 Prerequisiti: L2.1, L2.2
- 🛠 Software: Power BI Desktop; opzionale: SQL Server Express o Azure SQL DB di test
Caricare un file Excel — fogli, tabelle, named range
Get Data → Excel → seleziona il file. Si apre il Navigator. Qui c'è la prima insidia: vedi tre tipi di oggetti con icone diverse:
- 📄 Sheet — un foglio intero del workbook. Power BI legge dal primo riempito; serve quasi sempre pulizia (PromoteHeaders, rimuovere righe vuote).
- 🔢 Table — una tabella Excel (Format as Table in Excel, Ctrl+T). Ha già header automatici e perimetro definito. Sempre preferibileai fogli.
- 🏷 Named Range — un intervallo nominato (Formulas → Define Name). Utile per zone fisse di un foglio (es. una tabella di parametri in alto a destra).

Caricare un CSV — separatore, encoding, intestazioni
Get Data → Text/CSV → seleziona il file. Power BI auto-rileva:
- il delimiter (virgola, punto-virgola, tab, custom);
- l'encoding (UTF-8, Windows-1252, UTF-16, ecc.);
- il numero di righe per il rilevamento dei tipi (200 default, modificabile).
Se l'auto-rilevamento sbaglia, puoi correggere manualmente prima di confermare. Errori tipici:
- CSV italiani con separatore
;letto come,→ tutto in una colonna. - Caratteri accentati storti (è → è) → encoding sbagliato; passa a Windows-1252 o UTF-8 a seconda della sorgente.
- Date in formato dd/mm/yyyy interpretate come mm/dd/yyyy → vai in Power Query, click tipo colonna → "Using Locale" → Italian (Italy).
Caricare una cartella di file (Folder)
Get Data → Folder → indica una cartella. Power BI mostra l'elenco file con metadata (Name, Extension, Date Modified). Il pulsante chiave è "Combine Files":
- Power BI prende il primo file come "sample".
- Apre Power Query e ti chiede di confermare lo schema (separatore, header, ecc.).
- Genera automaticamente: una funzione M "Transform Sample File" + una query Helper che applica quella funzione a tutti i file della cartella.
- Aggiunge una colonna
Source.Nameper sapere da quale file viene ogni riga.
Connessione SQL Server — passo per passo
Get Data → SQL Server. Si apre una finestra con:
- Server: hostname o IP, opzionalmente
server\instance(es.SRV01\SQLEXPRESS). - Database: opzionale (se vuoto, vedi tutti i DB disponibili).
- Data Connectivity mode: Import o DirectQuery (vedi 2.2).
- Advanced options: timeout, command text custom (SQL diretto), include relationship columns.
Per autenticazione, le opzioni più comuni:
- Windows — usa le tue credenziali AD locali (LDAP). Tipico in on-prem.
- Database — username + password SQL specifici.
- Microsoft account / Entra ID — per Azure SQL DB.
- Service Principal — per scenari automatici (CI/CD, refresh).
SELECT a, b FROM v_Vendite WHERE Anno > 2023). Vantaggi: filtri server-side, performance. Svantaggi: rompi il query foldingper gli step successivi in Power Query — quindi tutto quello che fai dopo gira in locale, non più sul server.Esempi pratici di SQL in connessione
Caricamento filtrato server-side (raccomandato):
SELECT
v.IdVendita,
v.Data,
v.IdCliente,
v.IdProdotto,
v.Quantita,
v.Importo,
v.IdArea
FROM dbo.Vendite AS v
WHERE v.Data >= '2024-01-01'
AND v.Stato = 'Confermato'Caricamento di una vista o stored procedure (preferito a query lunghe inline, perché manutenibile lato DB):
SELECT *
FROM analytics.v_VenditeGiornaliere
WHERE Anno >= 2024Errori comuni e debug rapido
ping nomeserver da PowerShell. Per Azure SQL DB, controlla che il tuo IP sia in whitelist su Azure Firewall.Esercitazioni — fanne almeno 4
Excel: foglio vs tabella
Prendi un file Excel con un foglio "Vendite" che contiene una tabella di dati. In Excel, prima di caricare, premi Ctrl+T su quei dati e nominala tbl_Vendite. Poi: Get Data → Excel → file. Confronta la differenza tra spuntare "Sheet1" vs "tbl_Vendite" nel Navigator. Cosa cambia?
CSV italiano
Trova un CSV con separatore ; e date dd/mm/yyyy (puoi crearne uno esportando una pivot Excel). Caricalo in Power BI Desktop. Controlla che: 1) le colonne siano separate correttamente, 2) le date appaiano come date e non come testo. Se non vanno, sistema in Power Query.
Combina 3 file CSV in cartella
Crea 3 CSV "Vendite_Gen.csv", "Vendite_Feb.csv", "Vendite_Mar.csv" con lo stesso schema. Mettili in una cartella. Get Data → Folder → seleziona la cartella → Combine Files. Verifica che la colonna Source.Name indichi il file di origine di ogni riga.
SQL con query custom
Se hai un SQL di test (o Azure SQL DB), connettiti in Advanced options con questa query:
SELECT TOP 1000 *
FROM Sales.SalesOrderHeader
WHERE OrderDate >= '2014-01-01'Poi controlla in Power Query (right click ultimo step → View Native Query) che la query folding funzioni. Se non hai SQL, descrivi cosa ti aspetteresti di vedere.
Excel sporco da pulire
Hai un Excel con: 3 righe di titolo all'inizio, una colonna vuota in fondo, date come testo (formato "31/01/2026"), nomi di colonna in italiano con spazi. Scrivi in 5 step la pipeline Power Query per renderlo pronto al modello.
Vista SQL vs query inline
Il tuo DBA ti chiede: "vuoi che ti faccio una vista SQL o tieni la query inline nel .pbix?". Rispondi argomentando in 4 punti (manutenibilità, performance, sicurezza, versionamento).
Quick check finale
Hai un Excel con dati in foglio non strutturati. Cosa fai PRIMA di Get Data?
Date dd/mm/yyyy interpretate come mm/dd/yyyy. Soluzione?
Hai finito la Lezione 2.3 ✓
Ora sai caricare i tre formati più comuni senza inciampare nei tranelli classici. Nella 2.4 vediamo il Gateway on-premises in pratica.