To process Excel files from different sites, I make variations on this:
data = {{"h1", "h2"}, {1, 2}, {3, 4}, {5, ""}}; find[x_String] := Cases[Transpose[data], {x, __}] In[]=find["h1"] Out[]={{"h1", 1, 3, 5}}
If this is fuzzy data, you can usually easily overlay it to make it suitable for transposition. In addition, some of my sources are lazy with formatting, sometimes changing headings, sometimes there is an empty line in front of the heading, etc.:
find2[x_String,data_List] := Cases[Transpose[data], {___, y_String /; StringMatchQ[StringTrim[y], x, IgnoreCase -> True], __}] In[]=find2["H1",data] Out[]={{"h1", 1, 3, 5}} data2 = {{"", ""}, {"H1 ", "h2"}, {1, 2}, {3, 4}, {5, ""}}; In[]=find2["h1",data2] Out[]={{,"H1 ", 1, 3, 5}}