bertusavius
Board Regular
- Joined
- Feb 28, 2008
- Messages
- 82
Below is a piece of code that used to work for me.
It's use is to join two tables:
1 with time events (start/stoptime colums)
2 table withe time buckets/bins
The end result was a histogram of these time events.
After pasting it in e newer version of powerpivot, I got this error message:
"The second and third arguments of function IF have different data types. This is not supported."
highlighted in red the piece of code that also gets highlighted when the error message appears.
SUMX(
CROSSJOIN('Workforce';'Buckets');
(if(or(Workforce[Starttijd]>= ((1/24)*4);Workforce[Starttijd] > Workforce[Stoptijd]);
IF(AND(
IF(Workforce[Starttijd]<((1/24)*4);Workforce[Starttijd]+1;Workforce[Starttijd]) < IF(Buckets[Eind tijd]<=(1/24*4);Buckets[Eind tijd]+1;Buckets[Eind tijd])
;
IF(Workforce[Stoptijd]<=(1/24*4);Workforce[Stoptijd]+1;Workforce[Stoptijd]) > IF(Buckets[Start tijd]<(1/24*4);Buckets[Start tijd]+1;Buckets[Start tijd])
)
;
if(IF(Workforce[Stoptijd]<=(1/24*4);Workforce[Stoptijd]+1;Workforce[Stoptijd]) > IF(Buckets[Eind tijd]<=(1/24*4);Buckets[Eind tijd]+1;Buckets[Eind tijd])
;
IF(Buckets[Eind tijd]<=(1/24*4);Buckets[Eind tijd]+1;Buckets[Eind tijd])
;
IF(Workforce[Stoptijd]<=(1/24*4);Workforce[Stoptijd]+1;Workforce[Stoptijd])
)
-
IF(IF(Workforce[Starttijd]<((1/24)*4);Workforce[Starttijd]+1;Workforce[Starttijd]) > IF(Buckets[Start tijd]<(1/24*4);Buckets[Start tijd]+1;Buckets[Start tijd])
;
IF(Workforce[Starttijd]<((1/24)*4);Workforce[Starttijd]+1;Workforce[Starttijd])
;
IF(Buckets[Start tijd]<(1/24*4);Buckets[Start tijd]+1;Buckets[Start tijd])
)
;
0
)
;
IF(AND( Workforce[Starttijd] < Buckets[Eind tijd]
;Workforce[Stoptijd] > Buckets[Start tijd]
)
;
if(Workforce[Stoptijd] < Buckets[Eind tijd];Workforce[Stoptijd];Buckets[Eind tijd])
-
if(Workforce[Starttijd] > Buckets[Start tijd];Workforce[Starttijd];Buckets[Start tijd])
;
0
)
)
-
if(or(Workforce[Starttijd]>= ((1/24)*4);Workforce[Starttijd] > Workforce[Stoptijd]);
IF(AND(
IF(Workforce[Starttijd]<((1/24)*4);Workforce[Starttijd]+1;Workforce[Starttijd]) < IF(Buckets[Eind tijd]<=(1/24*4);Buckets[Eind tijd]+1;Buckets[Eind tijd])
;
IF(Workforce[Stoptijd]<=(1/24*4);Workforce[Stoptijd]+1;Workforce[Stoptijd]) > IF(Buckets[Start tijd]<(1/24*4);Buckets[Start tijd]+1;Buckets[Start tijd])
)
;
if(IF(Workforce[Stoptijd]<=(1/24*4);Workforce[Stoptijd]+1;Workforce[Stoptijd]) > IF(Buckets[Eind tijd]<=(1/24*4);Buckets[Eind tijd]+1;Buckets[Eind tijd])
;
IF(Buckets[Eind tijd]<=(1/24*4);Buckets[Eind tijd]+1;Buckets[Eind tijd])
;
IF(Workforce[Stoptijd]<=(1/24*4);Workforce[Stoptijd]+1;Workforce[Stoptijd])
)
-
IF(IF(Workforce[Starttijd]<((1/24)*4);Workforce[Starttijd]+1;Workforce[Starttijd]) > IF(Buckets[Start tijd]<(1/24*4);Buckets[Start tijd]+1;Buckets[Start tijd])
;
IF(Workforce[Starttijd]<((1/24)*4);Workforce[Starttijd]+1;Workforce[Starttijd])
;
IF(Buckets[Start tijd]<(1/24*4);Buckets[Start tijd]+1;Buckets[Start tijd])
)
;
0
)
;
IF(AND( Workforce[Starttijd] < Buckets[Eind tijd]
;Workforce[Stoptijd] > Buckets[Start tijd]
)
;
if(Workforce[Stoptijd] < Buckets[Eind tijd];Workforce[Stoptijd];Buckets[Eind tijd])
-
if(Workforce[Starttijd] > Buckets[Start tijd];Workforce[Starttijd];Buckets[Start tijd])
;
0
)
)*(if(Workforce[Pauze]=0;0;(Workforce[Pauze]/60) / (Workforce[Gewerkt] + (Workforce[Pauze]/60)))))
*24)
Could somebody help me out with this?
It's use is to join two tables:
1 with time events (start/stoptime colums)
2 table withe time buckets/bins
The end result was a histogram of these time events.
After pasting it in e newer version of powerpivot, I got this error message:
"The second and third arguments of function IF have different data types. This is not supported."
highlighted in red the piece of code that also gets highlighted when the error message appears.
SUMX(
CROSSJOIN('Workforce';'Buckets');
(if(or(Workforce[Starttijd]>= ((1/24)*4);Workforce[Starttijd] > Workforce[Stoptijd]);
IF(AND(
IF(Workforce[Starttijd]<((1/24)*4);Workforce[Starttijd]+1;Workforce[Starttijd]) < IF(Buckets[Eind tijd]<=(1/24*4);Buckets[Eind tijd]+1;Buckets[Eind tijd])
;
IF(Workforce[Stoptijd]<=(1/24*4);Workforce[Stoptijd]+1;Workforce[Stoptijd]) > IF(Buckets[Start tijd]<(1/24*4);Buckets[Start tijd]+1;Buckets[Start tijd])
)
;
if(IF(Workforce[Stoptijd]<=(1/24*4);Workforce[Stoptijd]+1;Workforce[Stoptijd]) > IF(Buckets[Eind tijd]<=(1/24*4);Buckets[Eind tijd]+1;Buckets[Eind tijd])
;
IF(Buckets[Eind tijd]<=(1/24*4);Buckets[Eind tijd]+1;Buckets[Eind tijd])
;
IF(Workforce[Stoptijd]<=(1/24*4);Workforce[Stoptijd]+1;Workforce[Stoptijd])
)
-
IF(IF(Workforce[Starttijd]<((1/24)*4);Workforce[Starttijd]+1;Workforce[Starttijd]) > IF(Buckets[Start tijd]<(1/24*4);Buckets[Start tijd]+1;Buckets[Start tijd])
;
IF(Workforce[Starttijd]<((1/24)*4);Workforce[Starttijd]+1;Workforce[Starttijd])
;
IF(Buckets[Start tijd]<(1/24*4);Buckets[Start tijd]+1;Buckets[Start tijd])
)
;
0
)
;
IF(AND( Workforce[Starttijd] < Buckets[Eind tijd]
;Workforce[Stoptijd] > Buckets[Start tijd]
)
;
if(Workforce[Stoptijd] < Buckets[Eind tijd];Workforce[Stoptijd];Buckets[Eind tijd])
-
if(Workforce[Starttijd] > Buckets[Start tijd];Workforce[Starttijd];Buckets[Start tijd])
;
0
)
)
-
if(or(Workforce[Starttijd]>= ((1/24)*4);Workforce[Starttijd] > Workforce[Stoptijd]);
IF(AND(
IF(Workforce[Starttijd]<((1/24)*4);Workforce[Starttijd]+1;Workforce[Starttijd]) < IF(Buckets[Eind tijd]<=(1/24*4);Buckets[Eind tijd]+1;Buckets[Eind tijd])
;
IF(Workforce[Stoptijd]<=(1/24*4);Workforce[Stoptijd]+1;Workforce[Stoptijd]) > IF(Buckets[Start tijd]<(1/24*4);Buckets[Start tijd]+1;Buckets[Start tijd])
)
;
if(IF(Workforce[Stoptijd]<=(1/24*4);Workforce[Stoptijd]+1;Workforce[Stoptijd]) > IF(Buckets[Eind tijd]<=(1/24*4);Buckets[Eind tijd]+1;Buckets[Eind tijd])
;
IF(Buckets[Eind tijd]<=(1/24*4);Buckets[Eind tijd]+1;Buckets[Eind tijd])
;
IF(Workforce[Stoptijd]<=(1/24*4);Workforce[Stoptijd]+1;Workforce[Stoptijd])
)
-
IF(IF(Workforce[Starttijd]<((1/24)*4);Workforce[Starttijd]+1;Workforce[Starttijd]) > IF(Buckets[Start tijd]<(1/24*4);Buckets[Start tijd]+1;Buckets[Start tijd])
;
IF(Workforce[Starttijd]<((1/24)*4);Workforce[Starttijd]+1;Workforce[Starttijd])
;
IF(Buckets[Start tijd]<(1/24*4);Buckets[Start tijd]+1;Buckets[Start tijd])
)
;
0
)
;
IF(AND( Workforce[Starttijd] < Buckets[Eind tijd]
;Workforce[Stoptijd] > Buckets[Start tijd]
)
;
if(Workforce[Stoptijd] < Buckets[Eind tijd];Workforce[Stoptijd];Buckets[Eind tijd])
-
if(Workforce[Starttijd] > Buckets[Start tijd];Workforce[Starttijd];Buckets[Start tijd])
;
0
)
)*(if(Workforce[Pauze]=0;0;(Workforce[Pauze]/60) / (Workforce[Gewerkt] + (Workforce[Pauze]/60)))))
*24)
Could somebody help me out with this?