Skip to header Skip to main navigation Salta al contenuto principale Skip to footer

Menu profilo utente

  • Accedi
Home
Informatica Consapevole ed Ecosostenibile. Perchè l'informazione sia un bene per l'umanità.

Navigazione principale

  • Home
  • I nostri corsi
  • Drupal
    • Cos'e' Drupal
    • Documentazione
    • Moduli utili per Drupal
  • Ubuntu
    • Che cos'e' Ubuntu
    • Come fare
    • Link utili su Linux e Ubuntu
  • Come Fare
    • Apache
    • Audio
    • CSS - Fogli di Stile
    • Gimp
    • Libre Office
    • Mozilla Thunderbird
    • MySQL MariaDB
    • Tutorial Microsoft
    • Video
    • WEB, Internet
  • Chi sono

Microsoft Power BI - Creare una tabella contetente un calendario usando il DAX

Briciole di pane

  • Home
  • Tutorial Microsoft Power BI
  • Microsoft Power BI - Creare una tabella contetente un calendario usando il DAX

Obiettivo

Creare una tabella contenete un calendario

1 Soluzione utilizzando la funzione DAX CALENDARAUTO

Creiamo una Nuova Tabella

Power BI - Nuova TabellaInseriamo il codice 


Calendario = 
   VAR Lingua = "IT"  // Lingua: IT (italiano), EN (inglese), ES (spagnolo), FR (francese), DE (tedesco)
   VAR Locale = SWITCH(
          Lingua,
          "IT", "it-IT",
          "EN", "en-US",
          "ES", "es-ES",
          "FR", "fr-FR",
          "DE", "de-DE",
          "en-US")
   RETURN
   ADDCOLUMNS(CALENDARAUTO(),
      "Data Int", INT(YEAR([Date]) * 10000 + MONTH([Date]) * 100 + DAY([Date])),  // Formato AAAAMMGG come intero
      "Anno", YEAR([Date]),
      "Mese Nome", FORMAT([Date], "MMMM", Locale),
      "Mese Abbreviato", FORMAT([Date], "MMM", Locale),
      "Mese Num", MONTH([Date]),
      "Giorno Num", DAY([Date]),
      "Giorno Settimana Nome", FORMAT([Date], "dddd", Locale),
      "Giorno Settimana Abbreviato", FORMAT([Date], "ddd", Locale),
      "Giorno Settimana Num", WEEKDAY([Date], 2),  // 1 = Lunedì, 7 = Domenica
      // Altri campi utili
      "Trimestre", "Q" & QUARTER([Date]),
      "Trimestre Num", QUARTER([Date]),
      "Settimana Num", WEEKNUM([Date], 2)
      )


Funzioni Usate

  • CALENDARAUTO() Restituisce una tabella con una singola colonna denominata [Date] contenente un set contiguo di date. L'intervallo di date viene calcolato automaticamente in base ai dati nel modello.
  • FORMAT([Date],"mmmm") restituisce il testo del mese 

Formattare il campo [Date]

Andiamo in Strumenti colonna. Selezioniamo la colonna Date e scegliamo il formato (Short Date)

Power Bi - Formattare il campo data

 

Contrassegnare una tabella come "tabella data" (o "tabella calendario")

Infine possiamo contrassegnare questa tabella come "tabella Data"

Power BI - Contrassegnare Nuova Tabella Data

In Power BI, contrassegnare una tabella come "tabella data" (o "tabella calendario") serve a identificare formalmente quale tabella contiene le date principali per l'analisi temporale. Questo passaggio è fondamentale per l'intelligenza temporale di Power BI e offre diversi vantaggi:

  1. Gerarchia temporale automatica: Power BI crea automaticamente gerarchie temporali come Anno > Trimestre > Mese > Giorno, facilitando l'analisi drill-down.

  2. Funzioni time intelligence: Abilita funzioni DAX di intelligenza temporale come SAMEPERIODLASTYEAR, TOTALYTD, PREVIOUSMONTH che richiedono una tabella data correttamente identificata.

  3. Filtri temporali intelligenti: Migliora le funzionalità di filtraggio relative al tempo nei report e dashboard.

  4. Prestazioni ottimizzate: Power BI ottimizza le query relative al tempo quando sa quale tabella contiene le informazioni di data.

  5. Supporto multilingua: Gestisce automaticamente i nomi dei giorni e dei mesi in base alle impostazioni locali dell'utente.

Per contrassegnare una tabella come tabella data, seleziona la tabella nella vista modello, vai alla scheda "Modellazione" e clicca su "Contrassegna come tabella data". Power BI ti chiederà di specificare quale colonna contiene le date principali.

È una best practice fondamentale per qualsiasi modello di dati che richieda analisi temporali.

 

2 Soluzione utilizzando il linguaggio DAX

Utilizziamo le seguenti funzioni:

  • DATE(anno,mese,giorno)

per creare la data inizio calendario e la data di fine

  • CALENDAR(DataInizio,DataFine)

per creare la tabella calendario


Calendario = 
   VAR DataMinima = MIN(ordini[Data Ordine])
   VAR DataMassima = MAX(ordini[Data Ordine]) 


   RETURN
   ADDCOLUMNS (
      CALENDAR (DataMinima, DataMassima),
      "Anno", YEAR([Date]),
      "Mese Numero", MONTH([Date]),
      "Mese", FORMAT([Date], "MMMM"),
      "Mese Breve", FORMAT([Date], "MMM"),
      "Trimestre", "T" & QUARTER([Date]),
      "Anno-Mese", FORMAT([Date], "YYYY-MM"),
      "Giorno Numero", WEEKDAY([Date], 2), // Il "2" imposta il Lunedì come primo giorno della settimana
      "Giorno", FORMAT([Date], "dddd")
   ) 


 

2 Soluzione utilizzando il linguaggio Power Query e il linguaggio M

Creiamo una Query vuota dal menù Recupera dati

Power BI - Creare una tabella calendario con power Query

 

Creiamo due parametri: uno per la data di inizio e uno per la data di fine.

Andiamo in Home > Gestisci parametri > Nuovo parametro

Power BI - Creare un parametro in Power Query

 

Inseriamo la data di inizio creando il parametro di tipo Data con nome DataInizio

Power BI - Creare un parametro con la data di inizio in Power Query

 

Facciamo la stessa cosa per la data di fine

Otteniamo i due parametri

Power BI - Creare due parametri con data inizio e fine in Power Query

 

Selezionando la Query1 andiamo in Visualizza > Editor Avanzato

Power BI - Creare una tabella calendario in Power Query

 

A questo punto scriviamo il codice

 

Power BI - Power Query creazione Calendario

Con

NumeroGiorni = Duration.Days(DataFine-DataInizio)

Calcoliamo la differenza in giorni tra la data di inizio e fine. A questo valore andrà aggiunto 1 giorno

 

La funzione List.Dates serve per creare una lista di giorni. Ha tre parametri:

  • data di inizio
  • numero di giorni
  • valore di incremento

Per indicare l'incremento di un giorno usiamo l'espressione

 #duration(1,0,0,0)]

 

Il risultato è

Power BI - Creare una tabella calendario in Power Query

 

 

Poichè il risultato è una lista (Elenco) occorre trasformarlo in tabella. Andiamo in Trasforma e selezioniamo Con la tabella

Power BI - Power Query creazione Calendario

 

Diamo OK

Power BI - Power Query creazione Calendario

 

Abbiamo ottenuto una colonna di tipo generico. Scegliamo il tipo calendario e chiamiamo la colonna DataCompleta

Power BI - Power Query creazione Calendario

 

Otteniamo

Power BI - Power Query creazione Calendario

 

Possiamo inserire ora varie colonne. La prima contenete solo l'anno. Per ottenere questo andiamo su Aggiungi colonna > Data > Anno > Anno

Power BI - Power Query creazione Calendario - Colonna anno

 

Otteniamo così la colonna con solo l'anno.

Power BI - Power Query creazione Calendario - Colonna anno

 

lo stesso può essere fatto per: Mese, Nome del mese, Giorno, Nome del giorno, Trimestre, Settimana dell'anno, Giorno dell'anno

Power BI - Power Query creazione Calendario

 

Determinare il giorno della settimana

All'inizio del tutorial abbiamo inserito la formula DAX

Calendario = CALENDAR(DATE(2023,1,1),DATE(2023,4,30))

Per ottenere un calendario. Possiamo aggiungere una colonna per calcolare il giorno della settimana in formato numerico:

giorno-settimana = WEEKDAY(Calendario[Giorno],2)

"2" significa che la numerazione parte da lunedì. Infatti otteniamo

power-bi-creazione-calendario-016

Per tradurre 7 in domenica, 1 in lunedì ecc. possiamo crearci una tabella "numero-giornosettimana" con due campi: numero e giorno-settimana utilizzando la sintassi DAX

 

    numero-giornosettimana =  DataTable(
    "numero",INTEGER,
    "giorno-settimana",STRING,
    {
        {1,"lunedì"},
        {2,"martedì"},
        {3,"mercoledì"},
        {4,"giovedì"},
        {5,"venerdì"},
        {6,"sabato"},
        {7,"domenica"}
    }
)

Otteniamo così la tabella

Tabella Calendario

 

 

 

 

calendario.txt (977 byte)
calendario-sm.txt (485 byte)

Costellazioni Familiari Animiche e Reiki con Janhu

Costellazioni Familiari Animiche e Reiki con Janhu

www.janhu.it

Tutorial Microsoft

I Nostri Tutorial Esercizi

Tutorial, Esercizi, e molto altro

Noi è io sono la nazione

Noi è io sono la nazione

The One People’s Public Trust

Serverplan

Contatti

email ecommunicationinfo@ecommunication.it
 
contattacicellulare +39 393 9374116
 
TelegramTelegram
 
insegnante - docenteChi Sono

Youtube

visita il canale

L'importanza della formazione aziendale

 

Disclaimer & Avvertenze

  • Contattaci
  • Cookies
  • Informativa Cookies - Cookie Policy

Copyright © 2026 ECOmmunication - All rights reserved

Creato e mantenuto da Dott. Silvio Crispiatico