Ciao a tutti
Necessito di creare una misura che mi indichi i giorni lavorativi tra due date presenti in una tabella.
Diciamo data_inizio e data_fine
Ho una tabelle di appoggio nel cubo che definisce per ogni data ( dal 2018 al 2030) se lavorativo ( 1 ) o festivo (2)
Quindi
TAB1
TAB1_data_inizio
TAB1_data_fine
TAB2
TAB2_DATA
TAB2_TIPO
Dovrei creare una misura sulla TAB1 con la somma dei TAB2_TIPO che intercorre tra TAB1_data_inizio e TAB1_data_fine.
Ho provato così:
DATEDIFF = Calculate(countrows(TAB2 ), datesbetween(TAB2_DATA, TAB1_data_inizio, TAB1_data_fine), TAB2_TIPO=1)
Ma mi da errore :
Couldn't load the data for this visual
The report measure ‘Measure' has a syntax or
semantic error at line 1, position 72, reported by Analysis Services:
‘Calculation error in measure ‘Measure: A single
value for column ‘TAB1_Data_Inizio' in table
*TAB1' cannot be determined. This can happen when a
measure formula refers to a column that contains many values
without specifying an aggregation such as min, max, count, or sum to
get a single result.'.
Non riesco a venirne fuori...
delta Date
-
- Messaggi: 2480 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 695 volte
- Contatta:
delta Date
Matteo1970,
Un qualcosa di simile:
Andrea
Un qualcosa di simile:
Codice: Seleziona tutto
=
VAR StartDate =
MIN ( TAB_1[Data Inizio] )
VAR EndDate =
MAX ( TAB_1[Data Fine] )
VAR Result =
COUNTROWS (
FILTER (
ALL ( TAB_2 ),
TAB_2[Data] >= StartDate
&& TAB_2[Data] <= EndDate
&& TAB_2[TIPO] = 1
)
)
RETURN
Result
-
Autore del topic - Messaggi: 5 | Topic creati
- Iscritto il: ven 23 set 2022, 10:39
delta Date
Scusa l'ignoranza, ma così non prende il valore più alto di una colonna e il valore più basso di un'altra colonna?
Credo di essermi spiegato male.
A me serve che il conteggio sia fatto a livello di riga, la misura quindi dovrebbe fare il delta di due date in due colonne per ogni singola riga.
Potrebbe funzionare ( anticipandolo con un averagex ... ) un CALCULATE( TAB_2[TIPO] , DATESBETWEEN(TAB_2[Data], TAB_1[Data Inizio] , TAB_1[Data Fine]) ma mi conteggia ( giustamente) valore 1 anche nel giorno iniziale ( se lavorativo), che però non è corretto in quanto 30/09/22 - 29/09/22 deve restituire ( essendo entrambe lavorativi) 1, invece in quanto modo restituisce 2.
Dovrei trovare il modo di aggiungere un giorno di calendario a TAB_1[Data Inizio] ...
Credo di essermi spiegato male.
A me serve che il conteggio sia fatto a livello di riga, la misura quindi dovrebbe fare il delta di due date in due colonne per ogni singola riga.
Potrebbe funzionare ( anticipandolo con un averagex ... ) un CALCULATE( TAB_2[TIPO] , DATESBETWEEN(TAB_2[Data], TAB_1[Data Inizio] , TAB_1[Data Fine]) ma mi conteggia ( giustamente) valore 1 anche nel giorno iniziale ( se lavorativo), che però non è corretto in quanto 30/09/22 - 29/09/22 deve restituire ( essendo entrambe lavorativi) 1, invece in quanto modo restituisce 2.
Dovrei trovare il modo di aggiungere un giorno di calendario a TAB_1[Data Inizio] ...
-
Autore del topic - Messaggi: 5 | Topic creati
- Iscritto il: ven 23 set 2022, 10:39
delta Date
Mi auto rispondo...ho provato a usare svariati modi...bastava fare TAB_1[Data Inizio]+1
Grazie, ho risolto.
Grazie, ho risolto.
-
- Messaggi: 83 | Topic creati
- Iscritto il: sab 29 ago 2020, 13:18
- Ringraziato: 7 volte
delta Date
Matteo1970 se può esserti utile allo scopo, dalla release di Luglio 2022 di PBI è stata introdotta la funziona NETWORKDAYS che conta proprio i giorni feriali tra due date. Hai anche la possibilità di impostare tu quali sono i giorni festivi da considerare.