Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сбор данных с листов с преобразованием - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Сбор данных с листов с преобразованием
Alexander Дата: Понедельник, 15.09.2014, 10:56 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте уважаемые форумчане.
Есть задача, которую нужно решить в экселе. Понимаю, что задача легкая но разбираться некогда. Поиск результатов не дал.
Суть задачи - собирать данные из разных листов на один. Преобразовывать некоторые данные. Проблема заключается в том что листы постоянно обновляются а данные с них должны быть по порядку.
Лист Вася- 1 строка, лист Петя - 3 строки, Лист Зина- 2 строки
Сводный лист собирает информацию из определенных столбцов и получается
Вася- 1
Петя - 3
Зина- 2

Через день данные в листах меняются ( допустим в листе Вася появилось еще 2 строки которые должны быть вставлены в сводном листе перед Петей) в итоге получается картина
Вася- 3
Петя - 3
Зина- 2
формула или макрос должны вставлять новую информацию между уже .
Как это лучше реализовать?
К сообщению приложен файл: 9983634.xlsx (28.2 Kb)
 
Ответить
СообщениеЗдравствуйте уважаемые форумчане.
Есть задача, которую нужно решить в экселе. Понимаю, что задача легкая но разбираться некогда. Поиск результатов не дал.
Суть задачи - собирать данные из разных листов на один. Преобразовывать некоторые данные. Проблема заключается в том что листы постоянно обновляются а данные с них должны быть по порядку.
Лист Вася- 1 строка, лист Петя - 3 строки, Лист Зина- 2 строки
Сводный лист собирает информацию из определенных столбцов и получается
Вася- 1
Петя - 3
Зина- 2

Через день данные в листах меняются ( допустим в листе Вася появилось еще 2 строки которые должны быть вставлены в сводном листе перед Петей) в итоге получается картина
Вася- 3
Петя - 3
Зина- 2
формула или макрос должны вставлять новую информацию между уже .
Как это лучше реализовать?

Автор - Alexander
Дата добавления - 15.09.2014 в 10:56
AndreTM Дата: Понедельник, 15.09.2014, 12:01 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
Ну, макросом будет надёжнее:
К сообщению приложен файл: 2-12991-1-1.xls (82.0 Kb)


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Понедельник, 15.09.2014, 12:02
 
Ответить
СообщениеНу, макросом будет надёжнее:

Автор - AndreTM
Дата добавления - 15.09.2014 в 12:01
Alexander Дата: Понедельник, 15.09.2014, 13:05 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Ух ты здорово! Только у меня программа после разблокировки макроса запрашивает Data Source - DSN file
Это что за зверь такой?

И еще можно добавить функцию при пустых значниях в ячейках игнорировать данную строку.
Сейчас Зина забыла данные ввести и вся информация из ее листа не отоброзилась


Сообщение отредактировал Alexander - Понедельник, 15.09.2014, 13:11
 
Ответить
СообщениеУх ты здорово! Только у меня программа после разблокировки макроса запрашивает Data Source - DSN file
Это что за зверь такой?

И еще можно добавить функцию при пустых значниях в ячейках игнорировать данную строку.
Сейчас Зина забыла данные ввести и вся информация из ее листа не отоброзилась

Автор - Alexander
Дата добавления - 15.09.2014 в 13:05
AndreTM Дата: Понедельник, 15.09.2014, 14:33 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
запрашивает Data Source - DSN file
Это у вас надо спросить - это ВАШ источник данных :)
Либо это не ваш файл-исходник :(

можно добавить функцию при пустых значниях в ячейках игнорировать данную строку.
А её разве нет? Именно игнирируются (сначала) строки с незаполненным вторым столбцом, затем считываются те, у которых есть хоть что-то во втором столбце (до первого пропуска). Ну а вам - все карты в руки, сделайте, как вам надо. Я не увидел у вас никаких условий на перенос (кроме общих рассуждений "надо что-то взять и вставить"), так что сделал, как понял.
И не забывайте - вам здесь дают ПРИМЕР решения. Т.е. вы хотя бы попытайтесь разобраться и понять, что вам ответили. А то создается впечатление, что вы пытаетесь получить конкретное решение некоей конкретной вашей задачи, при этом решающие не обладают полным набором исходных данных, а вы не можете правильно объяснить свою хотелку :)


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
запрашивает Data Source - DSN file
Это у вас надо спросить - это ВАШ источник данных :)
Либо это не ваш файл-исходник :(

можно добавить функцию при пустых значниях в ячейках игнорировать данную строку.
А её разве нет? Именно игнирируются (сначала) строки с незаполненным вторым столбцом, затем считываются те, у которых есть хоть что-то во втором столбце (до первого пропуска). Ну а вам - все карты в руки, сделайте, как вам надо. Я не увидел у вас никаких условий на перенос (кроме общих рассуждений "надо что-то взять и вставить"), так что сделал, как понял.
И не забывайте - вам здесь дают ПРИМЕР решения. Т.е. вы хотя бы попытайтесь разобраться и понять, что вам ответили. А то создается впечатление, что вы пытаетесь получить конкретное решение некоей конкретной вашей задачи, при этом решающие не обладают полным набором исходных данных, а вы не можете правильно объяснить свою хотелку :)

Автор - AndreTM
Дата добавления - 15.09.2014 в 14:33
Alexander Дата: Вторник, 16.09.2014, 10:29 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Андрей здравствуйте.
с DSN базой действительно - мой косяк.

Дело в том что я не знаком с какросами а методом тыка ничего не получается.
в ходе проверки обнорежились две проблеммы.
1- не пойму где изменть номер строки начала сбора данных. допустим мне нужно собирать данные на листах начиная со строки №3
2- Если данные в столбце В отсутствуют то макрос перескакивает на следующий лист. Не смотря на то, что дальше есть данные. А если в строке Е отсутствуют данные то макрос выдает ошибку и следующие листы не обрабатывает.
3 - Возможно ли добавить строку в макрос котора бы регулировала начало сбора данных допустим для листа 3 с задоной строки. ( для зины сбор данных начинать со строки № 50 )

В любом случае - спасибо за помощь и затраченное на меня время
К сообщению приложен файл: Copy_of_2-12991.xls (98.5 Kb)
 
Ответить
СообщениеАндрей здравствуйте.
с DSN базой действительно - мой косяк.

Дело в том что я не знаком с какросами а методом тыка ничего не получается.
в ходе проверки обнорежились две проблеммы.
1- не пойму где изменть номер строки начала сбора данных. допустим мне нужно собирать данные на листах начиная со строки №3
2- Если данные в столбце В отсутствуют то макрос перескакивает на следующий лист. Не смотря на то, что дальше есть данные. А если в строке Е отсутствуют данные то макрос выдает ошибку и следующие листы не обрабатывает.
3 - Возможно ли добавить строку в макрос котора бы регулировала начало сбора данных допустим для листа 3 с задоной строки. ( для зины сбор данных начинать со строки № 50 )

В любом случае - спасибо за помощь и затраченное на меня время

Автор - Alexander
Дата добавления - 16.09.2014 в 10:29
Alexander Дата: Четверг, 18.09.2014, 11:09 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

С пунктом 1 моего предыдущего сообщения я разобрался, только это мало помогло.
Дело в том, что на данный момент я пробую оптимизировать работы данного приложения.

1 что мне нужно сделать - для каждого листа установить строку, с которой будет начинаться сбор данных.
2 если в столбце 2 нет данных то необходимо заменить их на ХХХ
3 если в столбце 5 нет данных нужно делать проверку данных до тех пор пока данные в столбце 5 не закончатся и только после этого переходить на следующий лист.

Кто сможет мне с этим помочь?

Простите за корявое изложение мыслей :-(
 
Ответить
СообщениеС пунктом 1 моего предыдущего сообщения я разобрался, только это мало помогло.
Дело в том, что на данный момент я пробую оптимизировать работы данного приложения.

1 что мне нужно сделать - для каждого листа установить строку, с которой будет начинаться сбор данных.
2 если в столбце 2 нет данных то необходимо заменить их на ХХХ
3 если в столбце 5 нет данных нужно делать проверку данных до тех пор пока данные в столбце 5 не закончатся и только после этого переходить на следующий лист.

Кто сможет мне с этим помочь?

Простите за корявое изложение мыслей :-(

Автор - Alexander
Дата добавления - 18.09.2014 в 11:09
AndreTM Дата: Четверг, 18.09.2014, 13:03 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
Так вы определитесь поточнее, что считать таблицей данных на листе? То есть опишите конкретно, как, по каким признакам, строго можно определить начальную строку данных и как - конечную. Потому что заявление "в столбце 2 нет данных... если в столбце 5 нет данных, то (sic!) делать проверку, пока не закончатся данные в столбце 5 (вы сами поняли, что написали?)..." - это смахивает на выражение "нигде нет никаких данных, но данные нужно собирать" :)
Ну или сразу заявляйте, что, мол, данные из внешнего источника, и определяться нужно по параметрам полученного из внешнего источника объекта...
Есть, конечно, ещё один вариант - сначала собрать все строки из используемой области листов-источников (ну, за исключением строки-заголовка), а затем по каким-то признакам разом удалить "лишние". Вот только меня как-то напрягает ваше "у Зины собирать со строки 50"... Вы уж как-нибудь определитесь: у вас листы - однотипные источники данных, или свалка кучек разного мусора. :(


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеТак вы определитесь поточнее, что считать таблицей данных на листе? То есть опишите конкретно, как, по каким признакам, строго можно определить начальную строку данных и как - конечную. Потому что заявление "в столбце 2 нет данных... если в столбце 5 нет данных, то (sic!) делать проверку, пока не закончатся данные в столбце 5 (вы сами поняли, что написали?)..." - это смахивает на выражение "нигде нет никаких данных, но данные нужно собирать" :)
Ну или сразу заявляйте, что, мол, данные из внешнего источника, и определяться нужно по параметрам полученного из внешнего источника объекта...
Есть, конечно, ещё один вариант - сначала собрать все строки из используемой области листов-источников (ну, за исключением строки-заголовка), а затем по каким-то признакам разом удалить "лишние". Вот только меня как-то напрягает ваше "у Зины собирать со строки 50"... Вы уж как-нибудь определитесь: у вас листы - однотипные источники данных, или свалка кучек разного мусора. :(

Автор - AndreTM
Дата добавления - 18.09.2014 в 13:03
Alexander Дата: Четверг, 18.09.2014, 14:12 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Так вы определитесь поточнее, что считать таблицей данных на листе? То есть опишите конкретно, как, по каким признакам, строго можно определить начальную строку данных и как - конечную.
Начальную строку для каждого файла указывать в ручную
_ начало для листа 1 стока 3
_начало для листа 2 строка 6
_Начало для листа 3 строка 50
Строки необходимо указать. Реальный файл содержит 10 листов. Суть в том что некоторые листы содержат 200 строк из которых нужны только последние 20 или больше в зависимости от периода заполнения. А некоторые листы имеют только 10 заполненных строк. По этому лучше строки начала сбора данных задавать руками.

Ну или сразу заявляйте, что, мол, данные из внешнего источника, и определяться нужно по параметрам полученного из внешнего источника объекта...
Да. Данные в листы добавляются из других источников которые невозможно контролировать. Тоесть в строке могут быть заполнены все ячейки а могут что то пропустить или того хуже формат данных изменить. По этой причине лучше работать с тем, что получаем.

Вы уж как-нибудь определитесь: у вас листы - однотипные источники данных, или свалка кучек разного мусора.
Еще какой мусор!!!
Во время когда я начал этим заниматься, все листы были однотипными, но через пару дней, данные начали различаться.
В предыдущем сообщении я попытался написать алгоритм сбора данных.
1- Работаем с листом №1 сбор данных начинать со строки № 3
2- Данные в столбце А остаются без изменений, если ячейка пустая, ничего страшного идем дальше.
3- В сводной таблице в столбце В генерируется имя которое состоит из (имя листа)+(В3)+(D3)если в ячейках данных нет, вставляем текст «ХХХ»
4- В сводную таблицу разбиваем данные из ячейки Е3. Данная ячейка основная и если тут нет данных, проверяем следующую строку если в следующей строке в ячейке Е4 тоже пусто, проверяем следующую и так пока не появятся данные в столбце Е от (Е3 до Е5000) . Если данные не появились переходим к следующему листу.
Лист-2
1- Работаем с листом №2 сбор данных начинать со строки № 6 ( строку можно менять в макросе )
2- Данные в столбце А остаются без изменений, если ячейка пустая, ничего страшного идем дальше.
3- В сводной таблице в столбце В генерируется имя которое состоит из (имя листа)+(В6)+(D6)если в ячейках данных нет, вставляем текст «ХХХ» пример: ( Петя-ХХХ-9/12/2014)
4- В сводную таблицу разбиваем данные из ячейки Е6. Данная ячейка основная и если тут нет данных, проверяем следующую строку. Если в следующей строке в ячейке Е7 тоже пусто, проверяем следующую и так пока не появятся данные в столбце Е. Если данные не появились переходим к следующему листу.
Я так понимаю что нужно указать диапазон проверки столбца Е - пусть будет от (Е6 до Е5000)
 
Ответить
СообщениеТак вы определитесь поточнее, что считать таблицей данных на листе? То есть опишите конкретно, как, по каким признакам, строго можно определить начальную строку данных и как - конечную.
Начальную строку для каждого файла указывать в ручную
_ начало для листа 1 стока 3
_начало для листа 2 строка 6
_Начало для листа 3 строка 50
Строки необходимо указать. Реальный файл содержит 10 листов. Суть в том что некоторые листы содержат 200 строк из которых нужны только последние 20 или больше в зависимости от периода заполнения. А некоторые листы имеют только 10 заполненных строк. По этому лучше строки начала сбора данных задавать руками.

Ну или сразу заявляйте, что, мол, данные из внешнего источника, и определяться нужно по параметрам полученного из внешнего источника объекта...
Да. Данные в листы добавляются из других источников которые невозможно контролировать. Тоесть в строке могут быть заполнены все ячейки а могут что то пропустить или того хуже формат данных изменить. По этой причине лучше работать с тем, что получаем.

Вы уж как-нибудь определитесь: у вас листы - однотипные источники данных, или свалка кучек разного мусора.
Еще какой мусор!!!
Во время когда я начал этим заниматься, все листы были однотипными, но через пару дней, данные начали различаться.
В предыдущем сообщении я попытался написать алгоритм сбора данных.
1- Работаем с листом №1 сбор данных начинать со строки № 3
2- Данные в столбце А остаются без изменений, если ячейка пустая, ничего страшного идем дальше.
3- В сводной таблице в столбце В генерируется имя которое состоит из (имя листа)+(В3)+(D3)если в ячейках данных нет, вставляем текст «ХХХ»
4- В сводную таблицу разбиваем данные из ячейки Е3. Данная ячейка основная и если тут нет данных, проверяем следующую строку если в следующей строке в ячейке Е4 тоже пусто, проверяем следующую и так пока не появятся данные в столбце Е от (Е3 до Е5000) . Если данные не появились переходим к следующему листу.
Лист-2
1- Работаем с листом №2 сбор данных начинать со строки № 6 ( строку можно менять в макросе )
2- Данные в столбце А остаются без изменений, если ячейка пустая, ничего страшного идем дальше.
3- В сводной таблице в столбце В генерируется имя которое состоит из (имя листа)+(В6)+(D6)если в ячейках данных нет, вставляем текст «ХХХ» пример: ( Петя-ХХХ-9/12/2014)
4- В сводную таблицу разбиваем данные из ячейки Е6. Данная ячейка основная и если тут нет данных, проверяем следующую строку. Если в следующей строке в ячейке Е7 тоже пусто, проверяем следующую и так пока не появятся данные в столбце Е. Если данные не появились переходим к следующему листу.
Я так понимаю что нужно указать диапазон проверки столбца Е - пусть будет от (Е6 до Е5000)

Автор - Alexander
Дата добавления - 18.09.2014 в 14:12
Alexander Дата: Понедельник, 22.09.2014, 07:53 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Не ужели, кроме AndreTM никто не может помочь?
 
Ответить
СообщениеНе ужели, кроме AndreTM никто не может помочь?

Автор - Alexander
Дата добавления - 22.09.2014 в 07:53
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!