Creazione di una misura che faccia la somma di dati di timesheet iniziando a contare da una data variabile

Il software per la BI di Microsoft, leader nel mercato
Rispondi

elyfiora
Messaggi: 26 | Topic creati
Iscritto il: mer 7 apr 2021, 19:39
Ringraziato: 1 volta

Creazione di una misura che faccia la somma di dati di timesheet iniziando a contare da una data variabile

Messaggio da elyfiora »

Buongiorno,

io ho una tabella di dati di timesheet, ovvero una riga per ogni attività che un utente svolge con la data e la chiave del progetto relativo all'attività.
Questa tabella è legata tramite la chiave data al calendario.

Inoltre questa tabella è legata tramite la chiave progetto ad una dimensione Project che contiene in modo univoco l'elenco dei progetti e una data che corrisponde dalla data di inizio del progetto.

Vorrei creare una misura che faccia: la somma delle giornate tracciate nella tabella di timesheet, per tutti i progetti, nel tempo (quindi analisi di trend), dove però si sommano le giornate solo a partire dalla data di inizio che varia da progetto a progetto e che è indicata nella tabella Project.

Nella tabella di timesheet, infatti, ci sono anche dati per date antecedenti a quella indicata come inizio progetto nella tabella del project.
Io vorrei contare solo i dati che ci sono a partire dalla data indicata nella tabella project.

Avete idee?
grazie
Elisa


Avatar utente

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

Creazione di una misura che faccia la somma di dati di timesheet iniziando a contare da una data variabile

Messaggio da Andrea90 »

@elyfiora

Allega un file demo pbix per cominciare a capire l’output desiderato.

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
elyfiora
Messaggi: 26 | Topic creati
Iscritto il: mer 7 apr 2021, 19:39
Ringraziato: 1 volta

Creazione di una misura che faccia la somma di dati di timesheet iniziando a contare da una data variabile

Messaggio da elyfiora »

Ciao, grazie. Allego file powerBI con il modello di esempio
La colonna su cui fare la misura è Days della tabella Timesheet

Le aspettative sono al 30/03 di vedere:
- per il progetto 1 --> 12.8 giorni (somma della colonna days della tabella timesheet) poichè la sua start date è 05-03-2023 (definita nella tabella project)
- per il progetto 2 --> 12 giorni (somma della colonna days della tabella timesheet) poichè la sua start date è 06-03-2023 (definita nella tabella project)

Globalmente se non metto il dettaglio del progetto mi aspetto di vedere 24.8 (ovvero 12.8+12)

Allego anche excel dove ho messo i dati
grazie
Allegati
demo.pbix
(55.19 KiB) Scaricato 6 volte
demo.xlsx
(11.12 KiB) Scaricato 4 volte
Avatar utente

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

Creazione di una misura che faccia la somma di dati di timesheet iniziando a contare da una data variabile

Messaggio da Andrea90 »

@elyfiora,

Ma a te serve un campo calcolato (nuova colonna all'interno del modello dati) oppure una misura? Hai compreso bene la differenza tra le due e i pro e i contro di ognuna?

Se fosse una colonna calcolata ed uno dei problemi che riscontri è quello di portare la data di inizio progetto all'interno della riga corrente nella tabella Timesheet, allora ti consiglio di studiarti i tutorial che trovi qui sul forum relativi al Contesto Riga, sopratutto le parti in cui spiego l'uso del RELATED().

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
elyfiora
Messaggi: 26 | Topic creati
Iscritto il: mer 7 apr 2021, 19:39
Ringraziato: 1 volta

Creazione di una misura che faccia la somma di dati di timesheet iniziando a contare da una data variabile

Messaggio da elyfiora »

Ciao, assolutamente. Mi serve una misura, non mi serve una colonna calcolata.
Grazie
Avatar utente

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

Creazione di una misura che faccia la somma di dati di timesheet iniziando a contare da una data variabile

Messaggio da Andrea90 »

@elyfiora,

E allora perché hai caricato un file completamente vuoto in termini di visual? I calcoli in una misura risentono del contesto valutativo in cui vengono applicati, e dunque come vuoi costruire il report? che campi inseriresti?

Allega il file con i tuoi tentativi fatti, anche in termini di misure... così da capire dove trovi difficoltà.

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
elyfiora
Messaggi: 26 | Topic creati
Iscritto il: mer 7 apr 2021, 19:39
Ringraziato: 1 volta

Creazione di una misura che faccia la somma di dati di timesheet iniziando a contare da una data variabile

Messaggio da elyfiora »

Ciao, ti allego un po' di esempi. Non posso allegare il reale contesto nel quale lavoro perchè si tratta di una datawarehouse con milioni di dati e decine di tabelle.
L'idea è che la misura funzioni come quella che ho chiamato 'Total Project Effort GD TF 2' che funziona solo se viene selezionato un singolo progetto.
Vorrei invece che la misura funzionasse anche se non è filtrato un determinato progetto, ma come si vede, togliendo il filtro per progetto, la misura non funziona più.
grazie
Elisa
Allegati
demo.xlsx
(12.06 KiB) Scaricato 3 volte
demo.pbix
(95.71 KiB) Scaricato 6 volte
Avatar utente

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

Creazione di una misura che faccia la somma di dati di timesheet iniziando a contare da una data variabile

Messaggio da Andrea90 »

@elyfiora,

Cominciamo dalle basi:

1) Togli l'opzione che ti mostro in foto, questa opzione ti genera una tabella calendario nascosta con quella sorta di gerarchia per data che fa solo danni.

Immagine

2) Hai creato una tabella chiamata [Week] che hai collegato alla [Calendar] con una relazione molti a 1, dentro la Week ci sono 3 campi con gli stessi valori (???) e lo utilizzi per creare il tuo report. Essendo un campo della tabella lato molti non è in grado di filtrare la tabella Calendario, che è quella legata alla tabella Timesheet che contiene il dato da aggregare. Se ti serve ragionare per settimana crea tale campo all'interno della tabella Calendario (è fatta apposta per contenere le dimensioni temporali di analisi).

3) Creati una misura ad hoc che esegua il semplice SUM del campo days.

4) Nel report vai a mettere il campo relativo al numero di progetto (preso dalla tabella Project), poi il campo che ti serve a livello di analisi temporale (non so se sono le date ad esempio - e le prendi dalla tabella Calendario). Per finire ci aggiungi la misura calcolata al punto 3.

Questo sarà il file demo di partenza dal quale andare poi a costruire la misura che ti interessa.

Nel mentre, il motivo per il quale ti va in errore quando selezioni più di un progetto è perché utilizzi come condizioni filtro formule tipo questa:

Codice: Seleziona tutto

FILTER ( 'Calendar', Calendar[sk_data] < VALUES ( Week[sk_dim_week] ) )
Quel VALUES() riporta un valore scalare se e solo se la tabella risultante contiene una sola riga ed una sola colonna. Questo sulle righe del report è corretto perché avendo utilizzato il campo sk_dim_week sulle righe hai un valore univoco per ciascuna di esse. Ma sulla riga del totale questo non è corretto. Quindi se vorrai costruire la tua misura in modo tale che tenga conto di questo aspetto dovrai creare una tabella "virtuale" che esegua il calcolo corretto per ciascuna combinazione di progetto e campo data, e solo alla fine andrai a sommarla (con un SUMX). Sempre che capiamo che valore vorresti vedere nella riga di totale (sempre che tu lo voglia).

Un caso simile al tuo, riguardo l'ultimo punto è stato affrontato qui: viewtopic.php?t=1208

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
elyfiora
Messaggi: 26 | Topic creati
Iscritto il: mer 7 apr 2021, 19:39
Ringraziato: 1 volta

Creazione di una misura che faccia la somma di dati di timesheet iniziando a contare da una data variabile

Messaggio da elyfiora »

La reportistica che creiamo in azienda si basa tutta sulla tabella week che contiene i lunedi di ogni settimana. Le misure devono tenerne conto e così è strutturato il nostro data warehouse. Non posso smontarlo ma devo partire dal modello che ho per creare la misura che mi è stata richiesta.
Avatar utente

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

Creazione di una misura che faccia la somma di dati di timesheet iniziando a contare da una data variabile

Messaggio da Andrea90 »

@elyfiora

Se hai una tabella calendario hai già tutti i lunedì di ogni settimana pertanto è inutile quella tabella week. La tabella calendario è fatta apposta per relazionarsi con la tabella dei fatti. Se il tuo datawarehouse è costruito con quella, nel modo che tu hai mostrato, allora fatela cambiare perché non ha senso. Addirittura è nel lato molti della relazione quindi quel campo non riesce nemmeno a filtrarla la tabella dei fatti, infatti se provi a creare un report dove metti il campo di quella tabella e poi il campo somma days vedrai che per tutte le righe avrai lo stesso identico valore. Mentre se ti crei lo stesso campo nella tabella calendario il risultato sarà corretto.

Il fatto che sia una tabella del datawarehouse non significa che non sia modificabile (a monte da chi quel datawarehouse l’ha progettato), specie se è origine di errori. Per aggirare la cosa dovresti utilizzare CROSSFILTER in tutte le tue misure che utilizzano quel campo nel report, o rendere la relazione bidirezionale.

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