Страницы: 1
RSS
Создать строки данных из ячеек, содержащих массив данных
 
Добрый вечер, в ходе работы над сводом возник интересный для опытных пользователей вопрос.

В ячейках 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 можно формулами потом подцепить. Я решал подобную задачу, но тогда данные подтягивались из массива ячеек, а не массива ячейки. Как это сделать для массива ячейки - ума не приложу. Заранее благодарен.
Изменено: Piddy - 06.07.2017 23:07:08
 
Упростил описание вопроса
 
Piddy, у Вас не конкретный вопрос - ТЗ на комплексную задачу. Перенести в платный раздел?
 
Юрий М, , сейчас еще попробую рассмотреть решение, предложенное коллегами.
Изменено: Piddy - 07.07.2017 10:46:41
 
Цитата
Piddy написал: Конечный результат приведен в листе "Должно быть".
там ведь всё равно задвоения в столбце О строках 8-12?
Цитата
Piddy написал: ячейках столбца O будут формироваться по одному значению
??
можете посмотреть пример здесь
p.s.
если будете переносить в платный раздел - огласите бюджет?
Изменено: JeyCi - 07.07.2017 10:01:13
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi написал:
там ведь всё равно задвоения в столбце О строках 8-12?
В листе "Исх" изначально были скрыты строки с номером более 474, поэтому обработка была осуществлена только для выделенных строк.
 
Цитата
JeyCi написал:
можете посмотреть  пример здесь
Посмотрел пример, применил к своим данным, все хорошо, но формулы не сохраняются, а это важно, так как генерация 8000 строк со значениями создаст большой файл с которым будет трудно работать, нежели с файлом содержащим те же строки, но с формулами. Исправьте пожалуйста, если не прав.
 
Цитата
Piddy написал: Посмотрел пример, применил к своим данным, все хорошо
Piddy я не знаю, что вы смотрели и что у вас получилось и что хорошо?.. там есть код по ветке и мой линк на ветку, где есть мой код - это разные коды!... 1-й код работает с массивом - т.е. всё ваше форматирование - полетит!.. и формулы не вставяться там...
по моей схеме могу сделать (но там передЕлывать или тоже с нуля) под ваш файл...
но вы должны быть готовы к тому, что расширять диапазоны выборочно под 8000 строк - макросу нужно будет время на эти вставки доп. строк выборочно?...
много ли таких строк с значениями через ","? по всему диапазону?
ещё мне не понятен принцип нумерации 1-го столбца в приложенном вами примере?..
будете ли вы применять макрос на отфильтрованный диапазон или на весь?..
бюджет, в который вы оцениваете ваше выполнение вашего задания?..
устраивает ли оплата по web_money (номер кошелька у меня есть в профиле)?
***
мне нужны ответы на эти 5 вопросов
ответьте, пожалуйста, в личку
(по бюджету и форме оплаты - лучше в теме ответьте)
Изменено: JeyCi - 07.07.2017 11:49:49
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
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 иногда показывает Ошибку - поставьте обработку ЕСЛИОШИБКА(...;"-"), т.к. по иным пустым значениям вы и используете "-"
Цитата
Piddy написал: 1. Отфильтровать данные.
3) доп. кусок кода - проверка на xlCellTypeVisible... почему не хотите запускать на всё?
p.s.
по факту написания макроса:
ФОРМУЛЫ И/ИЛИ УФ в том виде, в каком они есть В РЕАЛЬНОМ ФАЙЛЕ [не из пост #1] (подвешивающие файл даже без макроса) - лучше заменить на значения И что-нибудь придумать для УФ [не верю, что с вашим файлом на 8000 строк таким оформлением вы вообще можете работать, чтобы автоматизировать его работу]...
целесообразность фильтрации до запуска макроса сомнительна - если вы хотите фильтровать, чтобы облегчить работу макросу, то Нет не облегчит - нужен доп. код... если это надо вам - подумаю
ВЫВОД:
1.макрос в общем и целом написан - результат его работы предоставлен ТСу согласно п.п.2-4 - ответ ТСа "не совсем то" -- если п.п.2-4 - это совсем "не то" - то ТСу стоит переформулировать ТЗ (если оно окажется другим - я пас)
2. если будет достигнуто соглашение по формулам И УФ и получено обоснование фильтрации - то всё поддаётся доработке  8)
РЕКОМЕНДАЦИИ:
пересмотрите свою потребность в формулах и УФ, иначе ваш файл (хоть с макросом, хоть без) - будет вешаться.... для обработки только фильтрованного диапазона "по-хорошему" (не на скорую руку) - только за доп.плату к бюджету согласованному с ТСом
***
ИТОГИ:
если реал. файл будет адекватен - можно работать... но ТЗ такое, как оно есть - не совсем оптимально... пока ещё на этапе переписки в личке (доработки возможны, неоптимальность - нет [даже когда заказчику кажется, что ему это надо])... такие формулы и УФ на столько строк (подвешивающие файл) вообще файлу "не надо"
***
остальное см. в личке
Изменено: JeyCi - 08.07.2017 20:03:31
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Заказчик так и не объявился
по факту из #12:
- для файла в ветке макрос был написан,
- реал. файл, к которому собирался применять макрос - другой структуры (соответственно объём работ превышает первоначальные договорённости по бюджету)
- реал. файл, к которому собирался применять макрос - предоставлен просто НЕрабочий сам по себе, даже без макроса... (виснет от самого себя)
- под предлогом п.п.2-4 из заказа "не то" - исчез...
- изначально:
Цитата
Piddy написал: Конечный результат приведен в листе "Должно быть".
кстати потом в личке уточнено - что показано не всё и делать не так, как показано...
***
[ТЗформулируйте Полностью - до того, как договариваетесь по бюджету,
файлы предоставляйте соответствующие заказу и адекватные]
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
После обсуждения с исполнителем, мною было принято решение самостоятельно доработать макрос и отказаться от первоначального ТЗ. В переписке по почте изложил свою позицию и выражаю благодарность JeyCi за компетентность и знание нюансов, которые я не учел в ТЗ.
 
Цитата
Piddy написал:
1. мною было принято решение самостоятельно доработать макрос
2. и отказаться от первоначального ТЗ.
2. на второй пункт - я получила ваше согласие...
ХОТЯ 1-ое ваше ТЗ тоже реализовано - даже с фильтром (но 80 записей под фильтр не запихнуть) - работает на файле из #1...
2-е ваше ТЗ с отправкой отфильтрованного на сторонний лист и там по месту разбивка на строки - ТОЖЕ сделан... для вашего тяжёлого файла реала, присланного в личку...
1. а вот по пункту №1 - всё-таки желательно предупреждать... - чтобы не делалась лишняя работа в ожиданиях ваших ответов
(по оптимальности работы самого рабочего файла, не относящейся к работе макроса - я высказалась, сама с ним работать так и не смогла на своём компьютере, пока не убрала ваше Условное Форматирование!!- )
p.s.
пока на почту пришли извинения и заверения оплатить потраченное время после нескольких дней моих ожиданий и всё-таки сегодняшнего моего поста... извинения могут быть приняты только по факту поступления денег  ;) ...
Изменено: JeyCi - 11.07.2017 22:22:08
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1
Наверх