Здравствуйте уважаемые программисты! Прошу помочь. Имеется файл с максором дерева, взятый на этом форуме. Работает отлично но не до конца решает мою задачу.
Описание: на вкладке "Исходные данные" есть номер чертежа детали и номер чертежа сборки. На вкладке "Макрос" Макрос раскладывает детали в дерево, при этом у каждой детали есть свой уникальный номер "Сквозной номер". Для дальнейшей работы с данными, получаемыми с дерева необходимо, чтобы он при построении дерева также кореектно подтягивал этот сквозной номер. Суть в том, что одна деталь может входить (повторяться) в несколько сборочных чертежей и при дальнейшей работе с данными, после раскладки в дерево, непонятно на какой детали (на какой паре Деталь/Сборка) этот сквозной номер.
Запрос: Необходимо, чтобы после выполнения Макроса, в столбце "С" появлялся сквозной номер.
Подскажите пожалуйста возможно ли решить данную задачу и как?
Здравствуйте уважаемые программисты! Прошу помочь. Имеется файл с максором дерева, взятый на этом форуме. Работает отлично но не до конца решает мою задачу.
Описание: на вкладке "Исходные данные" есть номер чертежа детали и номер чертежа сборки. На вкладке "Макрос" Макрос раскладывает детали в дерево, при этом у каждой детали есть свой уникальный номер "Сквозной номер". Для дальнейшей работы с данными, получаемыми с дерева необходимо, чтобы он при построении дерева также кореектно подтягивал этот сквозной номер. Суть в том, что одна деталь может входить (повторяться) в несколько сборочных чертежей и при дальнейшей работе с данными, после раскладки в дерево, непонятно на какой детали (на какой паре Деталь/Сборка) этот сквозной номер.
Запрос: Необходимо, чтобы после выполнения Макроса, в столбце "С" появлялся сквозной номер.
Подскажите пожалуйста возможно ли решить данную задачу и как?Geminus
NikitaDvorets, добрый день! Спасибо за столь быструю реакцию. Да, необходимо извлечь сквозной номер в столбец "C". В направленном Вами файле проблема не решена. Номера повторяются (подсветил цветом), а они не должны повторяться. "Сквозной номер" - это уникальный номер который присваивается Паре - "Чертеж ДСЕ"/"Чертеж сборки". После раскладки в дерево номера должны разложиться корректно и соответствовать "Паре" как на листе "Исходные данные".
Те строчки в "Исходных данных" где отсутствует номер чертежа ДСЕ, не переносятся в дерево и соответственно сквозные номера отображаться не будут. Это нормально. Надеюсь смог объяснить )
NikitaDvorets, добрый день! Спасибо за столь быструю реакцию. Да, необходимо извлечь сквозной номер в столбец "C". В направленном Вами файле проблема не решена. Номера повторяются (подсветил цветом), а они не должны повторяться. "Сквозной номер" - это уникальный номер который присваивается Паре - "Чертеж ДСЕ"/"Чертеж сборки". После раскладки в дерево номера должны разложиться корректно и соответствовать "Паре" как на листе "Исходные данные".
Те строчки в "Исходных данных" где отсутствует номер чертежа ДСЕ, не переносятся в дерево и соответственно сквозные номера отображаться не будут. Это нормально. Надеюсь смог объяснить )Geminus
NikitaDvorets, добрый день! Если бы я понимал логику работы исходного макроса, то наверное мне было бы проще, но я постарался изложить очень подробно, (во вложении).
Я описал алгоритм, так как я действовал при ручной расстановке этих номеров.
NikitaDvorets, добрый день! Если бы я понимал логику работы исходного макроса, то наверное мне было бы проще, но я постарался изложить очень подробно, (во вложении).
Я описал алгоритм, так как я действовал при ручной расстановке этих номеров.Geminus
Да, стало немного понятнее. Добавил доп. столбец для поиска на листе "Исходные данные". Однако имеются случаи дублирования сквозных номеров. Возможно нужны доп. ограничения при поиске.
Geminus, добрый день.
Цитата
Я описал алгоритм
Да, стало немного понятнее. Добавил доп. столбец для поиска на листе "Исходные данные". Однако имеются случаи дублирования сквозных номеров. Возможно нужны доп. ограничения при поиске.NikitaDvorets
NikitaDvorets, добрый день! из 347 номеров, 74 присвоены не корректно. Какое либо дополнительное ограничение я придумать пока не могу. Есть такое предположение, а что если программа будет собирать (сцеплять) номер чертежей из разложенного дерева обратно в строчку и потом подтягивать (ВПРить) сквозные номера из листа "Исходные данные" сравнивая их с созданным Вами дополнительным столбцом?
Как их собрать в пару? я вижу такой алгоритм: Программа берет Столбец 1 и находит первый по списку номер, и образует пары с номерами из Столбца 2, анализируя каждую строчку и останавливается в тот момент, когда в Столбце 1 появляется следующий по списку номер. Как только появляется следующий по списку номер ситуация повторяется. Когда все строчки пройдены, программа берет следующие два столбца №2 и №3 и опять делает циклы Затем следующие № 3 и № 4… Получится список пар, такой который создали Вы на вкладке «Исходные данные». Ну а далее ВПР, как я писал в начале…
NikitaDvorets, добрый день! из 347 номеров, 74 присвоены не корректно. Какое либо дополнительное ограничение я придумать пока не могу. Есть такое предположение, а что если программа будет собирать (сцеплять) номер чертежей из разложенного дерева обратно в строчку и потом подтягивать (ВПРить) сквозные номера из листа "Исходные данные" сравнивая их с созданным Вами дополнительным столбцом?
Как их собрать в пару? я вижу такой алгоритм: Программа берет Столбец 1 и находит первый по списку номер, и образует пары с номерами из Столбца 2, анализируя каждую строчку и останавливается в тот момент, когда в Столбце 1 появляется следующий по списку номер. Как только появляется следующий по списку номер ситуация повторяется. Когда все строчки пройдены, программа берет следующие два столбца №2 и №3 и опять делает циклы Затем следующие № 3 и № 4… Получится список пар, такой который создали Вы на вкладке «Исходные данные». Ну а далее ВПР, как я писал в начале…Geminus
а что если программа будет собирать (сцеплять) номер чертежей из разложенного дерева обратно в строчку
Это уже делается в программе. Учтен комментарий: ' Те строчки в "Исходных данных", где отсутствует номер чертежа ДСЕ, не переносятся в дерево и соответственно сквозные номера отображаться не будут Изменится ли статистика корректности в обновленном файле?
Geminus, добрый день.
Цитата
а что если программа будет собирать (сцеплять) номер чертежей из разложенного дерева обратно в строчку
Это уже делается в программе. Учтен комментарий: ' Те строчки в "Исходных данных", где отсутствует номер чертежа ДСЕ, не переносятся в дерево и соответственно сквозные номера отображаться не будут Изменится ли статистика корректности в обновленном файле?NikitaDvorets
NikitaDvorets, добрый день! Практически нет, в последнем файле 70 не корректных номеров. Я не понимаю как работает макрос и что в него вшито и следовательно мне не понятно, почему в ячейке C17 стоит номер 27, когда правильный номер 66 (лист «Макрос 2», я создал для информации столбец «Правильный скв. №». Если алгоритм выполняется, то программа …..дойдя до ячейки J18 не должна образовать никакую пару, так как в ячейке K19 нет никакого номера чертежа. Что же она тогда образовала, чтобы при ВПРе таблицы «Исходные данные» наткнуться на номер 8БС.182.697-06 и найти неправильный сквозной номер – 27 ? Быть может стоит изменить порядок сцепки номеров? В столбце D @Синтетический номер»? Сделать сначала чертеж сборки а потом чертеж ДСЕ? В файле добавил Примечание с описанием моих наблюдений.
Надеюсь Вы правильно поняли мой комментарий - ' Те строчки в "Исходных данных", где отсутствует номер чертежа ДСЕ, не переносятся в дерево и соответственно сквозные номера отображаться не будут’ Я лишь хотел обратить внимание ,что в поле Макрос нет строчек, в которых отсутствует один из номеров чертежей в паре в исходных данных. Я имею ввиду, что если деталей в списке всего – 379 а в столбце B «Исходные данные» 76 пустых строк (или отсутствующих номеров ДСЕ), то следовательно эти строчки в поле Макрос не появится и сквозных номеров соответствующих этим ячейкам не будет.
NikitaDvorets, добрый день! Практически нет, в последнем файле 70 не корректных номеров. Я не понимаю как работает макрос и что в него вшито и следовательно мне не понятно, почему в ячейке C17 стоит номер 27, когда правильный номер 66 (лист «Макрос 2», я создал для информации столбец «Правильный скв. №». Если алгоритм выполняется, то программа …..дойдя до ячейки J18 не должна образовать никакую пару, так как в ячейке K19 нет никакого номера чертежа. Что же она тогда образовала, чтобы при ВПРе таблицы «Исходные данные» наткнуться на номер 8БС.182.697-06 и найти неправильный сквозной номер – 27 ? Быть может стоит изменить порядок сцепки номеров? В столбце D @Синтетический номер»? Сделать сначала чертеж сборки а потом чертеж ДСЕ? В файле добавил Примечание с описанием моих наблюдений.
Надеюсь Вы правильно поняли мой комментарий - ' Те строчки в "Исходных данных", где отсутствует номер чертежа ДСЕ, не переносятся в дерево и соответственно сквозные номера отображаться не будут’ Я лишь хотел обратить внимание ,что в поле Макрос нет строчек, в которых отсутствует один из номеров чертежей в паре в исходных данных. Я имею ввиду, что если деталей в списке всего – 379 а в столбце B «Исходные данные» 76 пустых строк (или отсутствующих номеров ДСЕ), то следовательно эти строчки в поле Макрос не появится и сквозных номеров соответствующих этим ячейкам не будет.Geminus
Geminus, добрый день. Существенно переработал алгоритм расчета. Большинство дублей исправлено. Посмотрите, почему есть некоторые совпадения.
Geminus, добрый день. Существенно переработал алгоритм расчета. Большинство дублей исправлено. Посмотрите, почему есть некоторые совпадения.NikitaDvorets
NikitaDvorets, добрый день! Большое спасибо! в файле, который Вы выложили в пятницу, до корректировки, все четко работает. Номера извлекаются корректно. Те 5 номеров, которые не соответствуют, должны корректироваться самим пользователем, в ручном режиме. От этого не уйти, так как это повторяющиеся сборки с одинаковыми деталями в них. Прилагаю пятничный файл до Вашего редактирования. Вкладка "Макрос"
Единственная проблема, перестал работать макрос, который раскладывает дерево )))) в этом же файле вкладка - "Макрос как должно быть". Столбец со сквозным номером можно перенести в столбец "W". должен сначала выполняться макрос, который раскладывает дерево, а потом извлечение сквозного номера. Подправьте пожалуйста.
NikitaDvorets, добрый день! Большое спасибо! в файле, который Вы выложили в пятницу, до корректировки, все четко работает. Номера извлекаются корректно. Те 5 номеров, которые не соответствуют, должны корректироваться самим пользователем, в ручном режиме. От этого не уйти, так как это повторяющиеся сборки с одинаковыми деталями в них. Прилагаю пятничный файл до Вашего редактирования. Вкладка "Макрос"
Единственная проблема, перестал работать макрос, который раскладывает дерево )))) в этом же файле вкладка - "Макрос как должно быть". Столбец со сквозным номером можно перенести в столбец "W". должен сначала выполняться макрос, который раскладывает дерево, а потом извлечение сквозного номера. Подправьте пожалуйста.Geminus
перестал работать макрос, который раскладывает дерево
Это связано с назначенной в макросе "Дерево" нумерацией столбцов. Она должна начинаться с 1 в столбце D и т.д. Подправил, оба макроса выделены кнопками и сообщают о завершении работы. Макрос GetNum показывает ход процесса назначения сквозных номеров. Можно стереть все результаты построения дерева на листе "макрос", начиная с ячейки D2 и выделяя диапазон вправо-вниз, и затем запустить оба макроса по очереди из ячеек A1 и B1.
Geminus,
Цитата
перестал работать макрос, который раскладывает дерево
Это связано с назначенной в макросе "Дерево" нумерацией столбцов. Она должна начинаться с 1 в столбце D и т.д. Подправил, оба макроса выделены кнопками и сообщают о завершении работы. Макрос GetNum показывает ход процесса назначения сквозных номеров. Можно стереть все результаты построения дерева на листе "макрос", начиная с ячейки D2 и выделяя диапазон вправо-вниз, и затем запустить оба макроса по очереди из ячеек A1 и B1.NikitaDvorets
Можно стереть все результаты построения дерева на листе "макрос", начиная с ячейки D2 и выделяя диапазон вправо-вниз, и затем запустить оба макроса по очереди из ячеек A1 и B1.
ничего не понял , но все работает. Еще раз огромное спасибо! :hello:
Можно стереть все результаты построения дерева на листе "макрос", начиная с ячейки D2 и выделяя диапазон вправо-вниз, и затем запустить оба макроса по очереди из ячеек A1 и B1.
ничего не понял , но все работает. Еще раз огромное спасибо! :hello:Geminus