Уважаемые Знатоки, добрый день. Не получается решить следующую адачу: Есть книга, в ней, на каждом листе спецификация материалов. Необходимо собрать все данные с листов и создать общую спецификацию. *** С помощью макроса уважаемого Дмитрия Щербакова "mConsolidated" выбрал все данные на один лист. Всё отлично. НО! - Все данные размещены по вертикали. А необходимо по горизонтали, как ПРИМЕР - на листе ЩКАФЫ. Вот здесь и возникли трудности. С помощью Vlookup2 собрал значения по всем Типам. Проверил, и оказалось, что количество строк в таблицах Тип 1 - Тип 10 по разделам не совпадает. Т.е. - в какой-то смете есть позиции, которых нет в остальных (и наоборот). В примере - выделено жёлтым "Шкаф внутреннего монтажа АВВ на 120М (10x12)" отсутствует в Типах 1-Тип 7. Только в типах 8-10. Эту строку я вставил вручную. И соответственно значения. В остальных разделах ещё хуже. Есть одинаковые строки, но в нескольких допущены ошибки, и соответственно воспринимаются ВПРом как разные. Или вообще, отсутствуют. **** На мой взгляд, было бы не плохо организовать построчно сравнение по Тип1-Тип10 и вносить значения. Сравнение делать по столбцам 2, 3, 4! Тогда, при ошибке в тексте, совпадёт следующее значение. И если хоть одно совпадает - заносим в результирующий лист. В случае отсутствия позиции - добавляем в результат дополнительной строкой со значениями, и продолжаем сравнение дальше.
Вроде как всё. Пробовал организовать сравнение массивами, не получается сохранить массив в памяти (на каждом следующем листе от обновляется соответственно), чтобы потом построчно сравнить.
Да, за основу Общего листа можно (и нужно) взять Спецификацию Тип 1 к примеру. Или самую многострочную Тип 5. А дальше - см. выше.
написал: На мой взгляд, было бы не плохо организовать построчно сравнение по Тип1-Тип10
На каждый тип у Вас около 200 строк. Это немного. Я бы добавил столбец "Тип" и тогда не нужно много листов - все данные будут на одном листе, (10к строк) и вычислениям будет проще, возможно и без макросов можно будет обойтись.
Да, не увидел лист2 (в файле много листов). ВПР в Вашем случае не очень надежно, т.к. только первое в столбце будет искать. ИМХО - макрос (идем циклом по строкам, делаем сравнение и выгружаем найденное в соответствующий столбец (Тип) на листе "Шкафы"). Может, профи массивную формулу подскажут.
Цитата
написал: Пробовал организовать сравнение массивами, не получается сохранить массив в памяти (на каждом следующем листе от обновляется соответственно)
Макросом? Пробы можете показать? На каждом листе свой массив. И поэтому каждый из этих массивов нужно заносить в свою отдельную (персональную, индивидуальную и т.п.) переменную. ar1=Range(диапазон с этого листа) ar2=Range(Диапазон с другого листа) и т.д.
Пробы в макросах в книге. Опробовал несколько подходящих вроде бы. И пришёл к выводу, что нужно: создать общий лист, и в него построчно проверяя каждый Тип вносить значения при совпадении значений из 2 или 3 или 4 столбцов. При не совпадении - добавлять строку со значением. И так до конца. Мысленно представляю, а вот программно - нет.
Не совпадают числа в примере... Шкафов АВВ на 96М (8x12) на листе2 всего 8 а на листе "Шкафы" больше намного ... Как и что считать? По теме: без макросов и формул с готового листа 2 фильтр - скопировать - вставить на другой лист от 5 до 10 столбцов max не более 2-х минут...
Не совпадают числа в примере... Шкафов АВВ на 96М (8x12) на листе2 всего 8 а на листе "Шкафы" больше намного ...
Прошу прощения, что ввёл в заблуждение. Действительно, на Листе 2 их 8 (как и всего прочего). Это значения из спецификации. А Шкафы я эти значения вручную умножил на ячейки H1-Z1 (это кол-во Типов).
Цитата
копировать - вставить на другой лист от 5 до 10 столбцов max не более 2-х минут...
Я выше писал, что если бы таблицы были одинаковые, то можно было и фильтром, или ВПР. Но беда в том, что они (таблицы) разные. По кол-ву строк. К примеру, у Тип1 и Тип2 - 168 и 177 соответственно. Значит, те, строки, что нет в Тип 1 нужно добавить в Общий (Шкафы). И дальше уже сравнивать следующие Типы. Пример - в шкафах добавлена строка 1.1 (вторая) Шкафов АВВ на 102М из Типов 8-10.