Vai al contenuto principale

Padroneggiare SWITCH in DAX per Power BI: guida completa

Esplora la funzione SWITCH di Power BI: cos'è, come usarla e alcuni errori comuni e best practice.
Aggiornato 29 set 2026  · 10 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

La funzione SWITCH() in Power BI è una funzione logica DAX che offre un modo più strutturato e leggibile per gestire condizioni multiple rispetto alle istruzioni IF() annidate.

In questo tutorial esamineremo nel dettaglio la funzione SWITCH(). Vedremo cos'è, come si usa e alcuni errori comuni e best practice per utilizzarla al meglio.

Per iniziare con Power BI e DAX, dai un'occhiata al nostro percorso di competenze Power BI Fundamentals e tieni a portata di mano il nostro DAX Cheat Sheet per un rapido riferimento a molte delle funzioni DAX più utili che incontrerai.

image2.png

Che cos'è la funzione SWITCH in Power BI?

La funzione SWITCH() in DAX per Power BI semplifica la scrittura di istruzioni condizionali. Valuta un'espressione e la confronta con una serie di valori, restituendo il primo risultato corrispondente.

SWITCH() può sostituire più istruzioni IF() annidate condensando condizioni multiple in un'unica funzione. Questo porta a espressioni DAX più pulite e semplici, più facili da leggere e mantenere. Migliora anche la leggibilità delle formule, facilitando a te e agli altri la comprensione e la modifica dei calcoli.

Sintassi base e utilizzo

La sintassi di base della funzione SWITCH() è:

SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
  • Expression: L'espressione che viene valutata.
  • Value: I valori con cui l'espressione viene confrontata.
  • Result: I risultati restituiti se l'espressione corrisponde al valore corrispondente.
  • Else: Un risultato facoltativo restituito se nessun valore corrisponde all'espressione.

Ecco un suggerimento per leggere le dichiarazioni di sintassi di base (come quella sopra) che troverai spesso nei tutorial e nella documentazione ufficiale di Microsoft Power BI. La dichiarazione mostra due set di parametri <value> e <result>, con il secondo set racchiuso tra parentesi quadre. Questo significa che può esserci più di un set di valori e risultati, opzionali per la funzione SWITCH(). Allo stesso modo, la parte <else> della funzione è anch'essa tra parentesi quadre, quindi è facoltativa.

Confronto con IF annidati

Il modo tradizionale per gestire più condizioni in DAX prevede l'uso di IF annidati, che possono diventare rapidamente complessi e difficili da leggere. Ad esempio, gestire quattro condizioni richiederebbe tre funzioni IF annidate. Al contrario, la funzione SWITCH() semplifica il tutto consentendo un elenco lineare di coppie condizione-risultato, migliorando leggibilità e manutenibilità.

Anche se più IF annidati possono ottenere lo stesso risultato di SWITCH(), quest'ultima è comunque preferibile perché più facile da scrivere e meno soggetta a errori. Molte chiamate a IF() possono anche impattare negativamente sulle prestazioni di un report. Ricorda però che anche la funzione SWITCH() può incidere sulle prestazioni. Per questo, più avanti nel tutorial vedremo strategie per ottimizzare le funzioni SWITCH() insieme ad alcune best practice.

Idoneità per calcoli complessi

SWITCH() è particolarmente adatta a scenari in cui hai un insieme definito di possibili valori per un'espressione e un risultato corrispondente per ciascuno.

È più pulita ed efficiente rispetto a più IF() annidati, soprattutto quando il numero di condizioni aumenta. Questo rende SWITCH() un'ottima scelta per calcoli complessi in cui leggibilità e prestazioni contano.

Tuttavia, sebbene SWITCH() migliori la leggibilità, i suoi vantaggi prestazionali rispetto agli IF annidati dipendono in gran parte dallo specifico caso d'uso e dal modello di dati sottostante.

Come usare la funzione SWITCH in Power BI

Questi esempi illustrano la versatilità della funzione SWITCH() nell'affrontare diversi scenari di business in Power BI. Sostituendo complesse istruzioni IF() annidate con SWITCH(), puoi ottenere formule DAX più chiare e facili da mantenere.

Esempio 1: analisi per categoria di vendite

Immagina un'azienda che voglia classificare le vendite in diversi livelli in base all'importo totale, per analizzare le performance in modo più efficace.

Nella formula DAX qui sotto usiamo la funzione SWITCH() per assegnare una categoria di vendite in base al totale. Noterai che usiamo la funzione logica TRUE() come espressione della formula. Questo perché SWITCH() cerca solo corrispondenze esatte, mentre noi vogliamo usare operatori come maggiore di e minore di. Impostando l'espressione su TRUE(), SWITCH() valuterà ciascuna condizione finché non troverà una corrispondenza (cioè quando il risultato è true).

Sales Category =
SWITCH(
    TRUE(),
    [Total Sales] < 10000, "Low Sales",
    [Total Sales] < 50000, "Medium Sales",
    [Total Sales] >= 50000, "High Sales",
    "Unknown")

Ecco il risultato in Power BI:

image3.png

Esempio 2: strategia di sconto sui prodotti

Supponi che una catena retail applichi percentuali di sconto diverse ai prodotti in base al prezzo di vendita netto per massimizzare la redditività. Vogliono calcolare il valore totale delle vendite scontate nel negozio.

Nella formula DAX qui sotto usiamo la funzione SWITCH() all'interno di una variabile. Poiché non ci servirà altrove nel report la formula per la percentuale di sconto, possiamo ridurre i calcoli ripetuti e valutarla solo all'interno di questa formula per le vendite scontate.

DiscountedSales =
    VAR DiscountPct = SWITCH(
        TRUE,
        Sales[Net Price] <= 150, 0.15,
        Sales[Net Price] <= 500, 0.2,
        Sales[Net Price] <= 1000, 0.3,
        0
    )
    VAR DiscountAmount = Sales[SalesAmount] * (1 - DiscountPct)
    RETURN
    DiscountAmount

Ecco il risultato in Power BI:

image1.png

Errori comuni e come evitarli

In questa sezione rivediamo alcuni errori comuni nell'uso della funzione SWITCH() con suggerimenti per evitarli.

1. Uso eccessivo per condizioni semplici

Usare SWITCH() in scenari in cui basterebbe un semplice IF può complicare inutilmente le formule DAX.

Riserva SWITCH() ai casi con condizioni multiple. Per una o due condizioni, valuta l'uso di IF per semplicità.

2. Impatto sulle prestazioni con dataset grandi

Un uso intensivo della funzione SWITCH(), soprattutto con espressioni complesse, può rallentare le prestazioni del report su dataset di grandi dimensioni.

Ottimizza le espressioni all'interno di SWITCH() pre-calcolando le parti complesse con variabili. Le variabili rendono l'espressione SWITCH() più pulita e comprensibile, contribuendo indirettamente all'ottimizzazione riducendo la probabilità di calcoli ridondanti o non necessari.

Calcola una sola volta espressioni ricorrenti o parti complesse delle condizioni e salvale in variabili. Così eviti di ricalcolare più volte la stessa espressione all'interno di SWITCH().

3. Uso inefficace del caso predefinito

Usare in modo improprio il caso di default in SWITCH() per gestire errori o valori imprevisti senza la dovuta attenzione può portare a risultati errati.

Definisci chiaramente le condizioni e gestisci in modo esplicito gli scenari noti. Usa funzioni come IFERROR o ISBLANK per gestire valori imprevisti o mancanti.

4. Errata comprensione del contesto

Dimenticare che SWITCH() viene valutata nel contesto corrente può portare a risultati inattesi, soprattutto se usata in contesti di riga o di filtro. Dai un'occhiata al nostro corso Introduction to DAX, dove trattiamo i contesti in maggior dettaglio.

Quando progetti espressioni SWITCH(), considera sempre il contesto di riga o di filtro corrente. Usa con giudizio funzioni di transizione del contesto come CALCULATE() per adattare il contesto quando necessario.

5. Ordine delle operazioni

Trascurare l'ordine delle condizioni nell'istruzione SWITCH() può portare a risultati imprevisti, poiché la funzione valuta le condizioni nell'ordine in cui sono definite e usa la prima condizione che corrisponde.

Assicurati che ogni caso appaia nella sequenza corretta, proprio come faresti con IF annidati.

Best practice per SWITCH

Ecco alcune best practice per usare SWITCH() in modo efficace:

  • Usala per condizioni multiple: SWITCH() è ideale quando hai più di due verifiche condizionali. Rende la formula più facile da leggere e mantenere rispetto agli IF() annidati.

  • Definisci chiaramente tutti i casi: La tua funzione SWITCH() dovrebbe coprire tutti gli scenari possibili, incluso un caso predefinito per gestire valori imprevisti. Questo rende i calcoli più solidi e meno soggetti a errori.

  • Ottimizza per le prestazioni: Mantieni le espressioni all'interno di SWITCH() il più semplici possibile per evitare cali di performance con dataset grandi. L'uso di variabili per memorizzare risultati intermedi può aiutare a ridurre il carico computazionale.

  • Testa a fondo: Soprattutto quando usi SWITCH() per logiche complesse, verifica accuratamente i risultati in diversi scenari. Questo aiuta a individuare errori logici o casi che potresti aver tralasciato.

Conclusione

Se cerchi un modo più efficiente e versatile per gestire condizioni multiple in Power BI, SWITCH() è la risposta. A differenza degli IF annidati, la funzione SWITCH() condensa più condizioni in un'unica funzione, producendo espressioni DAX più pulite e semplici, facili da leggere e da mantenere. Inoltre, migliora la leggibilità delle formule, facilitando a te e agli altri la comprensione e la modifica dei calcoli.

Evita però alcuni errori comuni quando usi la funzione SWITCH() e segui le best practice discusse in questo tutorial.

Se fai sul serio nel voler intraprendere una carriera come sviluppatore Power BI, dai un'occhiata alla nostra guida passo passo per diventare un BI developer insieme al percorso professionale completo Data Analyst in Power BI, che ti insegnerà tutto ciò che ti serve per iniziare a usare Power BI nella pratica.


Joleen Bothma's photo
Author
Joleen Bothma
LinkedIn
Argomenti
Power BI

Inizia oggi il tuo percorso con Power BI!

Corso

Introduzione a Power BI

4 ore
824.4K
Impara le basi di Power BI e usa il software di visualizzazione dati per creare report di grande impatto.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro