2012-03-31 1 views
0

У меня есть 100 листов Excel финансовой отчетности для извлечения выбранных данных. Например, первый лист из компании A, его элемент «Итоговые активы» находится в A10, но во втором листе «Итоговые активы» находятся в A17, третий - в A12 ....Как извлечь строки в Excel с заданным именем по функции «xlsread» в Matlab?

Таким образом, каждый финансовый элементы позиции имеют разные позиции в листе Excel. Есть ли способ получить их, указав их имя, например «Общие активы», «Другие активы заработка» и т. Д., Тогда мне не нужно читать их местоположение по одному.

+0

Вы знаете, как получить матрицу данных для каждого листа? Если это так, и если элемент «Всего активов» всегда находится в первом столбце, вы можете получить цикл while, который ищет эту строку. – Squazic

+0

@Squazic, не могли бы вы привести пример использования цикла while для поиска строки? Спасибо! –

+0

Можете ли вы привести несколько строк, из которых выглядят данные, полученные из 'xlsread'? – Squazic

ответ

1

извините за задержку. Вы хотите импортировать данные с помощью

[num,txt] = xlsread('EXCELFILEHERE'); 

num будет представлять собой матрицу из числовых значений, в то время как txt массив ячеек всех текстовых значений. Далее вам нужно искать txt для нужной фразы, используя что-то вроде

[row,col] = find(ismember(txt,'Total Assets')==1) 

Это даст вам список столбцов и соответствующих строк, где вы сможете найти эту фразу в txt. Тогда это просто вопрос о подключении этой строки к num, чтобы получить нужные данные. Имейте в виду, что размеры num и txt могут немного отличаться в зависимости от того, как форматируются ваши данные. Я предлагаю файлы .xls, если можно.

+0

Вы также можете использовать '[num, txt, raw]' и искать данные 'raw'. Таким образом, не будет никакого смещения, которое может отбросить вас при переключении между переменными 'num' и' txt'. – scenia