Как объединить несколько файлов Excel? - PullRequest
0 голосов
/ 23 октября 2010

Идея заключается в следующем: я получаю ежемесячные отчеты в файлах Excel о большом количестве компаний с несколькими столбцами данных, такими как их цена закрытия на месяц, рейтинг, p / e и, возможно, еще один столбец.Каждая компания сортируется по уникальному идентификатору компании, но из месяца в месяц в отчетах будет содержаться около 70% записей о тех же компаниях, в то время как в остальных компаниях за предыдущие месяцы не будет, и появятся некоторые новые компании.

Итак, у меня к настоящему времени около 10 файлов Excel, и мне нужно объединить их в один файл Excel, в котором данные будут отсортированы по месяцам, а в столбце будут отсортированы компании, поскольку у них есть уникальный идентификатор компании.Таким образом, если у компании есть записи всего за два месяца, она разместит записи о ней точно в те же месяцы, если у нее есть все, она разместит данные за все месяцы.

Как я могу это сделать?Мне нужна помощь, и я знаю только Excel и Access ..

1 Ответ

0 голосов
/ 24 октября 2010

К сожалению, у меня нет простого решения в один клик для вас.

Если информация однородна в том, что, например, идентификатор компании всегда находится в столбце A, P / E в столбце B и т. Д. Тогда довольно тривиально (если вы знакомы с некоторыми основами программирования) написать макрос, который извлекает Информация из файлов Excel и помещает ее в один файл. Я сделал много таких мини-приложений, объединяя данные из разных файлов Excel в одно.

Макроредактор (VBA-редактор) очень мощный, а файлы справки довольно полные, поэтому, если вы знаете хотя бы немного базового программирования и данные равномерно представлены в электронных таблицах, то у вас не должно быть проблема при написании макроса, извлекающего информацию.

Только для начала.

Public Sub GatherData()
    Dim wb as WorkBook
    Dim ws as Worksheet

    set wb = Application.Workbooks.open("file.xls")
    set ws = wb.worksheets("sheet1")
    ws.cells(1,1).value = "Hello"

    wb.save()
    wb.close()
    set ws = Nothing
    set wb = Nothing
End Sub

Это написано от руки и может содержать ошибки кодирования, но должно дать вам представление о том, как написать макрос. Хороший способ изучения синтаксиса - записать несколько макросов и выполнить некоторые основные операции, а затем посмотреть на генерируемый код. Он дает подсказки, какие операции доступны. Надеется, что это помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...