|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.11.2018, 09:25 | #1 |
Пользователь
Регистрация: 13.11.2018
Сообщений: 17
|
Помогите написать макрос или составить формулу для выбора ячеек, связанных общими элементами и составить их цепочку в отдельной ячейке
Есть некоторое количество сетевого оборудования включенного друг в друга. У каждого устройства есть уникальное имя, адрес и некоторое количество портов, куда могут включаться последующие устройства сети.
Пример схемы сети устройств в файле .jpg На самом деле устройств гораздо больше и портов в каждом устройстве может быть несколько десятков. файл с таблицей для примера прилагаю: Необходимо сделать так, чтобы при выделении ячейки с именем любого устройства сети в итоговой ячейке появлялась цепочка включения этого устройства до самого первого устройства - в форме : имя выбранного устройства - имя, адрес, порт устройства расположенного выше по иерархии - имя, адрес, порт устройства расположенного ещё выше по иерархии.. и т.д. до корневого устройства. Результат выборки поместить в отдельную ячейку. |
16.11.2018, 09:51 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
На мой взгляд, это вполне реально.
вложенность (количество слоёв) ещё будет изменяться? нужно решить макросом или формулами? По какому событию формировать выборку? Что делать, если в иерархии ошибка (родитель не найден, но это ещё не верхний уровень)? |
16.11.2018, 10:08 | #3 |
Пользователь
Регистрация: 13.11.2018
Сообщений: 17
|
конечно желательно чтобы получилось универсальное решение. вложенность меняется. можно макросом. выборку формировать можно по нажатию созданной в excel кнопки в новом столбце (в одной с устройством строке). если ошибка - ну пусть так и пишет вместо итоговой цепочки - устройство верхнего уровня не найдено
в файле с таблицей я группы оборудования раскрасил разным цветом. это просто для наглядности и понимания структуры. в итоговом варианте это не требуется. |
20.11.2018, 14:45 | #4 |
Пользователь
Регистрация: 13.11.2018
Сообщений: 17
|
есть у кого мысли? как лучше - формулой или макросом?
|
20.11.2018, 15:47 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
лучше таким способом, который Вам подходит.
я, например, формулой мог бы попытаться реализовать, НО 1) это для меня муторно, долго и сложно 2) это точно будет решение заточенное под текущую структуру (не потому, что по другом нельзя, просто я по другому не умею). Поэтому, если бы я решал эту задачу, я бы писал макрос / пользовательскую функцию. |
20.11.2018, 16:25 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
На мой взгляд - лучший ли инструмент для этого Excel ? Написать специализированную прогу, возможно, с применением чего-нибудь вроде html - впрочем, в web-технологиях я не шибко, так что мож и невпопад. ЛИСП вроде под это заточен,но не знаю, как там у него с визуализацией. Давно сдал его, еще в прошлом тысячелетии, да и дело было на БЭСМ-6.
Последний раз редактировалось digitalis; 20.11.2018 в 16:28. |
22.11.2018, 11:42 | #7 |
Пользователь
Регистрация: 13.11.2018
Сообщений: 17
|
просто есть таблицы excel с очень большим количеством оборудования. переделывать всю эту информацию в access - праздник труда. просто на маленьком кусочке представленной здесь таблицы хотел посмотреть как это реализовать. также как и Serge_Bliznykov думаю, что макросом оптимальнее. а потом данный макрос можно и изменять под более объёмные таблицы и большее количество портов и т.д.
я не спец в VBA. самому с нуля выяснять все способы и функции данного языка как всегда не хватает времени. а вот что-либо готовое и более менее подходящее - доделать или немного переделать смогу. |
22.11.2018, 12:01 | #8 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
tor45 как Вы видите поиск цепочки? Словами каждый шаг поиска сможете описать? Не в общих чертах "ищем куда входит деталь", а что-то "берем деталь А, смотрим в таблицу Т1 и сравниваем со столбцом С11, при нахождении совпадения, повторить поиск по таблице Т1 для значения С12. Поиск завершить при таком-то условии", или как там теория графов описывает
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
22.11.2018, 13:25 | #9 |
Пользователь
Регистрация: 13.11.2018
Сообщений: 17
|
буду писать сокращениями из приложенного файла. я вижу это примерно так:
допустим, что сотавляем цепочку для устройства K12. 1. вписываем имя и адрес (K12 IP1-1-1-12) в ячейку результата. 2. берем инфу из ячейки левее имени (К12) и пишем в ячейку результата (порт E2). 3. смотрим ячейку ещё левее и если она пустая, то смотрим ячейку над ней. Если она опять пустая, смотрим ещё выше и так до ячейки с именем устройства, которое выше по иерархии (это у нас SW3). 4. Дальше нужно найти SW3 в другом столбце (то есть выше по таблице), и вставить SW3 и IP1-1-3 в ячейку результата МЕЖДУ портом E2 и именем и адресом (K12 IP1-1-1-12). в ячейке результата к этому времени будет запись (K12 IP1-1-1-12 SW3 IP1-1-3 E2) вот таким методом продвигаться по таблице пока, допустим в названии порта не встретится MXG. это будет означать, что данное устройство последнее в цепочке. алгоритм корявый, его думаю можно реализовать циклами проверки значений и вставки данных. как-то так. извиняюсь за костноязычность объяснения алгоритма. может моя блок-схема громмоздка и можно всё сделать как-то оптимальнее. |
22.11.2018, 13:27 | #10 |
Пользователь
Регистрация: 13.11.2018
Сообщений: 17
|
картинка с примером таблицы и используемыми именами.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите, не составить формулу. | SonicMine | Microsoft Office Excel | 0 | 01.04.2014 12:45 |
Макрос выбора определенных ячеек для подставления в формулу | vfr800 | Microsoft Office Excel | 0 | 29.01.2012 02:54 |
Нужна помощь составить формулу или ВБА для дат | KOSTIK1 | Microsoft Office Excel | 7 | 05.01.2010 11:19 |
Помогите составить формулу !!!! | kutt | Microsoft Office Excel | 4 | 24.05.2008 11:44 |