Creare una tabella (e popolarla…) in DAX

Accade spesso di avere la necessità di avere nel modello dati una tabella “al volo”.

Delle volte serve per convertire codici, per esempio codici di paesi ISO nei loro nomi per utilizzare la georeferenziazione, altre volte per altri usi, altre volte ancora in una formula che richiede espressamente una tabella quando si ha per le mani un valore scalare.

In DAX i modi per dichiarare una tabella sono essenzialmente due:

  • il primo passa attraverso l’utilizzo delle parentesi graffe {} (è il modo più rapido ma uello che da meno controllo);
  • il secondo è attraverso l’utilizzo della formula DATATABLE.

Andiamo a fare alcuni esempi!

Nel nostro modello Power BI andiamo a creare una nuova tabella con la seguente formula:

LaMiaTabella = { 1; 5; 9 }

Questa formula crea una tabella dal nome LaMiaTabella con un colonna e tre righe:

Questo metodo non è efficacissimo perchè non offre controllo sul nome della colonna, nè sul tipo dati assegnato alla riga che, tecnicamente parlando, è un tipo dati variant. Osserviamo infatti che se cambiamo a formula inserendo tra parentesi tipi di dato diversi, all’engine dell’ambiente va bene lo stesso:

Nel caso in cui io voglia avere più colonne nella tabella, posso usare le parentesi tonde; le parentesi tonde delimitano i record:

Ci aiuta sapere però che se sofistichiamo un po’ la formula possiamo agire sui nomi di colonna; per aiutarci utilizziamo SELECTCOLUMNS:

Ma se vogliamo VERAMENTE avere il controllo, allora il costruttore DATATABLE è quello da usare:

Utilizzando il costrutto noi abbiamo la possibilità di dichiarare il tipo dati della colonna, il suo nome e di popolarla…

NOTA: i record non sono più delimitati da (), ma da {}