| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > Вытащить данные из нескольких файлов Excel |
| Автор: mmvds 7.11.2010, 17:08 |
| Здравствуйте, подскажите пожалуйста, как решить такую проблему: есть много файлов вида f_dd.mm.yyyy.csv (текстовый с разделителем ";") в них содержатся данные за дату dd.mm.yyyy по двум товарам A и B например: A;300 B;800 Как объединить все эти данные в одну таблицу, например с такой шапкой: ДАТА А B С экселем дружу не сильно, в голову приходит только макрос на открытие файла, копирование, вставка но опять же это придется записывать вручную для каждого файла его имя. Добавил пример данных за несколько дней |
| Автор: Naghual 7.11.2010, 18:03 |
| Проще будет обработать все файлы в папке в цикле и не заморачиваться с именами. |
| Автор: Akina 7.11.2010, 20:24 |
| В цикле выполнить конкатенацию в один файл, затем импортировать в Эксель. |
| Автор: mmvds 7.11.2010, 21:25 | ||||||
| Проблема решилась, помогли на другом форуме, немного не по Экселевски, но мне главное решить задачу 1) По месяцам:
Теперь за год:
2) потом новый столбец D,E в D1="A" в E1="B" формулой =ЕСЛИ($D$1=A1;B1;"") растягиваем вниз по D, =ЕСЛИ($E$1=A1;B1;"") вниз по E Получили столбец D где данные по А, где данные по Б - пусто, для соседнего столбца E - наоборот 3)Избавляемся от лишних пробелов: Присваиваем Столбцу D Имя ЕстьПустые1, столбцу E Есть Пустые2 Столбцу F НетПустых1, столбцу G НетПустых2 встаем в F1
Аналогично для G1 растягиваем до половины таблицы добавляем даты в столбец с датой 01.01.2010, 02.01.2010, растягиваем вниз пока есть значения, убеждаемся, что последняя дата- сегодняшнее число, все готово |
| Автор: Akina 7.11.2010, 22:00 |
| Шаг 1 искренне порадовал... странно, что тебя по строке на файл не заставили написАть... и ещё: если у тебя NTFS - результат скорее всего будет верным, но если ФАТ32 - тебя ждут сюрпризы. |
| Автор: mmvds 7.11.2010, 22:14 | ||
| По первому шагу именно так, т.к. если сделать тупо copy /b f*.csv all.csv то из-за особенностей сортировки сначала копирует все 01-ые числа, всех месяцев, потом 02, потом 03 и т.д. что не верно. Поэтому и пришлось сделать промежуточные файлы для каждого месяца, все верно Немного неправильно написал общее объединение, верно вот так:
|
| Автор: Akina 8.11.2010, 00:18 | ||
Собсно я об этом и говорил, упоминая конкатенацию. Добавлено через 3 минуты и 8 секунд И опять-таки - это корректно только на НТФС (ну и на exFAT). |