Forum Discussion
DAX Help - Measure based on different time slice
Hi All,
Need some help with a calculation based on dataset below.
Dataset tables
- Orders
- Order Date
- Order Hour
- Ship Date
- Ship Hour
Model Relationship
- Orders[OrderDate] -> Order Date[OrderDate]
- Orders[OrderHour] -> Order Hour[OrderHour]
- Orders[ShipmentDate -> Ship Date [ShipDate]
- Orders[Shipment Hour] -> Ship Hour [ShipHour]
Sample Orders table data
| Order | OrderDate | Order Date Time | Order Hour | ShipmentDate | Shipment Date Time | Shipment Hour |
| 1 | 9/1/2024 | 9/1/24 4:00 AM | 4 | 9/1/2024 | 9/1/24 4:30 AM | 4 |
| 2 | 9/1/2024 | 9/1/24 4:00 AM | 4 | 9/1/2024 | 9/1/24 5:00 AM | 5 |
| 3 | 9/1/2024 | 9/1/24 5:00 AM | 5 | 9/1/2024 | 9/1/24 5:00 AM | 5 |
| 4 | 9/1/2024 | 9/1/24 5:00 AM | 5 | 9/1/2024 | 9/1/24 5:30 AM | 5 |
| 5 | 9/1/2024 | 9/1/24 5:00 AM | 5 | 9/1/2024 | 9/1/24 5:40 AM | 5 |
| 6 | 9/1/2024 | 9/1/24 8:00 AM | 8 | 9/1/2024 | 9/1/24 8:30 AM | 8 |
| 7 | 9/1/2024 | 9/1/24 9:00 AM | 9 | 9/1/2024 | 9/1/24 10:30 AM | 10 |
| 8 | 9/1/2024 | 9/1/24 10:00 AM | 10 | 9/1/2024 | 9/1/24 10:50 AM | 10 |
Desired output :
Wanted visual with main data to be filter based on order date as a slicer
but visual should show break down by shipment.
Generally if i show data by shipment hours then for ship hour 4 it will have order placed as 1 , for ship hour 5 it will have order placed as 4 but i want to display order placed based on order hour for shipment hour slice.
Desired output
| Shipment hour | Order Shipped | Order Placed |
| 4 | 1 | 2 |
| 5 | 4 | 3 |
| 6 | 0 | 0 |
| 7 | 0 | 0 |
| 8 | 1 | 1 |
| 9 | 0 | 1 |
| 10 | 2 | 1 |
| Total | 8 | 8 |
Can you please advice what approach should i take for this ?
thanks
- Anonymous1 year ago
Hi Sadhikari ,
Please try using the following DAX formula to create measures.
Orders Shipped = COUNTROWS('Orders') + 0Orders Placed = VAR _currentSHIPHOUR = MAX('Ship Hour'[Ship Hour]) VAR _vtable = SUMMARIZE(ALLSELECTED('Orders'),'Orders'[Order Hour],"_Count",COUNT(Orders[Order Hour])) RETURN IF(HASONEVALUE('Ship Hour'[Ship Hour]),SUMX(FILTER(_vtable,[Order Hour]=_currentSHIPHOUR),[_Count]),SUMX(_vtable,[_Count])) + 0Best Regards,
Wisdom Wu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.