Forum Discussion
Sales on segment dates
Ok thanks.
I have done the same formula but know it says
"It is impossible to determine a single value for the culumn "MontantHT" of the table "BillItem". This can occur when a measurement formula refers to a column that countains many values, whithout specifying aggregation such as min, max, count, or sum to get a single result."
My formula :
Mesure 2 =
VAR maxDate =
MAX('Date'[Date])
VAR minDate =
MIN('Date'[Date])
RETURN
BillItem[Montant HT]
* (
(
DATEDIFF (
IF ( BillItem[Start Date] > minDate; minDate; BillItem[Start Date] );
IF (
(
DATE ( YEAR ( BillItem[End Date] ); MONTH ( BillItem[End Date] ); DAY ( BillItem[End Date] ) )
- 1
)
> maxDate;
maxDate;
DATE ( YEAR ( BillItem[End Date] ); MONTH ( BillItem[End Date] ); DAY ( BillItem[End Date] ) )
- 1
);
DAY
)
+ 1
)
/ DATEDIFF (
DATE ( YEAR ( BillItem[Start Date] ); MONTH ( BillItem[Start Date] ); DAY ( BillItem[Start Date] ) )
+ 1;
BillItem[End Date];
DAY
)
)
Hi Nibz,
As indicated in the message, try adding SUM function for the column "MontantHT" to see if it works.:smileyhappy:
Mesure 2 =
VAR maxDate =
MAX ( 'Date'[Date] )
VAR minDate =
MIN ( 'Date'[Date] )
RETURN
SUM ( BillItem[Montant HT] )
* (
(
DATEDIFF (
IF ( BillItem[Start Date] > minDate; minDate; BillItem[Start Date] );
IF (
(
DATE ( YEAR ( BillItem[End Date] ); MONTH ( BillItem[End Date] ); DAY ( BillItem[End Date] ) )
- 1
)
> maxDate;
maxDate;
DATE ( YEAR ( BillItem[End Date] ); MONTH ( BillItem[End Date] ); DAY ( BillItem[End Date] ) )
- 1
);
DAY
)
+ 1
)
/ DATEDIFF (
DATE ( YEAR ( BillItem[Start Date] ); MONTH ( BillItem[Start Date] ); DAY ( BillItem[Start Date] ) )
+ 1;
BillItem[End Date];
DAY
)
)
Regards
- Nibz9 years ago
Helper I
Now I have the same message but for StartDate...
"It is impossible to determine a single value for the culumn "Start Date" of the table "BillItem". This can occur when a measurement formula refers to a column that countains many values, whithout specifying aggregation such as min, max, count, or sum to get a single result."
- v-ljerr-msft9 years ago
Microsoft Employee
Hi Nibz,
How about using the formula below?
Mesure 2 = VAR maxDate = MAX ( 'Date'[Date] ) VAR minDate = MIN ( 'Date'[Date] ) RETURN SUMX ( 'BillItem'; BillItem[Montant HT] * ( ( DATEDIFF ( IF ( BillItem[Start Date] > minDate; minDate; BillItem[Start Date] ); IF ( ( DATE ( YEAR ( BillItem[End Date] ); MONTH ( BillItem[End Date] ); DAY ( BillItem[End Date] ) ) - 1 ) > maxDate; maxDate; DATE ( YEAR ( BillItem[End Date] ); MONTH ( BillItem[End Date] ); DAY ( BillItem[End Date] ) ) - 1 ); DAY ) + 1 ) / DATEDIFF ( DATE ( YEAR ( BillItem[Start Date] ); MONTH ( BillItem[Start Date] ); DAY ( BillItem[Start Date] ) ) + 1; BillItem[End Date]; DAY ) ) )Regards
- Nibz9 years ago
Helper I
I think we are close :)
The formula is accepted but it is impossible to load data.
In the function DATEDIFF, Start date cannot be after End Date...
- Nibz9 years ago
Helper I
I think the problem is
DATEDIFF ( DATE ( YEAR ( BillItem[Start Date] ); MONTH ( BillItem[Start Date] ); DAY ( BillItem[Start Date] ) ) + 1; BillItem[End Date]; DAYthe +1 has to be add to the total difference