DATEDIFF con condizioni

Il software per la BI di Microsoft, leader nel mercato

Millainthesky
Messaggi: 6 | Topic creati
Iscritto il: ven 26 ago 2022, 15:47

DATEDIFF con condizioni

Messaggio da Millainthesky »

Ciao a tutti,
ho un problema con il calcolo DATEDIFF. Io dovrei calcolare quanti giorni il materiale si trova al di fuori dello scaffale, ma per farlo devo imporre la condizione per la quale per ogni materiale il calcolo deve essere effettuando prendendo la prima data utile e la prima successiva ad essa e in mancanza di questa dal giorno attuale. Praticamente la differenza deve essere fatta a coppie, considerando ogni volta la prima data=pick e la seconda=put.
Questo accade poichè ho una sola colonna DATA e più righe dello stesso materiale. Ho provato varie combinazioni ma non riesco proprio a trovare la formula giusta, voi riuscireste ad aiutarmi? Vi allego un set di dati e spero che la mia spiegazione sia abbastanza chiara :lol:
Allegati
Esempio dati.xlsx
(10.89 KiB) Scaricato 9 volte


Avatar utente

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

DATEDIFF con condizioni

Messaggio da Andrea90 »

Millainthesky,

Aggiungi una tabella calendario, il campo che contiene le date l'ho considerato con il nome "Date" e la tabella l'ho chiamata "Calendar".

La misura che poi ho utilizzato è la seguente:

Codice: Seleziona tutto

=
VAR MinDate =
    MIN ( Dati[Creationdate] )
VAR MaxDate =
    MAX ( Dati[Creationdate] )
VAR Today =
    TODAY ()
VAR Result =
    IF (
        MinDate = MaxDate;
        COUNTROWS ( DATESBETWEEN ( 'Calendar'[Date]; MinDate; Today ) );
        COUNTROWS ( DATESBETWEEN ( 'Calendar'[Date]; MinDate; MaxDate ) )
    )
RETURN
    Result
Prova a vedere se ti torna (a seconda di come vuoi considerare le date agli estremi potresti dover togliere o meno 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
Avatar utente

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

DATEDIFF con condizioni

Messaggio da Andrea90 »

Millainthesky,

Riallega il file con le modifiche effettuate.

La tabella Calendario la crei dentro al modello e poi la metti in relazione alla tabella già esistente.
Millainthesky ha scritto: mar 30 ago 2022, 14:33 Non trova COUNTROWS
Non so cosa intendi perché COUNTROWS è una funzione del linguaggio DAX quindi c'è per forza
Millainthesky ha scritto: mar 30 ago 2022, 14:33 nemmenola tabella Calendar
Nemmeno qui capisco cosa intendi, hai detto di aver creato la tabella Calendario, ottimo allora l'avrai chiamata in qualche modo. Io l'ho chiamata "Calendar".

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

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

DATEDIFF con condizioni

Messaggio da Enrico Galli »

Ciao a tutti. La soluzione di Andrea90 sarebbe corretta se per ogni codice ci fossero al massimo due date diverse, ma vedo che in alcuni casi ce ne sono di più. Io più che altro non capisco quale sia l'output che ti aspetti, date le premesse che hai fatto: puoi mostrare un esempio del report che vorresti ottenere in PowerBI, anche poche righe scritte a mano?
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione

Autore del topic
Millainthesky
Messaggi: 6 | Topic creati
Iscritto il: ven 26 ago 2022, 15:47

DATEDIFF con condizioni

Messaggio da Millainthesky »

Ho creato la tabella Calendar tramite la funzione CALENDAR, però non mi sembra funzionare la formula oppure sono io che sbaglio qualcosa. Come risultato non ottengo il numero di giorni del materiale al di fuori dello scaffale, ma ho un numero che si ripete a seconda della CreationDate. Infatti non ho le coppie pick/put di date, ma tutte le righe che avevo in partenza.
Quello che vorrei sapere è ogni materiale quando è stato preso e quando è stato riposizionato andando a contare il numero di giorni intercorsi tra il prelievo e il riposizionamento.
Esempio: Krd_424
Codice materiale Creationdate
Krd_424 12/07/2022
Krd_424 20/07/2022
Krd_424 22/07/2022
Krd_424 27/07/2022
Krd_424 11/07/2022
Krd_424 21/07/2022
Krd_424 20/07/2022
Krd_424 02/08/2022

Allora questo materiale è stato preso:
- per la prima volta l'11/07 e riposizionato il 12/07 quindi 1 giorno fuori dallo scaffale;
- la seconda volta il 20/07 e riposizionato il 20/07 quindi 0 giorni fuori;
- la terza volta il 21/07 e riposizionato il 22/07 quindi 1 giorno fuori;
-la quarta volta il 27/07 e riposizionato il 02/08 quindi 6 giorni fuori.

Nel caso in cui ci fossero state 7 righe, la data dell'ultimo riposizionamento sarebbe stata TODAY() fino a quando non fosse stata presente la data reale di riposizionamento.
Avatar utente

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

DATEDIFF con condizioni

Messaggio da Andrea90 »

Millainthesky,

Propongo una soluzione con PQ, così per ogni "coppia" hai il dato della Creation Date e PickUP Date dal quale poi partire per fare il calcolo delle differenze in nr giorni.

Andrea
Allegati
Esempio dati.xlsx
(21.27 KiB) Scaricato 10 volte
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
Millainthesky
Messaggi: 6 | Topic creati
Iscritto il: ven 26 ago 2022, 15:47

DATEDIFF con condizioni

Messaggio da Millainthesky »

Ho provato ad eseguire i passaggi del PQ ma come output ho tutte le coppie ripetute molte volte, infatti ho una tabella di più di 300k righe.
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

DATEDIFF con condizioni

Messaggio da Enrico Galli »

Andrea90 ha scritto: mar 30 ago 2022, 16:14 Millainthesky,

Propongo una soluzione con PQ, così per ogni "coppia" hai il dato della Creation Date e PickUP Date dal quale poi partire per fare il calcolo delle differenze in nr giorni.
Molto ingegnoso :clap:
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
Avatar utente

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

DATEDIFF con condizioni

Messaggio da Andrea90 »

Millainthesky,

A tuo parere:

“Ho provato ad eseguire i passaggi del PQ ma come output ho tutte le coppie ripetute molte volte”

Da un messaggio scritto così, senza file di appoggio che mostri una casistica di errore, come faccio a dirti dove è l’errore ?

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
Millainthesky
Messaggi: 6 | Topic creati
Iscritto il: ven 26 ago 2022, 15:47

DATEDIFF con condizioni

Messaggio da Millainthesky »

Ciao, scusami pensavo di averlo caricato il file!
Ho fatto varie prove e mi sono resa conto che l'errore ce l'ho con il merge di query.
Ad esempio:

-dalla tabella Pari ho questo risultato

Immagine

-dalla tabella dispari ho questo risultato prima del merge

Immagine

ma dopo il merge ottengo questo

Immagine.

Come vedi, il merge non si effettua nel modo corretto. Ho filtrato un solo codice per poter capire quale fosse il problema, i dati sono tanti e vorrei allegare il file con la query ma sinceramente non so come fare l'estrazione da Power BI.
Rispondi