Jamie wrote: Hi PAzevedo Thank you very much for your reply. You understood me perfectly and your code does exactly what I want! I have certainly added hash object lookup to my list of "things to use in the future". It runs very quickly indeed. For my personal benefit could you explain this part please? if quote&i & new_quote>quote&i then new_rank+1; How does the second ampersand work in this statement? Thank you very much for your suggestion, and once again to everyone else who took time to help me. Jamie You mean the operator "&"? It's equivelent to "and" operator as "|" is equivelen to "or" operator. Since the number of quoted products is different in each quote you have to test if the quote you're analizing was made and, if so, you increase the new rank each time an original quote is less than or equal to the new quote. You may have to test the behaviour of the program for products with the same quote inside the same quoteno in order to refine the comparison operator "<". As a note about hash objects, it haves a limitation of the memory available for each SAS session (not system memory). Since all the hashed dataset is loaded into memory the program will break if not enough memory is available. Regards, PA.
... View more