Somma da data inizio a data fine L’argomento è risolto

Non è propriamente un programma di BI, ma nelle sue versioni più recenti anche Excel può fare grandi cose!

Moderatore: Utilizzo_prof_Excel


bibi
Messaggi: 17 | Topic creati
Iscritto il: dom 28 feb 2021, 9:13
Ringraziato: 3 volte

Somma da data inizio a data fine

Messaggio da bibi »

Buongiorno.

Vorrei sommare la quantità compresa tra la data inizio e la data fine della pivot.

Ho creato una nuova misura (Qty per periodo), ma viene mostrato soltanto il totale complessivo per articolo, non filtrato per le date.
Per favore, mi sapere indicare dove sbaglio?

Codice: Seleziona tutto

=CALCULATE(SUM(Tabella1[Qty]);FILTER(Tabella1;Tabella1[Data]>=[Data inizio]&&Tabella1[Data]<=[Data fine]))
Grazie.
Allegati
prova.xlsx
(156.04 KiB) Scaricato 49 volte


Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Somma da data inizio a data fine

Messaggio da Enrico Galli »

Ciao, prova a sostituire la tua misura con questa (nota l'utilizzo delle variabili):

Codice: Seleziona tutto

=
VAR DataInizio = [Data inizio]
VAR DataFine = [Data fine]
RETURN
CALCULATE (
    SUM ( Tabella1[Qty] );
    FILTER (
        Tabella1;
        Tabella1[Data] >= DataInizio
            && Tabella1[Data] <= DataFine
    )
)
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione

Autore del topic
bibi
Messaggi: 17 | Topic creati
Iscritto il: dom 28 feb 2021, 9:13
Ringraziato: 3 volte

Somma da data inizio a data fine

Messaggio da bibi »

Grazie Enrico, fino ad ora non avevo mai utilizzato le variabili.

E se volessi aggiungere alla pivot altre X colonne che analizzano le quantità vendute nei periodi successivi (nel mio esempio + 30 giorni), devo aggiungere altre X misure distinte, oppure posso farlo con un'unica formula dax che mi genera una tabella con X periodi?

Nel mio esempio la seconda colonna analizzerebbe le quantità a partire dalla fine della prima + 30 giorni,
La terza, a partire dalla fine della seconda + 30 giorni, ecc...

Non saprei dove cominciare...

Grazie.
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Somma da data inizio a data fine

Messaggio da Enrico Galli »

Le misure DAX non generano tabelle (o meglio, possono farlo, ma non nel senso che intendi tu e non in Excel ma solo in Power BI). Per ottenere il risultato che cerchi, dal mio punto di vista, o crei una misura per ogni intervallo di cui hai bisogno, o crei una tabella disconnessa dalle altre con i vari valori che ti servono (es. 30gg, 60gg, 90gg) e la metti come campo colonna, dopodiché la tua unica misura farà riferimento al valore di questo campo per generare i vari risultati. Ti allego formula DAX e file di esempio

Codice: Seleziona tutto

=
VAR DataInizio = [Data inizio]
VAR DataFine =
    IF (
        HASONEVALUE ( 'Periodi'[Periodo] );
        DataInizio
            + MAX ( 'Periodi'[giorni] )
    )
VAR Result=
    CALCULATE (
        SUM ( Tabella1[Qty] );
        FILTER (
            Tabella1;
            Tabella1[Data] >= DataInizio
                && Tabella1[Data] <= DataFine
        )
    )
RETURN Result
Allegati
prova.xlsx
(186.63 KiB) Scaricato 30 volte
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione

Autore del topic
bibi
Messaggi: 17 | Topic creati
Iscritto il: dom 28 feb 2021, 9:13
Ringraziato: 3 volte

Somma da data inizio a data fine

Messaggio da bibi »

Grazie Enrico.

La tua idea di creare una tabella disconnessa è ottima e penso che seguirò quella soluzione.

C'è solo un problema sulla formula da te creata, e cioè che i dati dei vari periodi danno risultati cumulativi.
A me servirebbe invece solo il totale per il periodo considerato e non a partire dalla data di inizio.

Ad esempio nel secondo periodo mi servirebbe il totale quantità venduta dal 31 giorno al 60 giorno,
nel terzo periodo dal 61 giorno al 90°, ecc...

Grazie.
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Somma da data inizio a data fine

Messaggio da Enrico Galli »

In questo caso, arricchisci la tabella disconnessa con i due valori "giorniDA" e "giorniA", e modifica la misura in questo modo:

Codice: Seleziona tutto

=
VAR DataInizio =
    IF (
        HASONEVALUE ( 'Periodi'[Periodo] );
        [Data inizio]
            + MAX ( 'Periodi'[giorniDA] )
    )
VAR DataFine =
    IF (
        HASONEVALUE ( 'Periodi'[Periodo] );
        DataInizio
            + MAX ( 'Periodi'[giorniA] )
    )
VAR Result =
    CALCULATE (
        SUM ( Tabella1[Qty] );
        Tabella1[Data] >= DataInizio;
        Tabella1[Data] < DataFine
    )
RETURN
    Result
 
Allegati
prova.xlsx
(194.71 KiB) Scaricato 18 volte
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione

Autore del topic
bibi
Messaggi: 17 | Topic creati
Iscritto il: dom 28 feb 2021, 9:13
Ringraziato: 3 volte

Somma da data inizio a data fine

Messaggio da bibi »

Grazie Enrico, geniale come sempre!

Autore del topic
bibi
Messaggi: 17 | Topic creati
Iscritto il: dom 28 feb 2021, 9:13
Ringraziato: 3 volte

Somma da data inizio a data fine

Messaggio da bibi »

Ciao Enrico.

Purtroppo ho testato la formula ma non funziona.

Ti allego il file con il risultato desiderato.

Grazie.
Allegati
prova (1).xlsx
(201.17 KiB) Scaricato 11 volte
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Somma da data inizio a data fine

Messaggio da Enrico Galli »

Ciao, la formula aveva un errore e te la emendo:

Codice: Seleziona tutto

=
VAR DataInizio =
    IF (
        HASONEVALUE ( Periodi[Periodo] );
        [Data inizio]
            + MAX ( 'Periodi'[giorniDA] )
    )
VAR DataFine =
    IF (
        HASONEVALUE ( 'Periodi'[Periodo] );
        [Data inizio]
            + MAX ( 'Periodi'[giorniA] )
    )
VAR Result =
    CALCULATE (
        SUM ( Tabella1[Qty] );
        Tabella1[Data] >= DataInizio;
        Tabella1[Data] < DataFine
    )
RETURN
    Result
 
Detto questo, non avrai comunque il tuo risultato atteso, perché i mesi non durano 30 giorni e invece tu hai impostato dei periodi inizio-fine che seguono l'andamento dei mesi. Del resto non ho capito se i tuoi periodi inizio-fine sono arbitrari, li vuoi decidere e cambiare on the fly, o hanno qualche legame con la base dati. Se mi chiarisci questo punto, cerchiamo di trovare una soluzione migliore
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione

Autore del topic
bibi
Messaggi: 17 | Topic creati
Iscritto il: dom 28 feb 2021, 9:13
Ringraziato: 3 volte

Somma da data inizio a data fine

Messaggio da bibi »

Grazie per la disponibilità.

Purtroppo il codice non funziona: sulle colonne compaiono le date e non la quantità.

Per quanto riguarda il mio progetto, mi basterebbe lavorare solo sulla tabella dei periodi che hai creato, eliminando però il riferimento alla Tabella2 dei giorni. E' possibile?

In pratica, pensavo di inserire i giorni che voglio analizzare nella cella R13 e la tabella dovrebbe essere pronta. Se un prodotto è troppo vecchio anziché 30 giorni, inserisco 60 e analizzo i bimestri, oppure 90 per i trimestri, o 365 per l'anno, ecc. Non so se esiste una soluzione migliore...

Grazie.
Allegati
prova (1).xlsx
(202.05 KiB) Scaricato 23 volte
Rispondi