list := "Tommy Valand|24" : "Tommy Valand|34" : "Arthur Dent|15" : "Tommy Valand|45" : "Arthur Dent|36" : "Dirk Gently|255" : "William DeWorde|2000" : "Tommy Valand|-58" : "William DeWorde|34"; "## Sort list ##"; list := @Sort(list); max := @Elements( list ); largest := 0; list := @Transform( list; "item" ; @Do( last := @False; "## Get position of current item ##"; pos := @Member( item; list ); "## get next item ##"; nextpos := @If( pos = max ; max ; pos + 1 ); "## Current Name/Next Name in list ##"; curname := @Word( item ; "|" ; 1 ); nextname := @Word( list[nextpos] ; "|" ; 1 ); "## If the same name as next list-item, add value to sum Else add value to sum, list-item : [Total] ##"; @If( nextname = curname & pos != max; @If( sum = ""; sum := @ToNumber( @Word( item ; "|" ; 2 ) ) ; sum := sum + @ToNumber( @Word( item ; "|" ; 2 ) ) ); @Do( @If( sum = ""; sum := @ToNumber( @Word( item ; "|" ; 2 ) ) ; sum := sum + @ToNumber( @Word( item ; "|" ; 2 ) ) ); item := @Implode( item : "-------------------------------------" : @Text( sum ) : "======================" : "" : "" ; @NewLine ); @If( sum > largest ; largest := sum ; "" ); sum := ""; last := @True ) ); item := @Word( item ; "|" ; 2 ); item := @If( pos = 1 ; curname : item ; last & pos != max; item : nextname ; item ); item ) ); @Implode( list ; @NewLine ) + "Biggest sum: " + @Text(largest );