Analisi Consumi - Eliminazione Righe periodi futuri L’argomento è risolto
Moderatore: Utilizzo_prof_Excel
-
- Messaggi: 107 | Topic creati
- Iscritto il: dom 11 apr 2021, 12:47
- Ringraziato: 5 volte
Analisi Consumi - Eliminazione Righe periodi futuri
Buon giorno,
Ho una base dati di circa due anni di consumi
e, mettendo a confronto i vari periodi, vorrei analizzare la variazione dei prezzi (assoluta e percentuale) che è intervenuta nel costo unitario.
Nessun problema (di rappresentazione nel report) per la misura del costo medio unitario dell'Anno Corrente
Non mi piace, invece, che nel report compaia il valore del costo medio unitario dell'AP in corrispondenza di periodi dell'AC futuri.
Per cui, ho pensato di "integrare" la misura che ho creato con "ISFILTERED", creandone delle nuove
=IF(ISFILTERED('Calendar'[Date]);
CALCULATE([CostoMedioAC]; SAMEPERIODLASTYEAR('Calendar'[Date]));
BLANK()
)
ma non funzionano (addirittura scompaiono i valori che senza "ISFILTERED" erano presenti).
Perché?
Dove ho sbagliato?
Allego il file excel per ogni valutazione.
Grazie.
gennaro
Ho una base dati di circa due anni di consumi
e, mettendo a confronto i vari periodi, vorrei analizzare la variazione dei prezzi (assoluta e percentuale) che è intervenuta nel costo unitario.
Nessun problema (di rappresentazione nel report) per la misura del costo medio unitario dell'Anno Corrente
Non mi piace, invece, che nel report compaia il valore del costo medio unitario dell'AP in corrispondenza di periodi dell'AC futuri.
Per cui, ho pensato di "integrare" la misura che ho creato con "ISFILTERED", creandone delle nuove
=IF(ISFILTERED('Calendar'[Date]);
CALCULATE([CostoMedioAC]; SAMEPERIODLASTYEAR('Calendar'[Date]));
BLANK()
)
ma non funzionano (addirittura scompaiono i valori che senza "ISFILTERED" erano presenti).
Perché?
Dove ho sbagliato?
Allego il file excel per ogni valutazione.
Grazie.
gennaro
- Allegati
-
- Analisi Costo Energia.xlsx
- (259.66 KiB) Scaricato 9 volte
-
- Messaggi: 2329 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
Analisi Consumi - Eliminazione Righe periodi futuri
Gennaro_64,
Aggiungi semplicemente una colonna calcolata nella tua tabella calendario, con un flag 0/1 a seconda che una data sia precedente/seguente a quella massima da te indicata (puoi rendere anche il calcolo dinamico).
In questo modo aggiungerai nel campo dei filtri questo campo flag ed imposterai la visualizzazione dei soli record con flag 0 o 1.
Andrea
Aggiungi semplicemente una colonna calcolata nella tua tabella calendario, con un flag 0/1 a seconda che una data sia precedente/seguente a quella massima da te indicata (puoi rendere anche il calcolo dinamico).
In questo modo aggiungerai nel campo dei filtri questo campo flag ed imposterai la visualizzazione dei soli record con flag 0 o 1.
Andrea
-
Autore del topic - Messaggi: 107 | Topic creati
- Iscritto il: dom 11 apr 2021, 12:47
- Ringraziato: 5 volte
Analisi Consumi - Eliminazione Righe periodi futuri
Ciao Andrea90 ,
Grazie per la dritta.
Problema risolto, ho creato, come da te suggerito, la nuova colonna "Flag" nella calendar con valore 0/1 e mi piace, anche concettualmente, come soluzione.
Ho ripiegato quindi per una integrazione della misura ponendo la condizione che il "flag" sia uguale ad "1" ed ha funzionato (con un percorso un po' tortuoso, ma ha funzionato).
Domanda 1: è esattamente questo che intendevi come soluzione?
Domanda 2:
Questa è la misura che io avevo pensato di scrivere dopo l'errore nel filtro della pivor. Perché va in errore?
Domanda 3:
Ma perché non ha funzionato
=IF(ISFILTERED('Calendar'[Date]);
CALCULATE([CostoMedioAC]; SAMEPERIODLASTYEAR('Calendar'[Date]));
BLANK()
)
A me sembra (concettualmente) più lineare. Non trovi?
Domanda 4:
Va bene la misura che ho creato oppure ne avresti suggerita un'altra, magari più semplice?
=IF(Max('Calendar'[Flag])=1;
CALCULATE([CostoMedioAC]; SAMEPERIODLASTYEAR('Calendar'[Date]));
BLANK()
)
Ri-allego il file per eventuali valutazioni.
Grazie
Gennaro
Grazie per la dritta.
Problema risolto, ho creato, come da te suggerito, la nuova colonna "Flag" nella calendar con valore 0/1 e mi piace, anche concettualmente, come soluzione.
Di primo acchito, io avevo inserito il nuovo campo "Flag" nel riquadro filtri della pivot che è andata in errore.
Ho ripiegato quindi per una integrazione della misura ponendo la condizione che il "flag" sia uguale ad "1" ed ha funzionato (con un percorso un po' tortuoso, ma ha funzionato).
Domanda 1: è esattamente questo che intendevi come soluzione?
Domanda 2:
Questa è la misura che io avevo pensato di scrivere dopo l'errore nel filtro della pivor. Perché va in errore?
Domanda 3:
Ma perché non ha funzionato
=IF(ISFILTERED('Calendar'[Date]);
CALCULATE([CostoMedioAC]; SAMEPERIODLASTYEAR('Calendar'[Date]));
BLANK()
)
A me sembra (concettualmente) più lineare. Non trovi?
Domanda 4:
Va bene la misura che ho creato oppure ne avresti suggerita un'altra, magari più semplice?
=IF(Max('Calendar'[Flag])=1;
CALCULATE([CostoMedioAC]; SAMEPERIODLASTYEAR('Calendar'[Date]));
BLANK()
)
Ri-allego il file per eventuali valutazioni.
Grazie
Gennaro
- Allegati
-
- Analisi Costo Energia.xlsx
- (350.7 KiB) Scaricato 10 volte
-
- Messaggi: 2329 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
Analisi Consumi - Eliminazione Righe periodi futuri
Gennaro_64,
Mi spieghi la logica che hai applicato per questa formula?
Il motivo per il quale chiedo questo è che la colonna flag di una tabella calendario, pensata per impostare la data come antecedente/seguente ad una data "fissa" (ad esempio la data odierna), dovrebbe avere la seguente logica:
"se data riga corrente è <= a data "fissa" allora 1 altrimenti 0"
N.B. come l'hai impostata tu cosa succede se la data odierna è uguale a quella [MinData] ? Ottieni 0 o 1? È il risultato atteso?
Se invece utilizzi la tua formula vedrai che ci sono date con 0 od 1 anche in righe alternate. Ecco perché se lo utilizzi come campo nell'area filtro ricevi un messaggio di errore.
Inoltre, errore ancora più grave, cosa succede se utilizzi una misura in un campo calcolato?
Andrea
Mi spieghi la logica che hai applicato per questa formula?
Codice: Seleziona tutto
= IF('Calendar'[Date]<[MinData];0; IF('Calendar'[Date]>[MaxData];0;1))
"se data riga corrente è <= a data "fissa" allora 1 altrimenti 0"
N.B. come l'hai impostata tu cosa succede se la data odierna è uguale a quella [MinData] ? Ottieni 0 o 1? È il risultato atteso?
Se invece utilizzi la tua formula vedrai che ci sono date con 0 od 1 anche in righe alternate. Ecco perché se lo utilizzi come campo nell'area filtro ricevi un messaggio di errore.
Inoltre, errore ancora più grave, cosa succede se utilizzi una misura in un campo calcolato?
Andrea
-
Autore del topic - Messaggi: 107 | Topic creati
- Iscritto il: dom 11 apr 2021, 12:47
- Ringraziato: 5 volte
Analisi Consumi - Eliminazione Righe periodi futuri
Ciao Andrea90,
Hai ragione. Non mi ero accorto di questa cosa. Anche se, confesso, non riesco ancora a capirne il perché.
Ad esempio: tutte le date della calendar inferiori al 06-02-2021 (MinData) hanno flag zero. Quindi la formula ha funzionato.
Ed anche tutte le date della calendar superiori al 06-08-2022 (MaxData) hanno flag zero ed anche qui la formula ha funzionato.
Non capisco perché le date della calendar intermedie non hanno tutte il valore flag pari a 1.
Non dovrebbe essere l' "else" della formula IF che io ho utilizzato?
Perché non ha funzionato?
Come avrei dovuto scrivere la formula perché tutti i valori flag diventassero 1 ?
Grazie comunque per la pazienza ...
Gennaro
Ho capito perché inserendo il campo nel riquadro del filtro della pivot va in errore: ci sono righe alternate 0 ed 1.
Hai ragione. Non mi ero accorto di questa cosa. Anche se, confesso, non riesco ancora a capirne il perché.
Ad esempio: tutte le date della calendar inferiori al 06-02-2021 (MinData) hanno flag zero. Quindi la formula ha funzionato.
Ed anche tutte le date della calendar superiori al 06-08-2022 (MaxData) hanno flag zero ed anche qui la formula ha funzionato.
Non capisco perché le date della calendar intermedie non hanno tutte il valore flag pari a 1.
Non dovrebbe essere l' "else" della formula IF che io ho utilizzato?
Perché non ha funzionato?
Chiarissima la logica. Ed io ero convinto di averla applicata, ho considerato infatti "data fissa", anzi "date fisse", come sopra spiegato, la MinData e la MaxData.Andrea90 ha scritto: ↑sab 20 ago 2022, 20:13 Il motivo per il quale chiedo questo è che la colonna flag di una tabella calendario, pensata per impostare la data come antecedente/seguente ad una data "fissa" (ad esempio la data odierna), dovrebbe avere la seguente logica:
"se data riga corrente è <= a data "fissa" allora 1 altrimenti 0"
Come avrei dovuto scrivere la formula perché tutti i valori flag diventassero 1 ?
Grazie comunque per la pazienza ...
Gennaro
-
- Messaggi: 2329 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
Analisi Consumi - Eliminazione Righe periodi futuri
Gennaro_64,
Prova a creare un nuovo campo calcolato nella tabella calendario con il solo valore di [MinData] e vedrai che cosa ottieni.
Il motivo è spiegato dal concetto di “Context Transition” che ti suggerisco di studiare.
Andrea
Prova a creare un nuovo campo calcolato nella tabella calendario con il solo valore di [MinData] e vedrai che cosa ottieni.
Il motivo è spiegato dal concetto di “Context Transition” che ti suggerisco di studiare.
Andrea
-
Autore del topic - Messaggi: 107 | Topic creati
- Iscritto il: dom 11 apr 2021, 12:47
- Ringraziato: 5 volte
Analisi Consumi - Eliminazione Righe periodi futuri
Andrea90
PS: io ho trovato una soluzione alternativa ... ma voglio capire/imparare ...
Grazie Andrea90 di tutto.
Gennaro
Ok
Ci provo ...
PS: io ho trovato una soluzione alternativa ... ma voglio capire/imparare ...
Grazie Andrea90 di tutto.
Gennaro
-
Autore del topic - Messaggi: 107 | Topic creati
- Iscritto il: dom 11 apr 2021, 12:47
- Ringraziato: 5 volte
Analisi Consumi - Eliminazione Righe periodi futuri
Ciao Andrea90 ,
Ho sostituito alle misure le formule ed ha funzionato
Adesso il campo Flag presenta tutti i valori 1 in corrispondenza dell'arco temporale della mia base dati ed è perfettamente funzionante se utilizzato nel riquadro filtri della pivot.
Grazie Andrea90
Gennaro
Ho capito. Va in errore. La formula di una colonna/campo calcolato di una tabella non vuole misure.
Ho sostituito alle misure le formule ed ha funzionato
Adesso il campo Flag presenta tutti i valori 1 in corrispondenza dell'arco temporale della mia base dati ed è perfettamente funzionante se utilizzato nel riquadro filtri della pivot.
Grazie Andrea90
Gennaro
-
- Messaggi: 2329 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
Analisi Consumi - Eliminazione Righe periodi futuri
Gennaro_64,
No non va in errore, le puoi utilizzare tranquillamente, ma una misura viene “implicitamente” racchiusa da un CALCULATE, e se la utilizzi dentro ad un contesto riga, come appunto un campo calcolato di una tabella, per via del “context transition”, quel contesto riga diventa contesto filtro e pertanto, per come hai scritto la misura, avresti ottenuto 1 solo sulle righe di calendario che corrispondono alle date presenti nella tabella dei consumi.
Andrea
No non va in errore, le puoi utilizzare tranquillamente, ma una misura viene “implicitamente” racchiusa da un CALCULATE, e se la utilizzi dentro ad un contesto riga, come appunto un campo calcolato di una tabella, per via del “context transition”, quel contesto riga diventa contesto filtro e pertanto, per come hai scritto la misura, avresti ottenuto 1 solo sulle righe di calendario che corrispondono alle date presenti nella tabella dei consumi.
Andrea
-
Autore del topic - Messaggi: 107 | Topic creati
- Iscritto il: dom 11 apr 2021, 12:47
- Ringraziato: 5 volte
Analisi Consumi - Eliminazione Righe periodi futuri
Andrea90
Ah, ecco il perché.
Tutto più chiaro.
Grazie. Alla prossima.
Gennaro
Ah, ecco il perché.
Puoi togliere il condizionale: è esattamente quello che è accaduto quando ho posto le due condizioni utilizzando le misure MaxData e MinData nella colonna calcolata.
Tutto più chiaro.
Grazie. Alla prossima.
Gennaro