another one:
dt = Current Data Table();
dt << New Column( "rank", Formula( Col Rank( 1, :Product ) ), );
dtsplit = dt << Split(
Split By( :rank ),
Split( :Lot ),
Group( :Product ),
Remaining Columns( Drop All ),
);
cols = dt split << get column names();
cols = cols[2 :: N Items( cols )];
dt split << New Column( "concat", Character, Set Each value( Concat Items( cols, "," ) ) );
dt << Update(
With( dt split),
Match Columns( :Product = :Product ),
Add Columns from Update Table( :concat ),
Replace Columns in Main Table( None )
);