Добрый вечер, в ходе работы над сводом возник интересный для опытных пользователей вопрос.
В ячейках O4, O5 и других ячейках столбца O содержится массив данных, который подтягивается функцией MultiVlookup, являющейся расширением ВПР, которое возвращает все совпадения ячеек. В столбцах B-N, P-S в ячейках содержатся формулы. В столбцах A, T-X - значения. В столбце G включен фильтр. В файле-примере приведен отрывок - исходный файл содержит 8000 строк. Задача: 1. Отфильтровать данные. Для упрощения понимания я уже установил фильтр 2. В отфильтрованных строках для каждой ячейки O, имеющей два и более значения в массиве - сгенерировать новые строки, где в ячейках столбца O будут формироваться по одному значению. Формулы в столбцах B-N, P-S должны быть сохранены, цвета не нужны, так как они генерируются условным форматированием. 3. Те строки, в которых содержались ячейки с массивом должны быть удалены. 4. Если в массиве содержатся два повторяющихся значения оставить одно уникальное, а количество повторяющихся значений отразить в столбце P соответствующих строк.
Конечный результат приведен в листе "Должно быть". Учитывая сложность задачи важно, хотелось бы увидеть реализацию пунктов 1-3, так как п.4 можно формулами потом подцепить. Я решал подобную задачу, но тогда данные подтягивались из массива ячеек, а не массива ячейки. Как это сделать для массива ячейки - ума не приложу. Заранее благодарен.
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Посмотрел пример, применил к своим данным, все хорошо, но формулы не сохраняются, а это важно, так как генерация 8000 строк со значениями создаст большой файл с которым будет трудно работать, нежели с файлом содержащим те же строки, но с формулами. Исправьте пожалуйста, если не прав.
Piddy написал: Посмотрел пример, применил к своим данным, все хорошо
Piddy я не знаю, что вы смотрели и что у вас получилось и что хорошо?.. там есть код по ветке и мой линк на ветку, где есть мой код - это разные коды!... 1-й код работает с массивом - т.е. всё ваше форматирование - полетит!.. и формулы не вставяться там... по моей схеме могу сделать (но там передЕлывать или тоже с нуля) под ваш файл... но вы должны быть готовы к тому, что расширять диапазоны выборочно под 8000 строк - макросу нужно будет время на эти вставки доп. строк выборочно?... много ли таких строк с значениями через ","? по всему диапазону? ещё мне не понятен принцип нумерации 1-го столбца в приложенном вами примере?.. будете ли вы применять макрос на отфильтрованный диапазон или на весь?.. бюджет, в который вы оцениваете ваше выполнение вашего задания?.. устраивает ли оплата по web_money (номер кошелька у меня есть в профиле)? *** мне нужны ответы на эти 5 вопросов ответьте, пожалуйста, в личку (по бюджету и форме оплаты - лучше в теме ответьте)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
JeyCi написал: Piddy я не знаю, что вы смотрели и что у вас получилось и что хорошо?.. там есть код по ветке и мой линк на ветку, где есть мой код - это разные коды!... 1-й код работает с массивом - т.е. всё ваше форматирование - полетит!.. и формулы не вставяться там... по моей схеме могу сделать (но там передЕлывать или тоже с нуля) под ваш файл...
Переписал макрос Sub ReTable() - поменял столбцы и диапазон. Генерация происходит, но макрос не решает задачу удаления старых строк, работы в отфильтрованном диапазоне и т.д.
Если делать с сохранением формул будет дольше, тогда компромисс - формулы убираем, но сгенерированные строки как-то помечаем, например если в столбце А номер строки был 465 и содержал в массиве два значения, то нужно убрать 465 и сделать 465.1 и 465.2 соотвественно.
Оплата картой сбера, могу конечно на wmr скинуть если есть сервис карта сбера -> webmoney. По бюджету не знаю, но давайте определимся как решить задачу максимально проще. В-общем в личку написал вам.
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Piddy написал: хотелось бы увидеть реализацию пунктов 1-3, так как п.4 можно формулами потом подцепить.
по факту предоставления части реального файла: формула UDF и др. - всё вместе и так подвешивают файл при пересчёте!.. эффект зависания (даже 600 ячеек) - может ещё давать Условное Форматирование!! можете ли вы от него избавиться?
Цитата
Piddy написал: Формулы в столбцах B-N, P-S должны быть сохранены
1) с учётом новых добавлений строк... и это всё подвешенное подвешивать ещё дальше - не вижу смысла... 2) формула UDF иногда показывает Ошибку - поставьте обработку ЕСЛИОШИБКА(...;"-"), т.к. по иным пустым значениям вы и используете "-"
3) доп. кусок кода - проверка на xlCellTypeVisible... почему не хотите запускать на всё? p.s. по факту написания макроса: ФОРМУЛЫ И/ИЛИ УФ в том виде, в каком они есть В РЕАЛЬНОМ ФАЙЛЕ [не из пост #1] (подвешивающие файл даже без макроса) - лучше заменить на значения И что-нибудь придумать для УФ [не верю, что с вашим файлом на 8000 строк таким оформлением вы вообще можете работать, чтобы автоматизировать его работу]... целесообразность фильтрации до запуска макроса сомнительна - если вы хотите фильтровать, чтобы облегчить работу макросу, то Нет не облегчит - нужен доп. код... если это надо вам - подумаю ВЫВОД: 1.макрос в общем и целом написан - результат его работы предоставлен ТСу согласно п.п.2-4 - ответ ТСа "не совсем то" -- если п.п.2-4 - это совсем "не то" - то ТСу стоит переформулировать ТЗ (если оно окажется другим - я пас) 2. если будет достигнуто соглашение по формулам И УФ и получено обоснование фильтрации - то всё поддаётся доработке РЕКОМЕНДАЦИИ: пересмотрите свою потребность в формулах и УФ, иначе ваш файл (хоть с макросом, хоть без) - будет вешаться.... для обработки только фильтрованного диапазона "по-хорошему" (не на скорую руку) - только за доп.плату к бюджету согласованному с ТСом *** ИТОГИ: если реал. файл будет адекватен - можно работать... но ТЗ такое, как оно есть - не совсем оптимально... пока ещё на этапе переписки в личке (доработки возможны, неоптимальность - нет [даже когда заказчику кажется, что ему это надо])... такие формулы и УФ на столько строк (подвешивающие файл) вообще файлу "не надо" *** остальное см. в личке
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Заказчик так и не объявился по факту из #12: - для файла в ветке макрос был написан, - реал. файл, к которому собирался применять макрос - другой структуры (соответственно объём работ превышает первоначальные договорённости по бюджету) - реал. файл, к которому собирался применять макрос - предоставлен просто НЕрабочий сам по себе, даже без макроса... (виснет от самого себя) - под предлогом п.п.2-4 из заказа "не то" - исчез... - изначально:
Цитата
Piddy написал: Конечный результат приведен в листе "Должно быть".
кстати потом в личке уточнено - что показано не всё и делать не так, как показано... *** [ТЗформулируйте Полностью - до того, как договариваетесь по бюджету, файлы предоставляйте соответствующие заказу и адекватные]
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
После обсуждения с исполнителем, мною было принято решение самостоятельно доработать макрос и отказаться от первоначального ТЗ. В переписке по почте изложил свою позицию и выражаю благодарность JeyCi за компетентность и знание нюансов, которые я не учел в ТЗ.
Piddy написал: 1. мною было принято решение самостоятельно доработать макрос 2. и отказаться от первоначального ТЗ.
2. на второй пункт - я получила ваше согласие... ХОТЯ 1-ое ваше ТЗ тоже реализовано - даже с фильтром (но 80 записей под фильтр не запихнуть) - работает на файле из #1... 2-е ваше ТЗ с отправкой отфильтрованного на сторонний лист и там по месту разбивка на строки - ТОЖЕ сделан... для вашего тяжёлого файла реала, присланного в личку... 1. а вот по пункту №1 - всё-таки желательно предупреждать... - чтобы не делалась лишняя работа в ожиданиях ваших ответов (по оптимальности работы самого рабочего файла, не относящейся к работе макроса - я высказалась, сама с ним работать так и не смогла на своём компьютере, пока не убрала ваше Условное Форматирование!!- ) p.s. пока на почту пришли извинения и заверения оплатить потраченное время после нескольких дней моих ожиданий и всё-таки сегодняшнего моего поста... извинения могут быть приняты только по факту поступления денег ...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)