Страницы: 1
RSS
Собрать все данные с листов и создать общую спецификацию
 
Уважаемые Знатоки, добрый день.
Не получается решить следующую адачу:
Есть книга, в ней, на каждом листе спецификация материалов.
Необходимо собрать все данные с листов и создать общую спецификацию.
***
С помощью макроса уважаемого Дмитрия Щербакова "mConsolidated" выбрал все данные на один лист. Всё отлично. НО!
- Все данные размещены по вертикали.
А необходимо по горизонтали, как ПРИМЕР - на листе ЩКАФЫ.
Вот здесь и возникли трудности. С помощью Vlookup2 собрал значения по всем Типам. Проверил, и оказалось, что
количество строк в таблицах Тип 1 - Тип 10 по разделам не совпадает. Т.е. - в какой-то смете есть позиции, которых нет
в остальных (и наоборот). В примере - выделено жёлтым "Шкаф внутреннего монтажа АВВ на 120М (10x12)" отсутствует в Типах 1-Тип 7.
Только в типах 8-10. Эту строку я вставил вручную. И соответственно значения.
В остальных разделах ещё хуже. Есть одинаковые строки, но в нескольких допущены ошибки, и соответственно воспринимаются ВПРом как разные.
Или вообще, отсутствуют.
****
На мой взгляд, было бы не плохо организовать построчно сравнение по Тип1-Тип10 и вносить значения.
Сравнение делать по столбцам 2, 3, 4! Тогда, при ошибке в тексте, совпадёт следующее значение. И если хоть одно совпадает -
заносим в результирующий лист.
В случае отсутствия позиции - добавляем в результат дополнительной строкой со значениями, и продолжаем сравнение дальше.

Вроде как всё.
Пробовал организовать сравнение массивами, не получается сохранить массив в памяти (на каждом следующем листе от обновляется соответственно),
чтобы потом построчно сравнить.

Да, за основу Общего листа можно (и нужно) взять Спецификацию Тип 1 к примеру. Или самую многострочную Тип 5. А дальше - см. выше.
Изменено: PITBY - 03.12.2021 14:38:30 (Добавлено замечание.)
 
Цитата
написал:
На мой взгляд, было бы не плохо организовать построчно сравнение по Тип1-Тип10
На каждый тип у Вас около 200 строк. Это немного. Я бы добавил столбец "Тип" и тогда не нужно много листов - все данные будут на одном листе, (10к строк) и вычислениям будет проще, возможно и без макросов можно будет обойтись.
Изменено: _Igor_61 - 03.12.2021 12:10:53
 
C помощью макроса Дмитрия Щербакова я это и сделал. Смотрите Лист 2 в примере.
А нужно так, как в Шкафы.
 
Да, не увидел лист2 (в файле много листов). ВПР в Вашем случае не очень надежно, т.к. только первое в столбце будет искать. ИМХО - макрос (идем циклом по строкам, делаем сравнение и выгружаем найденное в соответствующий столбец  (Тип) на листе "Шкафы"). Может, профи массивную формулу подскажут.
Цитата
написал:
Пробовал организовать сравнение массивами, не получается сохранить массив в памяти (на каждом следующем листе от обновляется соответственно)
Макросом? Пробы можете показать?
На каждом листе свой массив.
И поэтому каждый из этих массивов нужно заносить в свою отдельную (персональную, индивидуальную и т.п.) переменную.
ar1=Range(диапазон с этого листа)
ar2=Range(Диапазон с другого листа) и т.д.
Изменено: _Igor_61 - 03.12.2021 13:08:10
 
Пробы в макросах в книге. Опробовал несколько подходящих вроде бы. И пришёл к выводу, что нужно:
создать общий лист, и в него построчно проверяя каждый Тип вносить значения при совпадении значений из 2 или 3 или 4 столбцов.
При не совпадении - добавлять строку со значением. И так до конца.
Мысленно представляю, а вот программно - нет.
 
Не совпадают числа в примере... Шкафов АВВ на 96М (8x12) на листе2 всего 8 а на листе "Шкафы" больше намного ... Как и что считать?
По теме: без макросов и формул с готового листа 2 фильтр - скопировать - вставить на другой лист от 5 до 10 столбцов max не более 2-х минут...
Изменено: _Igor_61 - 03.12.2021 16:52:53
 
Цитата
Не совпадают числа в примере... Шкафов АВВ на 96М (8x12) на листе2 всего 8 а на листе "Шкафы" больше намного ...
Прошу прощения, что ввёл в заблуждение. Действительно, на Листе 2 их 8 (как и всего прочего). Это значения из спецификации. А Шкафы я эти значения вручную умножил на ячейки H1-Z1 (это кол-во Типов).

Цитата
копировать - вставить на другой лист от 5 до 10 столбцов max не более 2-х минут...
Я выше писал, что если бы таблицы были одинаковые, то можно было и фильтром, или ВПР. Но беда в том, что они (таблицы) разные. По кол-ву строк. К примеру, у Тип1 и Тип2 - 168 и 177 соответственно. Значит, те, строки, что нет в Тип 1 нужно добавить в Общий (Шкафы). И дальше уже сравнивать следующие Типы.
Пример - в шкафах добавлена строка 1.1 (вторая) Шкафов АВВ на 102М из Типов 8-10.
Страницы: 1
Наверх