Страницы: 1
RSS
Разделить одну таблицу на несколько, Разделить одну таблицу excel, на несколько по определенному критерию
 
Доброго времени суток! Подскажите пожалуйста, как можно разделить одну таблицу excel, на несколько файлов (excel) по определенному критерию. Пример:
В документе №1 файл выглядит в первозданном виде. В итоге файл должен быть разделен на несколько, как в документах №2, №3, №4, №5.
Первичный документ имеет около 1000 строк, критериев (все в одном столбце) около 200 данную операцию нужно выполнять каждый день, поэтому хочу данный процесс автоматизировать.
Думаю, что я не первый кто сталкивается с такой проблемой и выход есть, но в темах форума не нашел. Не являюсь большим знатоком excel, но предполагаю что нужен макрос.  
 
Готов заплатить за готовый макрос!!!
 
То что вы хотите и в Plex конечно есть (сначала разобрать по листам, потом разобрать листы по книгам)
Но вот сделала под ваш пример. Проверяйте.
В директории файла создается папка temp в неё складываются нарезанные файлы.
Работать надо не 12 часов, а головой.
 
Спасибо большое!!! Низкий вам поклон!!!!
 
2 варианта - разбор по ЛИСТАМ, по КНИГАМ - применительно данного примера, с идеями от Leanna -
но реализация через запросы SQL... на больших выборках, возможно, работать будет быстрее - надо тестить, при изменении структуры данных - оптимизировать немного...
P.S. SQL - для случаев когда данные имеют правильную структуру БД
Изменено: JeyCi - 31.03.2015 10:07:04
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi, и Вам спасибо больше!
 
Leanna, JeyCi, здравствуйте, не могу адаптировать макрос нужному файлу, выдает ошибку (вложил картинку). Может проблема в исходном файле фильтровать нужно по столбцу 20 категория. Буду очень признателен если вы мне поможете еще раз.

Файл удален: превышение допустимого размера вложения [МОДЕРАТОР]
 
Исправила. Путь к файлу надо ещё дополнительно исправлять. Отсюдавзяла исправлялку на RegExp.
Работать надо не 12 часов, а головой.
 
в моём случае, полагаю, дело в этих строках
Код
Sql = "SELECT F1, F2" _
            & " FROM [Лист1$A:B]"
    cn.Open sCon
        For i = 0 To UBound(arrDic)
        sSQL = Sql & " WHERE F2='" & CStr(arrDic(i)) & " '"
SELECT - поставьте нужные Fields (столбцы) - F20 (если нужен только 20-й) или перечислите все которые нужны F1, F2 и т.д. (по такому принципу)
FROM - должна быть указана таблица (Лист$ и диапазон столбцов) - на листе не должно быть лишних данных (либо саму таблицу, лучше скопируйте на отдельный лист, укажите диапазон from и макрос запустите с этого листа)...
если англ/яз версия xl - Sheet - это лист... или название листа как есть
WHERE F20= и дальше как по коду... (насколько поняла речь о разборе по 20-му столбцу)... т к здесь должно стоять условие отбора
===============
должно помочь ;) (файл не смотрела)
P.S. путь к файлу, наверно, см. ответ от Leanna - если будут проблемы
Изменено: JeyCi - 01.04.2015 16:10:27
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
кстати, если есть шапки - запрос надо модифицировать...
работает так (как я об этом подумала) - вариант более короткий не знаю...
идеи укоротить выгрузку шапки в самом запросе - приветствуются...
P.S. для инфо: Использование библиотеки ADO (Microsoft ActiveX Data Object)
P.P.S закралась небольшая ошибка - исправлена - файл перевложила    
Изменено: JeyCi - 01.04.2015 21:41:01
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
Готов заплатить за готовый макрос...
Низкий вам поклон
По чем нынче поклоны? :)
 
Вариант без макроса: в первую строку вставляем надписи ФИО и Должность - заголовки столбцов. Колонка Должность2 аналогична колонке Должность (один-в-один).
Накидываем сводник. Должность выводим в фильтр ФИО и Должность2 - в строки(Лист2). Далее Меню Параметры-Имя-Отобразить страницы фильтра отчета. Добавятся несколько листов согласно значению фильтра.


 
Неизлечимых болезней нет, есть неизлечимые люди.
Страницы: 1
Наверх