powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / объединение таблиц
36 сообщений из 36, показаны все 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
объединение таблиц
    #38151260
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
===========Решение 1==============
lbppbвнутренним запросом
===========Решение 2==============
lbppbдля большей автоматизации либо VBA
AndreTMиспользование VBA - быстрый и правильный вариант
Akinaстроится процедура копирования данных из нескольких диапазонов на один лист. Немного сложнее - функция для использования слияния на лист, но тоже не очень сложно (правда, при большом количестве данных тормозить будет нещадно, так что это менее удачный вариант)
===========Решение 3==============
Akinaнеплохое решение - импорт данных в Access и обработка там, при необходимости экспорт результатов обратно в Excel.
=========================
Всё это - РЕШЕНИЯ.
...
Рейтинг: 0 / 0
объединение таблиц
    #38151262
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
box731Serge 007Глаза откройте и почитайте ... Что ещё надо?
прочитал, теперь вам тоже предлагаю перечитать вопросы. тогда может будет больше дела, меньше демагогии.

В вашем случае есть только решение, которое подойдет идеально. Вам нужна волшебная палочка. Но тут вам с этим не помогут.
...
Рейтинг: 0 / 0
объединение таблиц
    #38151272
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
box731, Вы не ответили на вопрос. Так что надо-то?
...
Рейтинг: 0 / 0
объединение таблиц
    #38151299
box731
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
получается, что стандартными формулами, без sql и vba, получить объединение нельзя? но очевидно, что это не так, несколько вариантов решений смотри выше. все не без недостатков, о чем было сказано. вопрос в том, как эти недостатки устранить.
...
Рейтинг: 0 / 0
объединение таблиц
    #38151477
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
box731,

В исходном варианте - "объединить несколько имеющихся диапазонов данных в один" - решение формулами существует и может использоваться.
А вот в варианте "далее мы будем изменять исходные диапазоны, а также добавлять новые и удалять существующие" - решение формулами листа становится либо сложным, либо неэффективным (объем кода+скорость), либо вообще неприменимым.
...
Рейтинг: 0 / 0
объединение таблиц
    #38151503
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
box731получается, что стандартными формулами, без sql и vba, получить объединение нельзя? но очевидно, что это не такОчевидно, что это ТАК.
Получить объединение формулами можно лишь для очень ограниченного количества областей. А в большинстве случаев - так и вовсе строго фиксированного, изменение количества областей потребует корректировки формул.
box731несколько вариантов решений смотри вышеВсё это - частные решения. То есть не более чем костыли.
...
Рейтинг: 0 / 0
объединение таблиц
    #38152987
box731
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
костыли - когда начинает не хватает стандартных инструментов. на практике мы только и сталкиваемся с частными решениями. и они всегда компромиссные, так как у каждого достоинства есть свой недостаток. делаем лучше одно - ухудшаем другое, нужно не забывать об этом.

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


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