|
объединение таблиц
|
|||
---|---|---|---|
#18+
как бы формулой, без макросов, получить таблицу объединенную из нескольких. количество строк заранее неизвестно. таблица 1 наименование количествострока 1 столбец 1 321строка 2 столбец 1 901строка 3 столбец 1 217строка 4 столбец 1 1013строка 5 столбец 1 113строка 6 столбец 1 1313строка 7 столбец 1 630строка 8 столбец 1 1554строка 9 столбец 1 1410таблица 2наименование количествострока 1 столбец 3 1714строка 2 столбец 3 653строка 3 столбец 3 1941строка 4 столбец 3 792строка 5 столбец 3 1021строка 6 столбец 3 1121результат наименование количествострока 1 столбец 1 321строка 2 столбец 1 901строка 3 столбец 1 217строка 4 столбец 1 1013строка 5 столбец 1 113строка 6 столбец 1 1313строка 7 столбец 1 630строка 8 столбец 1 1554строка 9 столбец 1 1410строка 1 столбец 3 1714строка 2 столбец 3 653строка 3 столбец 3 1941строка 4 столбец 3 792строка 5 столбец 3 1021строка 6 столбец 3 1121 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 20:50 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
Можно вот так или внутренним запросом, тоже вариант. А для чего вам это нужно? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 00:19 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
объединяемых таблиц будет больше, поэтому хочется большей автоматизации. а можно создать для формулы индекс такие массивы? =индекс((A:A;C:C; и т.д.);строка;;область) строка = {1:2:3:4:5:6:7:8:9:1:2:3:4:5:6: и т.д.} область={1:1:1:1:1:1:1:1:1:2:2:2:2:2:2: и т.д.} ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 13:52 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
box731объединяемых таблиц будет больше, поэтому хочется большей автоматизации. а можно создать для формулы индекс такие массивы? =индекс((A:A;C:C; и т.д.);строка;;область) строка = {1:2:3:4:5:6:7:8:9:1:2:3:4:5:6: и т.д.} область={1:1:1:1:1:1:1:1:1:2:2:2:2:2:2: и т.д.} Вы бы взяли, да и сами попробовали. Тем же формулами, что в моем примере, можно и больше кстати, если приложить усилия. А для большей автоматизации либо VBA, либо внутренним запросом. А если формулами извращаться, то вы на неправильном пути. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 16:53 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
выполнение запроса дает, как я понимаю, статический результат, а нужна динамика. макросы создают дополнительные неудобства с их обслуживанием. поэтому унифицированное решение задачи (формулами) предпочтительнее, если оно возможно. способов как развернуть двумерный массив в одномерный или объединить несколько массивов я не смог найти, может быть, есть еще какие-нибудь пути решения моей задачи? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 18:04 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
box731выполнение запроса дает, как я понимаю, статический результат, а нужна динамика. макросы создают дополнительные неудобства с их обслуживанием. поэтому унифицированное решение задачи (формулами) предпочтительнее, если оно возможно. способов как развернуть двумерный массив в одномерный или объединить несколько массивов я не смог найти, может быть, есть еще какие-нибудь пути решения моей задачи? Запрос дает вполне себе динамический результат. Жизнь сама по себе создает неудобства с ее обслуживанием, но если хочешь жить - умей вертеться. Чем не устраивает предложенный вариант? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 18:32 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
все же запрос не дает динамики, обновление происходит после нажатия на кнопку Обновить, или в полуавтоматическом режиме, через заданные интервалы времени, в минутах. предложенный вариант работает, только его сложно распространить на большее количество таблиц, в результате - высокая вероятность допустить ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 19:13 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
"Высокая вероятность допустить ошибку" - как раз при использовании формул, работы с массивами/диапазонами на листе и т.п. Как раз использование VBA - быстрый и правильный вариант. А если можно поменять исходную структуру данных (например, разнести таблицы на отдельные листы) - то и вообще... Ну и по динамике - можно ведь запускать макрос обновления и при любом изменении в данных - для этого надо его подвесить не только на кнопку, но и на событие Worksheet_Change() или Workbook_SheetChange() ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 19:46 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
AndreTM"Высокая вероятность допустить ошибку" - как раз при использовании формул, работы с массивами/диапазонами на листе и т.п. Как раз использование VBA - быстрый и правильный вариант. А если можно поменять исходную структуру данных (например, разнести таблицы на отдельные листы) - то и вообще... Ну и по динамике - можно ведь запускать макрос обновления и при любом изменении в данных - для этого надо его подвесить не только на кнопку, но и на событие Worksheet_Change() или Workbook_SheetChange() +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 19:54 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
box731 - у вас какой-то ограниченный подход к задаче... вы говорите, что у вас кол-во таблиц, стоящих в ряд на одном листе заранее не известно. как я понимаю, массив растет вправо путем ручного добавления таблиц на лист. а зачем? почему не добавить их вниз, если структура одинакова... что в исходниках? может там, напимер, файлы txt. тогда пишите запрос на VB, юзайте sql. это проще, чем кажется. если структура однородна, sql-запрос - это самый верняк. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 10:47 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
AndreTM...использование VBA - быстрый и правильный вариант... Это для тех кто знает VBA А для тех кто разбирается в Excel - быстро и правильно использовать инструменты Excel А если ещё и макросы запрещены, политикой предприятия, например :) AndreTM...разнести таблицы на отдельные листы... AndreTM , не узнаю тебя... Разнести таблицы на отдельные листы - это первая (одна из) ошибка начинающих пользователей Как ты можешь советовать остальным делать её?! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 11:29 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
Serge 007 AndreTM , не узнаю тебя... Разнести таблицы на отдельные листы - это первая (одна из) ошибка начинающих пользователей Как ты можешь советовать остальным делать её?!А я образец файла и не смотрел... В приведённом виде - да, однотипную инфу сливать удобнее на один лист, только ещё завести дополнительное поле-столбец с номером таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 12:42 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
вот такая задача встала на пути. =ИНДЕКС(($A$3:$A$19;$C$3:$C$19;$E$3:$E$19);{1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:1:2:3:4:5:6};1;{1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:3:3:3:3:3:3:3:3:3:3:3:3:3:3:3:3:3:3:4:4:4:4:4:4}) если ввести эту формулу массива в несколько ячеек, то она работает. а как получить те же результаты массивом в одной ячейке? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 17:56 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
Serge 007AndreTM...использование VBA - быстрый и правильный вариант... Это для тех кто знает VBA А для тех кто разбирается в Excel - быстро и правильно использовать инструменты Excel Общее и для тех и для других - для решения каждой задачи необходимо использовать подходящий для решения именно этой задачи инструмент. В данном случае инструмент (Excel) выбран неверно. Отсюда и сложности. И совет AndreTM - это имхо наиболее правильное решение. Есть ещё неплохое решение - импорт данных в Access и обработка там, при необходимости экспорт результатов обратно в Excel. Конечно, если ты не настаиваешь на том, что полностью твой тезис таков: "Это для тех кто знает VBA. А для тех кто разбирается в Excel - быстро и правильно использовать инструменты Excel, и ни при каких обстоятельствах не пытаться освоить VBA." ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 18:10 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
Но уж если ОЧЕНЬ упёрлось обойтись формулами - вот черновой вариант. Его можно "растянуть" и на несколько таблиц - просто добавляя соответствующие подсчёты и ветвления. Также можно добавить проверку на то, что выбраны данные всех таблиц, и выводить там пустую строку (сейчас выведется ноль). Но это извращение чистой воды. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 18:31 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
вот файл с рабочим вариантом, чтобы было понятно направление поисков. получается решение с одним вспомогательным столбцом и простым расширением количества таблиц, но с рядом ограничений. от вспомогательных таблиц нужно избавится. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 19:40 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
AkinaВ данном случае инструмент (Excel) выбран неверно. Согласен. Но если уж выбрали этот инструмент, то надо подстраиваться под его возможности. Объеденив две таблицы в одну, мы легко решаем поставленную задачу средствами Excel Akinaсовет AndreTM - это наиболее правильное решение Не то что неправильное, а я бы сказал даже вредное, тем более что решением средствами Excel это назвать нельзя. Форум ведь и новички читают и когда они видят подобный совет от форумчанина с кол-вом постов более 5000 - они принимают его. А потом начинают сыпать темами типа "Как собрать/просуммировать/упорядочить данные с разных листов?" Akinaи ни при каких обстоятельствах не пытаться освоить VBA А вот это каждый сам для себя решает Лично мне, в жизни, при работе с МОИМИ файлами, НИ РАЗУ не понадобилось применять макросы Использую их (макросы) только исправляя ошибки в архитектуре данных ЧУЖИХ файлов ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2013, 10:44 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
Serge 007Akinaсовет AndreTM - это наиболее правильное решение Не то что неправильное, а я бы сказал даже вредное, тем более что решением средствами Excel это назвать нельзя. Форум ведь и новички читают и когда они видят подобный совет от форумчанина с кол-вом постов более 5000 - они принимают его. А потом начинают сыпать темами типа "Как собрать/просуммировать/упорядочить данные с разных листов?" Я имел в виду только ту часть ответа, где предлагается использовать VBA - на нём легко и непринуждённо строится процедура копирования данных из нескольких диапазонов на один лист. Немного сложнее - функция для использования слияния на лист, но тоже не очень сложно (правда, при большом количестве данных тормозить будет нещадно, так что это менее удачный вариант). И ни в коем случае я не имел в виду ту часть, где говорится о разнесении данных по листам. Собственно именно этот вопрос - "Как собрать/просуммировать/упорядочить данные с разных листов?" - мы и имеем. Какая разница, разные листы или разные диапазоны на одном листе? понятно, что избавиться от геморроя, вырастив его в другом месте, не получится... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2013, 10:59 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
AkinaЯ имел в виду только ту часть ответа, где предлагается использовать VBA В таком случае - согласен на 100% ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2013, 11:17 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
box731вот файл с рабочим вариантом, чтобы было понятно направление поисков. получается решение с одним вспомогательным столбцом и простым расширением количества таблиц, но с рядом ограничений. от вспомогательных таблиц нужно избавиться. кажется, что проблема непреодолима, есть какие-нибудь толковые соображения? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2013, 11:35 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
Толковых соображений тут предостаточно. Только Вы их все игнорируете и упыристо гнёте свою линию... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2013, 13:09 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
гнёте свою линию... разумеется, да )) Толковых соображений тут предостаточно. ... их все игнорируете хотелось бы увидеть их, кроме пространственных рассуждений на отвлеченные темы ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2013, 13:35 |
|
объединение таблиц
|
|||
---|---|---|---|
#18+
box731хотелось бы увидеть их Глаза откройте и почитайте посты выше AndreTM, Akina и мои По теме разжевано абсолютно всё и должно быть понятно даже ВАМ и остальным танкистам Решения тоже предложены. Что ещё надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2013, 13:42 |
|
|
start [/forum/topic.php?fid=61&msg=38146988&tid=2175010]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 340ms |
total: | 475ms |
0 / 0 |