Salta al contenuto

Cosa NON fare in DAX

Mi è stato chiesto più volte di fare una lista delle buone prassi in DAX. Ho pensato, dopo un po’ di riflessione, si stravolgere il quesito e postare un articolo in cui dico cosa NON fare, per diverse ragioni, tra cui:

  1. in questo modo spero di stimolare i lettori allo studio del DAX – “perché NON fare una certa cosa” solitamente incuriosisce di più (o spaventa?);
  2. la lista di cosa NON fare è più corta di quella di cosa fare;
  3. ritengo più importante evitare problemi (cosa NON fare) rispetto ad ottimizzare (cosa fare).

Assunto quanto sopra, ecco la lista di cosa NON fare in DAX (in ordine decrescente di pericolosità):

  1. NON invocare la context transition in una tabella priva di chiave primaria (esempio: la tabella dei fatti); se è necessario farlo (cosa che discuterei, non mi è mai capitato che sia veramente necessario) bisogna assolutamente, prima, creare una colonna indice in Power Query (non è possibile scriverla in DAX) che funga da chiave primaria;
  2. NON usare ALLSELECTED se non se ne conosce, almeno, la semantica apparente (ignorare i filtri di una visual e lasciare quelli esterni alla visual stessa – in realtà, come accennato, questa semantica è apparente, ALLSELECTED non conosce le visual) e, in ogni caso, NON annidare ALLSELECTED in una misura chiamata in un’iterazione;
  3. NON filtrare tabelle intere ma il numero minimo di colonne necessario ad imporre quanto desiderato nel filter context;
  4. NON annidare più di due iterazioni;
  5. NON usare colonne di tipo Data/Ora ma solo Data. Se servono sia la data che l’ora di un fatto, separate la colonna di tipo Data/Ora in due con Power Query, in modo che una contenga la sola data e l’altra il solo orario;
  6. NON usare USERELATIONSHIP in una colonna calcolata, è un esercizio tedioso e inutile (a meno che non vogliate confrontarvi con uno dei casi più complessi del DAX a scopo didattico, il codice che ne deriva è così complesso da essere fortemente sconsigliato), bensì potete usare LOOKUPVALUE.

Mi piacerebbe ricevere segnalazioni e suggerimenti dai lettori su cosa potrei avere scordato. Commentate!

Buon DAX!

Autore del Post

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *