Pagina 1 di 1

Misura non funzionante

Inviato: gio 30 giu 2022, 11:32
da filippo66
Buongiorno.

Ho replicato in modo estremamente semplificato il mio modello.

Ottengo il costo di ciascun prodotto per ogni anno.

Se imposto la pivot con in riga l'anno e il codice non ci sono problemi, mentre se tolgo l'anno non ottengo il risultato desiderato.

Grazie per eventuali suggerimenti.

Misura non funzionante

Inviato: gio 30 giu 2022, 11:43
da Andrea90
filippo66,

Questa è la tua misura (l'ho leggermente modificata):

Codice: Seleziona tutto

=
VAR Anno =
    MAX ( Articoli[Anno] )
VAR Result =
    CALCULATE (
        SUM ( 'Costo orario'[Costo orario] );
        'Costo orario'[Anno] = Anno;
        'Costo orario'[DIPENDENTE] = "Rossi";
        CROSSFILTER ( 'Anno Univoco'[Anno]; 'Costo orario'[Anno]; BOTH )
    ) * [Conteggio Ore]
RETURN
    Result
Se tu togli l'anno dal report, quale valore assumerà la variabile VAR Anno ? Che utilizzi dentro alla variabile Result?

Capito questo, capirai dove risiede "l'errore" e come fare per risolverlo.

Andrea

Misura non funzionante

Inviato: gio 30 giu 2022, 12:08
da filippo66
Grazie Andrea90

Se tolgo l'anno, immagino che la variabile prenda il valore 2022, e infatti il valore riportato è 350.

Non riesco a proseguire perché il MAX dell'anno presente nella misura lo devo lasciare perché mi permette di calcolare correttamente il costo orario di ciascun dipendente per ogni anno...

Misura non funzionante

Inviato: gio 30 giu 2022, 12:13
da Andrea90
filippo66,

"il MAX dell'anno presente nella misura lo devo lasciare perché mi permette di calcolare correttamente il costo orario di ciascun dipendente per ogni anno"

Questo non è del tutto vero. E come hai intuito, a livello di totale non vale questa tua considerazione poiché a livello di totale devi mantenere distinte le righe della tua tabella "Ore Rossi", altrimenti lui ti prenderà solo quella relativa all'anno maggiore.

Quindi MAX non è indicato a livello di subtotale.

Ma prima di questo direi che c'è un'altra considerazione che devi fare:

Nel tuo report stai utilizzando i campi della tabella "Ore Rossi", intendo come Anno e Codice, ma cosa comporta questo?

Immagine

DAX è un linguaggio "semplice", ma non facile... Bisogna studiare bene i modelli dati, perché utilizzare un campo "Codice" preso da una tabella piuttosto che un'altra, porta a risultati completamente diversi.

Andrea

Misura non funzionante

Inviato: gio 30 giu 2022, 12:28
da filippo66
Quindi per risolvere il mio problema, come mi consigli di procedere?

Misura non funzionante

Inviato: gio 30 giu 2022, 12:32
da Andrea90
filippo66,

Se hai capito il motivo per il quale il report (tabella pivot) così come da te impostato non funziona correttamente bene, altrimenti ti consiglio di studiare prima come funzionano i modelli dati: viewtopic.php?t=36

Altrimenti se ti do una possibile soluzione, ma poi tu non conosci le motivazioni che ci sono dietro penso sia inutile, poiché non sarai mai autonomo nello sviluppo di reportistiche.

Andrea

Misura non funzionante

Inviato: gio 30 giu 2022, 13:27
da filippo66
Andrea90

certamente i tuoi consigli sullo studio e l'apprendimento sono ben accetti e ti ringrazio. Concordo pienamente su tutto quello che hai detto...

Tuttavia, avendo la necessità di sviluppare il report in tempi ragionevoli, che purtroppo non coincidono con quelli necessari allo studio, potresti indicarmi a grandi linee se non la formula, il come poterla sviluppare?

Se non ti è possibile, grazie lo stesso.

Misura non funzionante

Inviato: gio 30 giu 2022, 13:33
da Andrea90
filippo66,

Per prima cosa devi inserire i giusti campi all'interno della tua pivot.

E come seconda cosa creerei una misura che esegua un SUMMARIZE della tua tabella Ore Rossi cosi da avere i campi Anno e Codice, più un campo calcolato che esegua semplicemente il prodotto tra Ore e Costo Orario.

Come ultimo fare un SUMX della tabella calcolata al punto precedente (sto parlando di Variabili all'interno della stessa misura).

Qualcosa di simile la trovi nel file allegato:

Codice: Seleziona tutto

=
VAR TempTab =
    ADDCOLUMNS (
        SUMMARIZE ( 'Ore Rossi'; 'Anno Univoco'[Anno]; 'Articoli Unici'[Codice] );
        "@CostoOrario";
            CALCULATE ( SUM ( 'Costo orario'[Costo orario] ) )
                * CALCULATE ( SUM ( 'Ore Rossi'[Ore] ) )
    )
VAR Result =
    SUMX ( TempTab; [@CostoOrario] )
RETURN
    Result
Andrea