cancel
Showing results for
Search instead for
Did you mean:
Highlighted
maarten_74 Frequent Visitor

## Create a new table with a row for each weekday between two dates for each ID

Hi there,

I've got a hour-related table that looks like figure 1. i would like to convert this table so it looks like figure 3 or figure 4.

Figure 1: For each workingday between the begindate and enddate there a line created with an equal distubution of the hours based on working days.

Figure 2: Figure 3:                                           Figure 4:  1 ACCEPTED SOLUTION

Accepted Solutions Super User

## Re: Create a new table with a row for each weekday between two dates for each ID

Create calculated tables. For the one in Figure2:

```NewTable2 =
GENERATE (
ALL ( Table1[ID] );
VAR AuxTable_ =
FILTER (
CALENDAR (
CALCULATE ( VALUES ( Table1[Begindate] ) );
CALCULATE ( VALUES ( Table1[Enddate] ) )
);
NOT WEEKDAY ( [Date]; 2 ) IN { 6; 7 }
)
RETURN
ADDCOLUMNS (
AuxTable_;
"Hours"; CALCULATE ( DISTINCT ( Table1[Hours] ) ) / COUNTROWS ( AuxTable_ )
)
)```

and the one in Figure3:

```NewTable3 =
GENERATE (
ALL ( Table1[ID] );
VAR AuxTable_ =
CALENDAR (
CALCULATE ( VALUES ( Table1[Begindate] ) );
CALCULATE ( VALUES ( Table1[Enddate] ) )
)
VAR NumWorkingDays_ =
COUNTROWS ( FILTER ( AuxTable_; NOT WEEKDAY ( [Date]; 2 ) IN { 6; 7 } ) )
RETURN
ADDCOLUMNS (
AuxTable_;
"Hours"; IF (
NOT WEEKDAY ( [Date]; 2 ) IN { 6; 7 };
CALCULATE ( DISTINCT ( Table1[Hours] ) ) / NumWorkingDays_;
0
)
)
)```
1 REPLY 1 Super User

## Re: Create a new table with a row for each weekday between two dates for each ID

Create calculated tables. For the one in Figure2:

```NewTable2 =
GENERATE (
ALL ( Table1[ID] );
VAR AuxTable_ =
FILTER (
CALENDAR (
CALCULATE ( VALUES ( Table1[Begindate] ) );
CALCULATE ( VALUES ( Table1[Enddate] ) )
);
NOT WEEKDAY ( [Date]; 2 ) IN { 6; 7 }
)
RETURN
ADDCOLUMNS (
AuxTable_;
"Hours"; CALCULATE ( DISTINCT ( Table1[Hours] ) ) / COUNTROWS ( AuxTable_ )
)
)```

and the one in Figure3:

```NewTable3 =
GENERATE (
ALL ( Table1[ID] );
VAR AuxTable_ =
CALENDAR (
CALCULATE ( VALUES ( Table1[Begindate] ) );
CALCULATE ( VALUES ( Table1[Enddate] ) )
)
VAR NumWorkingDays_ =
COUNTROWS ( FILTER ( AuxTable_; NOT WEEKDAY ( [Date]; 2 ) IN { 6; 7 } ) )
RETURN
ADDCOLUMNS (
AuxTable_;
"Hours"; IF (
NOT WEEKDAY ( [Date]; 2 ) IN { 6; 7 };
CALCULATE ( DISTINCT ( Table1[Hours] ) ) / NumWorkingDays_;
0
)
)
)```

## Helpful resources

Announcements Top Ideas Top Kudoed Authors
Users Online
Currently online: 177 members 2,380 guests
Recent signins:
• TanYanChong • Kenny31 • ShashankKalluri • Sriyanka • adhumal2 • davem145 • bchhugwani Please welcome our newest community members:
• TanYanChong • ISmith12 • gvenum14 • JulienSchanen • JetMax • thilinag • Johnno 