Consumi contatori in sottolettura

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

Consumi contatori in sottolettura

Messaggio da Gennaro_64 »

Buona sera,
In un condominio esiste un contatore generale e dei contatori in sottolettura per i singoli condomini.
Annualmente vengono rilevate le letture.
La differenza tra la lettura dell'anno corrente e quella dell'anno precedente rappresenta il consumo del singolo condomino per l'anno considerato.
Per i consumi condominiali (innaffiamento aiuole, etc.) al risultato come sopra calcolato per il singolo anno, va sottratta anche la somma dei consumi di tutti i condomini, cioè di tutti i contatori in sottolettura.
Sono riuscito a definire le misure per calcolare i consumi dei singoli contatori e quelli cumulati in sottolettura.
Non riesco a definire una misura che mi fornisca il consumo "netto" per il contatore generale e, contestualmente, mi mostri i consumi degli altri utenti.
Ci ho provato (cfr misura = "Consumo2"), ma non funziona.
Mi potete aiutare a venirne a capo please.
Allego il file con i dati e le misure create.
Grazie
Allegati
Contatori in Sottolettura.xlsx
(573.63 KiB) Scaricato 32 volte


Avatar utente

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

Consumi contatori in sottolettura

Messaggio da Andrea90 »

Gennaro_64,

Puoi allegare il risultato desiderato scritto a mano?

Così da capire meglio che cosa vorresti ottenere ?

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

Consumi contatori in sottolettura

Messaggio da Gennaro_64 »

Buuon giorno Andrea90
Allego un'immagine. Fammi sapere se è abbastanza chiara


Immagine
Avatar utente

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

Consumi contatori in sottolettura

Messaggio da Andrea90 »

Gennaro_64,

Prova la seguente come misura Consumo:

Codice: Seleziona tutto

=
VAR Lettura = [Lettura_AC] - [Lettura_AP]
VAR Generale_Val =
    SWITCH (
        TRUE ();
        IFERROR ( VALUES ( Letture[Utente] ) = "Generale"; TRUE () );
            Lettura
                - CALCULATE ( [Lettura_AC] - [Lettura_AP]; Letture[Utente] <> "Generale" );
        Lettura
    )
VAR Result =
    IF (
        ISFILTERED ( Letture[Utente] );
        Generale_Val;
        CALCULATE ( [Lettura_AC] - [Lettura_AP]; Letture[Utente] = "Generale" )
    )
RETURN
    Result
Poi sostituirei le altre due misure delle letture con le seguenti:

Lettura AP:

Codice: Seleziona tutto

=
IF (
    ISFILTERED ( Letture[Utente] );
    CALCULATE ( [Lettura_AC]; DATEADD ( Calendario[Data]; -1; YEAR ) );
    BLANK ()
)
Lettura AC:

Codice: Seleziona tutto

=
IF (
    ISFILTERED ( Letture[Utente] );
    CALCULATE ( SUM ( 'Letture'[Lettura] ); YEAR ( 'Letture'[Data] ) );
    BLANK ()
)
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

Consumi contatori in sottolettura

Messaggio da Gennaro_64 »

Caro Andrea90 ,
Innanzitutto grazie.
Inutile dire che funziona perfettamente.
Ora devo capire e studiare tutte le funzioni che per me sono nuove ... :)
Di nuovo grazie
g

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

Consumi contatori in sottolettura

Messaggio da Gennaro_64 »

Buon giorno Andrea90 ,
Ho bisogno di capire per applicare le tue funzioni anche in futuro,anche in altri contesti.
Vado con le domande.

La tua misura "Lettura AC" è sicuramente ottima

Immagine

Nel riquadro ho evidenziato invece quella che ho utilizzato io.
Nel riquadro che segue le ho messe a confronto

Immagine

Tu hai usato la funzione "ISFILTERED" come test della funzione IF.
Il risultato è perfetto perché nella pivot la tua misura non somma le letture (perché non avrebbe un senso logico).
Quindi "ISFILTERED" ha questo scopo? Restituisce "true", cioè è verificata solo per i valori del campo utente presenti nella pivot.
Non costituisce valore del campo utente il totale della colonna che, grazie alla funzione IF, resta blank.
Corretta la mia interpretazione?
Grazie.
Avatar utente

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

Consumi contatori in sottolettura

Messaggio da Andrea90 »

Gennaro_64,

Il DAX ragiona per contesti valutativi (contesto riga + contesto filtro), pertanto con la stessa misura [Lettura AC] fornisce 5 valori diversi (per ciascuna riga della pivot), perché ognuna di quelle righe rappresenta un contesto valutativo differente.

Ad esempio in riga 1, la Pivot considera l'intera tabella dei fatti, ma filtrata per le sole righe relative all'Utente 1.

La riga del totale è diversa, ovvero in quel caso non è più attivo il filtro del campo [Utente], e dunque considera tutti i dati della tabella, indipendentemente da quale sia l'utente.

ISFILTERED (https://dax.guide/isfiltered/), consente di verificare quando una data cella (contesto valutativo), sia affetto dal filtro applicato ad uno specifico campo.

Scrivere dunque ISFILTERED(Letture[Utente]) riporterà TRUE sulle righe in cui esiste un dato utente, ma non sulla riga di totale.

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

Consumi contatori in sottolettura

Messaggio da Gennaro_64 »

Andrea90
Chiarissimo.
Thks

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

Consumi contatori in sottolettura

Messaggio da Gennaro_64 »

Ciao Andrea90,
Seconda domanda: la variabile "Generale_Val".
Immagine
Ho isolato nel riquadro rosso una "porzione" della variabile.
Me la spieghi per favore? Concettualmente ed anche secondo i canoni DAX.
E' sicuramente geniale, ma non riesco a decodificarla (il TRUE, IFERROR. VALUES e poi di nuovo TRUE) :(
Grazie.
g
Avatar utente

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

Consumi contatori in sottolettura

Messaggio da Andrea90 »

Gennaro_64,

Values riporta un valore scalare solo se la tabella risultante è composta da una sola riga e da una sola colonna.

A livello di totale questo può portare ad un problema e se non utilizzavo quella porzione di codice li, excel ti riportava un messaggio di errore ad ogni aggiornamento della pivot (in realtà poi il calcolo funzionava e restituiva il valore corretto).

Per evitare questa cosa ho aggiunto quella porzione di codice.

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
Rispondi