Analisi Consumi - Eliminazione Righe periodi futuri 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


Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Analisi Consumi - Eliminazione Righe periodi futuri

Messaggio da Gennaro_64 »

Buon giorno,

Ho una base dati di circa due anni di consumi
Immagine

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

Immagine

Non mi piace, invece, che nel report compaia il valore del costo medio unitario dell'AP in corrispondenza di periodi dell'AC futuri.

Immagine

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).

Immagine

Perché?
Dove ho sbagliato?

Allego il file excel per ogni valutazione.
Grazie.
gennaro
Allegati
Analisi Costo Energia.xlsx
(259.66 KiB) Scaricato 8 volte


Avatar utente

Andrea90
Messaggi: 2193 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 666 volte
Contatta:

Analisi Consumi - Eliminazione Righe periodi futuri

Messaggio da Andrea90 »

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
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Analisi Consumi - Eliminazione Righe periodi futuri

Messaggio da Gennaro_64 »

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.
Andrea90 ha scritto: sab 20 ago 2022, 14:11 In questo modo aggiungerai nel campo dei filtri questo campo flag
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?

Immagine

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 9 volte
Avatar utente

Andrea90
Messaggi: 2193 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 666 volte
Contatta:

Analisi Consumi - Eliminazione Righe periodi futuri

Messaggio da Andrea90 »

Gennaro_64,

Mi spieghi la logica che hai applicato per questa formula?

Codice: Seleziona tutto

= IF('Calendar'[Date]<[MinData];0; IF('Calendar'[Date]>[MaxData];0;1))
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
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Analisi Consumi - Eliminazione Righe periodi futuri

Messaggio da Gennaro_64 »

Ciao Andrea90,
Andrea90 ha scritto: sab 20 ago 2022, 20:13 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.
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?
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"
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.
Come avrei dovuto scrivere la formula perché tutti i valori flag diventassero 1 ?

Grazie comunque per la pazienza ... :)

Gennaro
Avatar utente

Andrea90
Messaggi: 2193 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 666 volte
Contatta:

Analisi Consumi - Eliminazione Righe periodi futuri

Messaggio da Andrea90 »

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
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Analisi Consumi - Eliminazione Righe periodi futuri

Messaggio da Gennaro_64 »

Andrea90
Andrea90 ha scritto: sab 20 ago 2022, 21:51 Prova a creare un nuovo campo calcolato nella tabella calendario con il solo valore di [MinData] e vedrai che cosa ottieni.
Ok
Andrea90 ha scritto: sab 20 ago 2022, 21:51 Il motivo è spiegato dal concetto di “Context Transition” che ti suggerisco di studiare.
Ci provo ... :)

PS: io ho trovato una soluzione alternativa ... ma voglio capire/imparare ... :)
Grazie Andrea90 di tutto.

Gennaro

Autore del topic
Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Analisi Consumi - Eliminazione Righe periodi futuri

Messaggio da Gennaro_64 »

Ciao Andrea90 ,
Andrea90 ha scritto: sab 20 ago 2022, 20:13 Inoltre, errore ancora più grave, cosa succede se utilizzi una misura in un campo calcolato?
Andrea90 ha scritto: sab 20 ago 2022, 21:51 Prova a creare un nuovo campo calcolato nella tabella calendario con il solo valore di [MinData] e vedrai che cosa ottieni.
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

Immagine

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
Avatar utente

Andrea90
Messaggi: 2193 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 666 volte
Contatta:

Analisi Consumi - Eliminazione Righe periodi futuri

Messaggio da Andrea90 »

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
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Analisi Consumi - Eliminazione Righe periodi futuri

Messaggio da Gennaro_64 »

Andrea90
Ah, ecco il perché.
Andrea90 ha scritto: dom 21 ago 2022, 7:25 per come hai scritto la misura, avresti ottenuto 1 solo sulle righe di calendario che corrispondono alle date presenti nella tabella dei consumi.
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
Rispondi