Operazioni base: tipi, filtri, rinomina, split, sostituzione valori
Le 6 operazioni che farai ogni giorno in Power Query, sui dati reali. Per ciascuna: cosa fa, dove sta nel ribbon, cosa genera in M, errori tipici, e tanti micro-esercizi per fissarla.
- ⏱ Tempo stimato: ~30 min + esercizi pratici
- 🎯 Prerequisiti: L3.1
- 🛠 Software: Power BI Desktop + un CSV sporco di esempio
Cambiare il tipo di una colonna
Dove: click sull'icona tipo a sinistra del nome colonna (mostra ABC, 123, 📅, ecc.) → scegli il tipo. Oppure: tab Transform → Data Type.
Tipi disponibili:
- Decimal Number, Whole Number, Fixed Decimal, Percentage — numeri.
- Date, Date/Time, Time, Duration — data/orario.
- Text — testo.
- True/False — booleano.
- Binary — binario (file, immagini).
Per date con formato locale (italiano dd/mm/yyyy), usa:
Table.TransformColumnTypes(
Origine,
{{"Data", type date}},
"it-IT"
)Filtrare righe
Dove: click sulla freccia accanto al nome colonna (come Excel) → spunta i valori da tenere, o scegli "Number Filters / Text Filters / Date Filters". Anche tab Home → Keep Rows / Remove Rows.
// Mantieni le righe con Importo > 100
Table.SelectRows(Tabella, each [Importo] > 100)
// Mantieni le righe dell'anno corrente
Table.SelectRows(Tabella, each Date.Year([DataDoc]) = Date.Year(DateTime.LocalNow()))
// Mantieni le righe con stato in una lista
Table.SelectRows(Tabella, each List.Contains({"Confermato", "Spedito"}, [Stato]))
// Escludere righe null in una colonna
Table.SelectRows(Tabella, each [Cliente] <> null)Rinominare colonne
Dove: doppio click sul nome della colonna. Oppure: right-click → Rename.
Table.RenameColumns(Tabella, {
{"DataDoc", "Data"},
{"Importo", "Fatturato"},
{"IdCli", "IdCliente"}
})Convenzioni di naming (scegli e mantieni una sola, in tutto il modello):
- PascalCase: "DataVendita", "Cliente", "Fatturato".
- Spazi e leggibilità: "Data Vendita", "Importo Lordo" — preferito per nomi che vede l'utente nei visual.
- snake_case: "data_vendita", "fatturato" — comune lato database.
Rimuovere colonne (e righe)
Rimuovere colonne: select una o più colonne (Ctrl+click) → tab Home → Remove Columns → Remove. Oppure "Remove Other Columns" per tenere solo le selezionate (preferito quando vuoi essere esplicito).
// Toglie 2 colonne
Table.RemoveColumns(Tabella, {"NotaInterna", "Flag"})
// Tiene solo 4 colonne (preferito: esplicito è meglio di implicito)
Table.SelectColumns(Tabella, {"Data", "Cliente", "Prodotto", "Importo"})Rimuovere righe: tab Home → Remove Rows → Remove Top/Bottom/Alternate/Duplicate/Errors.
RemoveColumns la include lo stesso (sporcando il modello), mentre SelectColumns la esclude automaticamente. Best practice: lavora per lista positiva.Split column — dividere stringhe
Dove: tab Transform → Split Column. Opzioni: By Delimiter, By Number of Characters, By Positions, By Lowercase to Uppercase, ecc.
Caso classico: colonna "Cliente Completo" con formato "Mario Rossi - 12345":
Table.SplitColumn(Tabella, "ClienteCompleto",
Splitter.SplitTextByDelimiter(" - ", QuoteStyle.Csv),
{"NomeCliente", "CodCliente"})Sostituire valori
Dove: right-click su una colonna → Replace Values. Comodo per:
- Sostituire null con un valore default ("N/D", 0).
- Normalizzare codici ("S" → "Sì", "N" → "No").
- Rimuovere caratteri spuri ("€" da Importo per renderlo numerico).
// Sostituisci null con 0 nella colonna Quantita
Table.ReplaceValue(
Tabella, null, 0,
Replacer.ReplaceValue, {"Quantita"}
)
// Rimuovi simbolo Euro da Importo
Table.ReplaceValue(
Tabella, "€", "",
Replacer.ReplaceText, {"Importo"}
)Bonus: Trim, Clean, Upper/Lower
Tab Transform → Format → propone una manciata di trasformazioni utilissime:
- Trim: rimuove spazi iniziali e finali. Sempre dopo l'import di Excel/CSV.
- Clean: rimuove caratteri non stampabili (TAB, line break sporchi).
- UPPERCASE / lowercase / Capitalize: normalizza maiuscole/minuscole.
- Add Prefix / Suffix: aggiunge testo.
Table.TransformColumns(
Tabella,
{{"Email", each Text.Lower(Text.Trim(_)), type text}}
)Esercitazioni — fai TUTTE quelle a portata
Cambia tipo a una colonna data italiana
Carica un CSV con date "31/12/2025" interpretate come testo. Cambia il tipo a Date usando il locale italiano. Verifica nel pannello dati che ora siano date "vere" (ordinabili, filtrabili per anno).
Filtra le righe
Sullo stesso CSV, applica 3 filtri in sequenza: 1) solo righe del 2025, 2) escludi valori null nella colonna Cliente, 3) tieni solo importi > 0. Annota gli step generati.
Rinomina 3 colonne
Rinomina 3 colonne del tuo CSV con nomi più parlanti (es. "DT_VND" → "DataVendita", "IMP_LRD" → "Fatturato"). Verifica nello step generato che usi Table.RenameColumns.
Rimuovi colonne con SelectColumns
Tieni solo 4 colonne usando "Remove Other Columns" (oppure tieni-pulsanti). Confronta lo step generato con Table.SelectColumns.
Split di una colonna
Hai una colonna "ClienteCompleto" con valori tipo "Mario Rossi - 12345". Splittala in due colonne ("Nome", "Codice") usando il delimitatore " - ".
Sostituisci null e simbolo
Sulla colonna "Importo" hai valori tipo "€ 1.234,56" misti a null. Vuoi una colonna numerica pulita. Scrivi i passaggi.
Trim + lowercase su email
Sulla colonna Email applica: trim spazi, lowercase. Verifica con Text.Lower(Text.Trim(_))in M.
Pipeline completa su CSV sporco
CSV ricevuto da un fornitore: 5 righe di header inutile in cima, separatore ;, date italiane, importi con €, una colonna "Note interne" da rimuovere, colonna Email con spazi. Scrivi l'ordine degli step Power Query (almeno 7) per renderlo pronto al modello.
Quick check finale
Quale operazione preserva meglio la robustezza del modello quando arrivano nuove colonne in sorgente?
Date dd/mm/yyyy lette come stringa. Cosa fai?
Hai finito la Lezione 3.2 ✓
Le operazioni base ti sono in mano. Nella 3.3 saliamo di livello: unpivot, Group By, colonne condizionali.