DAX measure is usually an elegant way to address such questions,
Next = SELECTCOLUMNS( OFFSET( 1, ORDERBY( Orders[OrderDate] ), PARTITIONBY( Orders[Item] ) ), Orders[OrderDate] )
enter image description here