powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / объединение таблиц
25 сообщений из 36, страница 1 из 2
объединение таблиц
    #38146823
box731
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как бы формулой, без макросов, получить таблицу объединенную из нескольких. количество строк заранее неизвестно.

таблица 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
...
Рейтинг: 0 / 0
объединение таблиц
    #38146825
box731
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
объединение таблиц
    #38146988
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно вот так или внутренним запросом, тоже вариант. А для чего вам это нужно?
...
Рейтинг: 0 / 0
объединение таблиц
    #38147675
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: и т.д.}
...
Рейтинг: 0 / 0
объединение таблиц
    #38148159
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, либо внутренним запросом. А если формулами извращаться, то вы на неправильном пути.
...
Рейтинг: 0 / 0
объединение таблиц
    #38148347
box731
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выполнение запроса дает, как я понимаю, статический результат, а нужна динамика.
макросы создают дополнительные неудобства с их обслуживанием. поэтому унифицированное решение задачи (формулами) предпочтительнее, если оно возможно.

способов как развернуть двумерный массив в одномерный или объединить несколько массивов я не смог найти, может быть, есть еще какие-нибудь пути решения моей задачи?
...
Рейтинг: 0 / 0
объединение таблиц
    #38148390
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
box731выполнение запроса дает, как я понимаю, статический результат, а нужна динамика.
макросы создают дополнительные неудобства с их обслуживанием. поэтому унифицированное решение задачи (формулами) предпочтительнее, если оно возможно.

способов как развернуть двумерный массив в одномерный или объединить несколько массивов я не смог найти, может быть, есть еще какие-нибудь пути решения моей задачи?

Запрос дает вполне себе динамический результат.

Жизнь сама по себе создает неудобства с ее обслуживанием, но если хочешь жить - умей вертеться.

Чем не устраивает предложенный вариант?
...
Рейтинг: 0 / 0
объединение таблиц
    #38148436
box731
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все же запрос не дает динамики, обновление происходит после нажатия на кнопку Обновить, или в полуавтоматическом режиме, через заданные интервалы времени, в минутах.

предложенный вариант работает, только его сложно распространить на большее количество таблиц, в результате - высокая вероятность допустить ошибку.
...
Рейтинг: 0 / 0
объединение таблиц
    #38148462
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Высокая вероятность допустить ошибку" - как раз при использовании формул, работы с массивами/диапазонами на листе и т.п.
Как раз использование VBA - быстрый и правильный вариант. А если можно поменять исходную структуру данных (например, разнести таблицы на отдельные листы) - то и вообще...
Ну и по динамике - можно ведь запускать макрос обновления и при любом изменении в данных - для этого надо его подвесить не только на кнопку, но и на событие Worksheet_Change() или Workbook_SheetChange()
...
Рейтинг: 0 / 0
объединение таблиц
    #38148476
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM"Высокая вероятность допустить ошибку" - как раз при использовании формул, работы с массивами/диапазонами на листе и т.п.
Как раз использование VBA - быстрый и правильный вариант. А если можно поменять исходную структуру данных (например, разнести таблицы на отдельные листы) - то и вообще...
Ну и по динамике - можно ведь запускать макрос обновления и при любом изменении в данных - для этого надо его подвесить не только на кнопку, но и на событие Worksheet_Change() или Workbook_SheetChange()

+1
...
Рейтинг: 0 / 0
объединение таблиц
    #38148995
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
box731 - у вас какой-то ограниченный подход к задаче... вы говорите, что у вас кол-во таблиц, стоящих в ряд на одном листе заранее не известно. как я понимаю, массив растет вправо путем ручного добавления таблиц на лист. а зачем? почему не добавить их вниз, если структура одинакова...
что в исходниках? может там, напимер, файлы txt. тогда пишите запрос на VB, юзайте sql. это проще, чем кажется. если структура однородна, sql-запрос - это самый верняк.
...
Рейтинг: 0 / 0
объединение таблиц
    #38149076
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM...использование VBA - быстрый и правильный вариант...
Это для тех кто знает VBA
А для тех кто разбирается в Excel - быстро и правильно использовать инструменты Excel
А если ещё и макросы запрещены, политикой предприятия, например :)
AndreTM...разнести таблицы на отдельные листы...
AndreTM , не узнаю тебя...
Разнести таблицы на отдельные листы - это первая (одна из) ошибка начинающих пользователей
Как ты можешь советовать остальным делать её?!
...
Рейтинг: 0 / 0
объединение таблиц
    #38149245
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge 007 AndreTM , не узнаю тебя...
Разнести таблицы на отдельные листы - это первая (одна из) ошибка начинающих пользователей
Как ты можешь советовать остальным делать её?!А я образец файла и не смотрел...
В приведённом виде - да, однотипную инфу сливать удобнее на один лист, только ещё завести дополнительное поле-столбец с номером таблицы.
...
Рейтинг: 0 / 0
объединение таблиц
    #38150041
box731
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот такая задача встала на пути.

=ИНДЕКС(($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})

если ввести эту формулу массива в несколько ячеек, то она работает. а как получить те же результаты массивом в одной ячейке?
...
Рейтинг: 0 / 0
объединение таблиц
    #38150077
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge 007AndreTM...использование VBA - быстрый и правильный вариант...
Это для тех кто знает VBA
А для тех кто разбирается в Excel - быстро и правильно использовать инструменты Excel
Общее и для тех и для других - для решения каждой задачи необходимо использовать подходящий для решения именно этой задачи инструмент.
В данном случае инструмент (Excel) выбран неверно. Отсюда и сложности. И совет AndreTM - это имхо наиболее правильное решение. Есть ещё неплохое решение - импорт данных в Access и обработка там, при необходимости экспорт результатов обратно в Excel.

Конечно, если ты не настаиваешь на том, что полностью твой тезис таков: "Это для тех кто знает VBA. А для тех кто разбирается в Excel - быстро и правильно использовать инструменты Excel, и ни при каких обстоятельствах не пытаться освоить VBA."
...
Рейтинг: 0 / 0
объединение таблиц
    #38150112
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но уж если ОЧЕНЬ упёрлось обойтись формулами - вот черновой вариант. Его можно "растянуть" и на несколько таблиц - просто добавляя соответствующие подсчёты и ветвления. Также можно добавить проверку на то, что выбраны данные всех таблиц, и выводить там пустую строку (сейчас выведется ноль).
Но это извращение чистой воды.
...
Рейтинг: 0 / 0
объединение таблиц
    #38150210
box731
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот файл с рабочим вариантом, чтобы было понятно направление поисков. получается решение с одним вспомогательным столбцом и простым расширением количества таблиц, но с рядом ограничений. от вспомогательных таблиц нужно избавится.
...
Рейтинг: 0 / 0
объединение таблиц
    #38150698
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaВ данном случае инструмент (Excel) выбран неверно.
Согласен. Но если уж выбрали этот инструмент, то надо подстраиваться под его возможности. Объеденив две таблицы в одну, мы легко решаем поставленную задачу средствами Excel

Akinaсовет AndreTM - это наиболее правильное решение
Не то что неправильное, а я бы сказал даже вредное, тем более что решением средствами Excel это назвать нельзя. Форум ведь и новички читают и когда они видят подобный совет от форумчанина с кол-вом постов более 5000 - они принимают его. А потом начинают сыпать темами типа "Как собрать/просуммировать/упорядочить данные с разных листов?"

Akinaи ни при каких обстоятельствах не пытаться освоить VBA
А вот это каждый сам для себя решает
Лично мне, в жизни, при работе с МОИМИ файлами, НИ РАЗУ не понадобилось применять макросы
Использую их (макросы) только исправляя ошибки в архитектуре данных ЧУЖИХ файлов
...
Рейтинг: 0 / 0
объединение таблиц
    #38150731
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge 007Akinaсовет AndreTM - это наиболее правильное решение
Не то что неправильное, а я бы сказал даже вредное, тем более что решением средствами Excel это назвать нельзя. Форум ведь и новички читают и когда они видят подобный совет от форумчанина с кол-вом постов более 5000 - они принимают его. А потом начинают сыпать темами типа "Как собрать/просуммировать/упорядочить данные с разных листов?"

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

И ни в коем случае я не имел в виду ту часть, где говорится о разнесении данных по листам. Собственно именно этот вопрос - "Как собрать/просуммировать/упорядочить данные с разных листов?" - мы и имеем. Какая разница, разные листы или разные диапазоны на одном листе? понятно, что избавиться от геморроя, вырастив его в другом месте, не получится...
...
Рейтинг: 0 / 0
объединение таблиц
    #38150766
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaЯ имел в виду только ту часть ответа, где предлагается использовать VBA
В таком случае - согласен на 100%
...
Рейтинг: 0 / 0
объединение таблиц
    #38150807
box731
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
box731вот файл с рабочим вариантом, чтобы было понятно направление поисков. получается решение с одним вспомогательным столбцом и простым расширением количества таблиц, но с рядом ограничений. от вспомогательных таблиц нужно избавиться.

кажется, что проблема непреодолима, есть какие-нибудь толковые соображения?
...
Рейтинг: 0 / 0
объединение таблиц
    #38151060
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Толковых соображений тут предостаточно. Только Вы их все игнорируете и упыристо гнёте свою линию...
...
Рейтинг: 0 / 0
объединение таблиц
    #38151129
box731
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гнёте свою линию...
разумеется, да ))

Толковых соображений тут предостаточно. ... их все игнорируете
хотелось бы увидеть их, кроме пространственных рассуждений на отвлеченные темы
...
Рейтинг: 0 / 0
объединение таблиц
    #38151148
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
box731хотелось бы увидеть их
Глаза откройте и почитайте посты выше AndreTM, Akina и мои
По теме разжевано абсолютно всё и должно быть понятно даже ВАМ и остальным танкистам
Решения тоже предложены. Что ещё надо?
...
Рейтинг: 0 / 0
объединение таблиц
    #38151244
box731
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serge 007Глаза откройте и почитайте ... Что ещё надо?
прочитал, теперь вам тоже предлагаю перечитать вопросы. тогда может будет больше дела, меньше демагогии.
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / объединение таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]