Ciao a tutti,
mi sto approcciando da poco a Power BI quindi scusatemi per eventuali errori.
Ho una tabella con le fatture, organizzate per data fattura. Io ho creato una tabella "Calendario" con il mapping di "giorno", "mese", "anno" (più altre colonne non importanti in questo contesto) fino al 2032, giusto per stare sicuro.
Ho importato le due tabelle e le ho legate tramite relazione Molti a 1 Single tra il campo Calendario[DATE] e il campo Fatture[InvoiceDate].
Ho creato tre slicer, per YEAR, MONTH e DATE dalla tabella Calendario
Ho creato le seguenti misure:
Restituisce la data seleziona dallo slicer oppure la max disponibile in base all'anno e mese se non ho selezionato alcuna data specifica
Max_Date = CALCULATE(
MAXX(VALUES(Fatture[InvoiceDate]),FORMAT(Fatture[InvoiceDate], "dd/MM/yyyy")))
Effettua il conteggio delle fattura scontate
Count_Fatt_Scont =
CALCULATE(DISTINCTCOUNT(Fatture[InvoiceNumber]),Fatture[Type]="SCONTI")
Effettua il conteggio delle fatture vendute
Count_Fatt_Sale =
CALCULATE(DISTINCTCOUNT(Fatture[InvoiceNumber]),Fatture[Type]="SALE")
Le tre misure le ho create nella tabella Fatture.
Esigenza di visualizzazione: una matrice che abbia in ROWS i valori TODAY, MONTH e MONTH TO DATE, in VALUE il conteggio delle fatture. Lo scopo è quello di far vedere le fatture relative al giorno selezionato o l'ultimo disponibile per il mese selezionato, il conteggio di tutte le fatture per il mese selezionato e il conteggio delle fatture dall'inizio dell'anno fino alla data selezionata (o quella massima per il mese selezionato.
Ho deciso quindi di creare una tabella virtuale in UNION così composta:
TB_Fatture_All =
VAR DATA_MAX = Max_Date
RETURN
UNION(
SELECTCOLUMNS(
Fatture,
"ORDER\_DATE", 1,
"REF\_DATE\_LABEL", "TODAY",
"ACTUAL", CALCULATE(
[Count\_Fatt\_Sale] - [Count\_Fatt\_Scont],
FORMAT(Fatture[InvoiceDate], "dd/MM/yyyy") = DATA\_MAX
),
"BRAND", Fatture[Brand]
),
SELECTCOLUMNS(
Fatture,
"ORDER\_DATE", 3,
"REF\_DATE\_LABEL", "MONTH",
"ACTUAL", CALCULATE(
[Count\_Fatt\_Sale] - [Count\_Fatt\_Scont],
MONTH(Fatture[InvoiceDate]) = MONTH(DATA\_MAX)
),
"BRAND", Fatture[Brand]
),
SELECTCOLUMNS(
Fatture,
"ORDER\_DATE", 2,
"REF\_DATE\_LABEL", "MONTH TO DATE",
"ACTUAL", CALCULATE(
[Count\_Fatt\_Sale] - [Count\_Fatt\_Scont]
,MONTH(Fatture[InvoiceDate]) <= MONTH(DATA\_MAX)
),
"BRAND", Fatture[Brand]
)
)
La tabella virtuale, così scritta, non legge il valore di di DATA_MAX, ho provato anche a mettere direttamente il valore di CALENDARIO (SELECTEDVALUE(Calendario[DATE]) e SELECTEDVALUE(Calendario[MONTH])) ma niente. Se la misura Max_Date la inserisco in una CARD si comporta proprio come serve a me, visualizza la data che ho selezionato nello slicer e se non seleziono nulla mi fa vedere la data max rispetto al mese selezionionato.
Ho provato di tutto ma non capisco perché non venga visto nella tabella virtuale e come risolvere. Potreste aiutarmi?
Grazie
Nicola