Is there a machine learning algorithm to find similar sales patterns? I have a dataset as follows



(and the table extends to include an extra 146 columns for companies 4-149)

Is there an algorithm I could use effectively to find similar patterns in sales from the other companies when compared to my company? 

I thought of using k-means clustering, but as I'm dealing with 150 companies here it would likely become a bit of a mess, and I don't think linear regression would work here.
I would recommend a hierarchical cluster algorithm, after normalising your numbers into proportions. Then the clustering should be able to identify similar patterns. Depending at which level you make the cut, you can decide how many clusters you want.

A great resource on this topic is Kaufman, L., &amp; Roussew, P. J. (1990). "Finding Groups in Data - An Introduction to Cluster Analysis". John Wiley &amp; Sons