Differenza in giorni tra date non successive L’argomento è risolto
Moderatore: Utilizzo_prof_Excel
-
- Messaggi: 107 | Topic creati
- Iscritto il: dom 11 apr 2021, 12:47
- Ringraziato: 5 volte
Differenza in giorni tra date non successive
Buon giorno,
Mi trovo di fronte ad un estratto conto bancario dove i vari movimenti nel tempo danno luogo a dei saldi progressivi che restano invariati (in giacenza) per un determinato numero di giorni, fino al successivo movimento.
Il numero dei giorni di giacenza è la differenza tra le due date dei movimenti.
Avrei bisogno di calcolare questa differenza, ma non posso utilizzare la funzione "DATEADD(<dates>,<number_of_intervals>,<interval>)" perché non dispongo di un numero definito di intervalli tra una data e l'altra.
Nell'immagine di seguito a titolo di esempio, il saldo progressivo di 627 euro resta invariato (in giacenza) dal 02 al 07 Luglio, quindi un intervallo (13 gg) non definito, variabile (infatti il successivo è di 42 giorni).
Quale funzione potrei utilizzare per calcolare questo intervallo temporale variabile?
Allego il file per ogni valutazione.
Grazie
g
Mi trovo di fronte ad un estratto conto bancario dove i vari movimenti nel tempo danno luogo a dei saldi progressivi che restano invariati (in giacenza) per un determinato numero di giorni, fino al successivo movimento.
Il numero dei giorni di giacenza è la differenza tra le due date dei movimenti.
Avrei bisogno di calcolare questa differenza, ma non posso utilizzare la funzione "DATEADD(<dates>,<number_of_intervals>,<interval>)" perché non dispongo di un numero definito di intervalli tra una data e l'altra.
Nell'immagine di seguito a titolo di esempio, il saldo progressivo di 627 euro resta invariato (in giacenza) dal 02 al 07 Luglio, quindi un intervallo (13 gg) non definito, variabile (infatti il successivo è di 42 giorni).
Quale funzione potrei utilizzare per calcolare questo intervallo temporale variabile?
Allego il file per ogni valutazione.
Grazie
g
- Allegati
-
- Differenza_Date_Progressive.xlsx
- (599.25 KiB) Scaricato 20 volte
-
- Messaggi: 2237 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 671 volte
- Contatta:
Differenza in giorni tra date non successive
Gennaro_64,
Sinceramente non ne capisco la logica del perché tu ponga il risultato 13 sulla riga del 2 luglio, per me i 13 giorni sono sulla riga del 15/07, mentre quella del 02/07 deve rimanere vuota poiché non ci sono movimenti antecedenti.
Comunque una bozza di calcolo:
Andrea
Sinceramente non ne capisco la logica del perché tu ponga il risultato 13 sulla riga del 2 luglio, per me i 13 giorni sono sulla riga del 15/07, mentre quella del 02/07 deve rimanere vuota poiché non ci sono movimenti antecedenti.
Comunque una bozza di calcolo:
Codice: Seleziona tutto
=
VAR CurDate =
MAX ( Movimenti[Data] )
VAR TempTab =
CALCULATETABLE (
FILTER ( ALL ( Movimenti[Data] ); Movimenti[Data] < CurDate );
KEEPFILTERS ( Calendario[Anno] )
)
VAR MaxDatePrev =
CALCULATE ( MAXX ( TempTab; Movimenti[Data] ) )
VAR TableCount =
COUNTROWS (
FILTER (
ALL ( Calendario[Data] );
Calendario[Data]
>= DATE ( YEAR ( MaxDatePrev ); MONTH ( MaxDatePrev ); DAY ( MaxDatePrev ) )
&& Calendario[Data] < DATE ( YEAR ( CurDate ); MONTH ( CurDate ); DAY ( CurDate ) )
)
)
VAR Result =
IF ( ISBLANK ( MaxDatePrev ); BLANK (); TableCount )
RETURN
Result
-
Autore del topic - Messaggi: 107 | Topic creati
- Iscritto il: dom 11 apr 2021, 12:47
- Ringraziato: 5 volte
Differenza in giorni tra date non successive
Ciao Andrea90
Inutile dire che funziona perfettamente.
In uno dei topic che leggevo nel forum, un utente esordiva "... ho letto che con il DAX si fanno miracoli ...". Aveva ragione. Ed anche questa tua misura appena creata .. fa miracoli.
Hai aggiunto abbastanza funzioni nuove per me che ne avrò da studiare e cercare di capire.
Un grande grazie con tanta stima..
Mi chiedevi perché ho posizionato il risultato dell'esempio sulla riga del 2 luglio.
Bene. Per quanto il risultato della misura è dato dalla differenza delle due date e quindi, correttamente, tu lo hai collocato sulla riga successiva del 15 luglio, in realtà, nei contesti bancari, quel risultato diventa un fattore della moltiplicazione per il saldo disponibile e in giacenza dal 2 luglio.
In altre parole, la nuova misura che andrò a creare per il calcolo degli interessi ad esempio, moltiplicherà il saldo progressivo (YTD) presente sulla riga del 2 luglio per il periodo (risultato della tua misura), presente sulla riga successiva, per il tasso di interesse diviso 365.
E questo risultato è bene che stia nella riga del 2 luglio.
Spero di avere chiarito.
PS: Mi studio la formula e poi passo alle domande ... di nuovo grazie
gennaro
Inutile dire che funziona perfettamente.
In uno dei topic che leggevo nel forum, un utente esordiva "... ho letto che con il DAX si fanno miracoli ...". Aveva ragione. Ed anche questa tua misura appena creata .. fa miracoli.
Hai aggiunto abbastanza funzioni nuove per me che ne avrò da studiare e cercare di capire.
Un grande grazie con tanta stima..
Mi chiedevi perché ho posizionato il risultato dell'esempio sulla riga del 2 luglio.
Bene. Per quanto il risultato della misura è dato dalla differenza delle due date e quindi, correttamente, tu lo hai collocato sulla riga successiva del 15 luglio, in realtà, nei contesti bancari, quel risultato diventa un fattore della moltiplicazione per il saldo disponibile e in giacenza dal 2 luglio.
In altre parole, la nuova misura che andrò a creare per il calcolo degli interessi ad esempio, moltiplicherà il saldo progressivo (YTD) presente sulla riga del 2 luglio per il periodo (risultato della tua misura), presente sulla riga successiva, per il tasso di interesse diviso 365.
E questo risultato è bene che stia nella riga del 2 luglio.
Spero di avere chiarito.
PS: Mi studio la formula e poi passo alle domande ... di nuovo grazie
gennaro
-
- Messaggi: 890 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:03
- Luogo: San Giovanni in Persiceto (BO)
- Ringraziato: 325 volte
- Contatta:
Differenza in giorni tra date non successive
Ciao a tutti, come sempre io arrivo dopo che Andrea90 ha già fatto il lavoro di fatica
Mi piace comunque proporre un'alternativa, magari anche peggiore, tanto per confrontarsi:
Mi piace comunque proporre un'alternativa, magari anche peggiore, tanto per confrontarsi:
Codice: Seleziona tutto
=
VAR CurDate =
MAX ( Movimenti[Data] )
VAR TempTab =
CALCULATETABLE ( ALLSELECTED ( Movimenti[Data] ); Movimenti[Data] < CurDate )
VAR MaxDatePrev =
MAXX ( TempTab; Movimenti[Data] )
VAR DaysCount = INT ( CurDate - MaxDatePrev )
VAR Result =
IF ( ISBLANK ( MaxDatePrev ); BLANK (); DaysCount )
RETURN
Result
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
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 - Messaggi: 107 | Topic creati
- Iscritto il: dom 11 apr 2021, 12:47
- Ringraziato: 5 volte
Differenza in giorni tra date non successive
Andrea90 e Enrico Galli ,
Grazie ad entrambi per la ricchezza di informazioni.
Ovviamente non è stato facile per me: ho studiato a fondo la risposta di Andrea90 e l'ho capita (quindi oggi la tua Enrico Galli , mi viene facile leggerla e capirla ... ).
Damande:
1) Come possiamo "spostare" il tutto con partenza dalla riga 02/07/2019?
Perché, in questo caso pratico, è quel saldo progressivo che resta invariato per il numero dei giorni calcolati con le vostre preziose misure e non quello che verrebbe rappresentato nella riga 15/07/2019.
Anche perché io ho bisogno di moltiplicare quel saldo progressivo (presente sulla riga 02/07/2019) con il numero dei giorni (presente sulla riga del 15/07/2019).
2) Andrea90 , tu hai utilizzato la funzione KEEPFILTERS ( Calendario[Anno] )
Al fine di migliorare la conoscenza del DAX, qual'è stato il tuo ragionamento nel voler filtrare/fissare l'anno della Calendar?
Ciao e di nuovo grazie ad entrambi.
gennaro
Grazie ad entrambi per la ricchezza di informazioni.
Ovviamente non è stato facile per me: ho studiato a fondo la risposta di Andrea90 e l'ho capita (quindi oggi la tua Enrico Galli , mi viene facile leggerla e capirla ... ).
Damande:
1) Come possiamo "spostare" il tutto con partenza dalla riga 02/07/2019?
Perché, in questo caso pratico, è quel saldo progressivo che resta invariato per il numero dei giorni calcolati con le vostre preziose misure e non quello che verrebbe rappresentato nella riga 15/07/2019.
Anche perché io ho bisogno di moltiplicare quel saldo progressivo (presente sulla riga 02/07/2019) con il numero dei giorni (presente sulla riga del 15/07/2019).
2) Andrea90 , tu hai utilizzato la funzione KEEPFILTERS ( Calendario[Anno] )
Al fine di migliorare la conoscenza del DAX, qual'è stato il tuo ragionamento nel voler filtrare/fissare l'anno della Calendar?
Ciao e di nuovo grazie ad entrambi.
gennaro
-
- Messaggi: 890 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:03
- Luogo: San Giovanni in Persiceto (BO)
- Ringraziato: 325 volte
- Contatta:
Differenza in giorni tra date non successive
Per la versione "giorni fino al prossimo movimento" prova così:
Per quanto riguarda KEEPFILTERS, è un modificatore di CALCULATE che fa in modo da non sovrascrivere i filtri del contesto con quelli di CALCULATE, ma li "unisce". In questo caso, ALL ( Movimenti[DATA] ) toglierebbe tutti i filtri da quella colonna, ma con il modificatore impostato sulla colonna Anno di calendario fai sì che il filtro (esterno, nel tuo caso) sull'anno sia ancora preso in considerazione
Codice: Seleziona tutto
=
VAR CurDate =
MAX ( Movimenti[Data] )
VAR TempTab =
CALCULATETABLE ( ALLSELECTED ( Movimenti[Data] ); Movimenti[Data] > CurDate )
VAR MinDataSucc =
MINX ( TempTab; Movimenti[Data] )
VAR DaysCount = INT(MinDataSucc - CurDate)
VAR Result =
IF ( ISBLANK ( CurDate ); BLANK (); DaysCount )
RETURN
Result
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
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 - Messaggi: 107 | Topic creati
- Iscritto il: dom 11 apr 2021, 12:47
- Ringraziato: 5 volte