Forum Discussion
dax problem: subtract multiple values in same column based on DATE and filter and get final values
- Anonymous2 years ago
Hi, iamjoy
Already have a preliminary understanding of what you need, but you didn't give any indication of how to determine the qty value corresponding to a type of instock_qty. For example, how to get the value 15735. One more thing, why the qty of A240600046 and A24070041 are marked in green, they have different order_no, which is different from the other calculation logic.Best Regards,
Yang
Community Support Team - Anonymous2 years ago
Hi, iamjoy
You can try following dax to achieve your need.DAX:
sumQTY By OrderNo and type = CALCULATE( SUM('Table'[QTY]), FILTER( 'Table', 'Table'[type] = EARLIER('Table'[type]) && 'Table'[order_no] = EARLIER('Table'[order_no]) ) ) Result 1 = VAR CurrentIndex = 'Table'[Index] VAR NextIndex = CurrentIndex + 1 VAR CurrentOrderNo = 'Table'[order_no] VAR CurrentDate = 'Table'[date] VAR NextType = CALCULATE ( MAX ( 'Table'[type] ), FILTER ( 'Table', 'Table'[Index] = NextIndex ) ) VAR PreviousFinalUnshippedQty = CALCULATE ( MAX ( 'Table'[sumQTY By OrderNo and type] ), FILTER ( 'Table', 'Table'[Index] = NextIndex ) ) VAR _result1 = IF ( COUNTROWS( FILTER( 'Table', 'Table'[order_no] = CurrentOrderNo && 'Table'[date] = CurrentDate ) ) > 1, CALCULATE ( DIVIDE(SUM('Table'[QTY]),COUNTROWS( FILTER( 'Table', 'Table'[order_no] = CurrentOrderNo && 'Table'[date] = CurrentDate ) )), FILTER( 'Table', 'Table'[order_no] = CurrentOrderNo && 'Table'[date] = CurrentDate ) ), BLANK() ) VAR _result2 = IF ( CurrentOrderNo = CALCULATE ( MAX ( 'Table'[order_no] ), FILTER ( 'Table', 'Table'[Index] = NextIndex ) ) && 'Table'[type] <> NextType, 'Table'[sumQTY By OrderNo and type] - PreviousFinalUnshippedQty, _result1 ) RETURN _result2 Result 2 = IF( 'Table'[Result 1] = BLANK() , 'Table'[QTY] ) final_unshipped_qty = VAR _qty = 'Table'[Result 2] + 'Table'[Result 1] VAR _index = 'Table'[Index] RETURN IF(_index = 1,BLANK(),_qty) New type = VAR _type = SWITCH( 'Table'[type], "schedule_ship_date","final_unshipped_qty", "instock_date","instock_qty" ) RETURN IF( 'Table'[final_unshipped_qty] <> 0, _type )Best Regards,
Yang
Community Support TeamIf there is any post helps, then please consider Accept it as the solution to help the other members find it more quickly.
If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!How to get your questions answered quickly -- How to provide sample data in the Power BI Forum
Hi, iamjoy
Do you mean to regenerate a table with only the dates marked yellow and the corresponding final_unshipped_qty values?
Best Regards,
Yang
Community Support Team
result BI table like this
so I think what i need from raw data to A21~D21 table is right?
- Anonymous2 years agoNot applicable
Hi, iamjoy
Sorry, still can't see what you need, does the table you want refer to all the data in rows 21-34 or rows 21, 22, 27, 28, 32.
Best Regards,
Yang
Community Support Team- iamjoy2 years agoFrequent Visitor
sorry..result BI table can't be translated to English
does the table you want refer to all the data in rows 21-34 or rows 21, 22, 27, 28, 32.>> no, it's from all this table
and I think this way is more clearly?
result table is from A20:D33 and A20:D33 is from A1:D17 (raw data)
I can't find the solution to turn raw data to A20:D33..
- Anonymous2 years agoNot applicable
Hi, iamjoy
Already have a preliminary understanding of what you need, but you didn't give any indication of how to determine the qty value corresponding to a type of instock_qty. For example, how to get the value 15735. One more thing, why the qty of A240600046 and A24070041 are marked in green, they have different order_no, which is different from the other calculation logic.Best Regards,
Yang
Community Support Team