Для обработки файлов Excel с разных сайтов я делаю вариации на это:
data = {{"h1", "h2"}, {1, 2}, {3, 4}, {5, ""}};
find[x_String] := Cases[Transpose[data], {x, __}]
In[]=find["h1"]
Out[]={{"h1", 1, 3, 5}}
Если это рваные данные, вы обычно можете легко их заполнить, чтобы сделать их пригодными для транспонирования. Кроме того, некоторые из моих источников ленивы с форматированием, иногда заголовки меняют регистр, иногда перед заголовком стоит пустая строка и так далее:
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}}