Итак, второй файл "Загрузка опер.центров". Очевидно, нужно, чтобы каким-то образом детали с листа "Импорт" в статусе "В работе" оказались бы на листах станков для обработки.
"Оказаться" на одном из листов станков деталь может: * либо в результате работы некоторой формулы, находящейся на этом листе (и "выдергивающей" и отображающей наименование детали в определенном месте листа) * либо в результате копирования (ввода) имени детали с листа "Импорт" на лист нужного станка, т.е. только текст без формулы (подобное копирование можно осуществить либо скриптом, либо выбором из списка)
Что выбрать? Склоняюсь в пользу второго варианта - копирования (ввода), т.е. без формул. И вот почему. Я смотрю на лист "Фрезерные (ФУ)" и вижу крайнюю правую колонку "Очередь из деталей на станки", в которой находится деталь (ячейка с текстом) "TPYG.1789.00.08_Пуансон". ВОПРОС: Как она там оказалась (или окажется)? В результате работы некоторого автоматического скрипта-загрузчика (который мы напишем) за счет того, что в наименовании листа встречается код операции "ФУ", с которым эта деталь "приехала" из первого файла? Или в результате выбора из некоторого будущего списка (который мы туда прикрутим)? Сейчас там формула с функцией IMPORTRANGE со ссылкой на конкретную ячейку первого файла и вопрос в том, следование каким именно правилам сформировало эту ссылку.
Что будет дальше с этой ячейкой-деталью? Её подцепят мышкой и перетащат из колонки "Очередь" в колонку "Номер и обозначение детали" одного из станков, расположенных на этом листе слева? Дальше, видимо, в выбранном станке для этой детали будут заполнены поля: "t обработки, ч", "время начала обработки", "время окончания обработки", "коментарии", так?
Далее предположу, что после заполнения определенного поля, например, "Время окончания", (или после наступления какого-то заранее оговоренного события) деталь вместе со всей своей информацией должна будет "покинуть" станок и "переместиться" на какой-нибудь лист типа "Архив Обработанных деталей".
Похожи ли эти мои предположения на правду? Можете, пожалуйста, прокомментировать и дополнить описание этой картины "станочного" мира, как Вы ее изначально задумали к осуществлению?
Итак, второй файл "Загрузка опер.центров". Очевидно, нужно, чтобы каким-то образом детали с листа "Импорт" в статусе "В работе" оказались бы на листах станков для обработки.
"Оказаться" на одном из листов станков деталь может: * либо в результате работы некоторой формулы, находящейся на этом листе (и "выдергивающей" и отображающей наименование детали в определенном месте листа) * либо в результате копирования (ввода) имени детали с листа "Импорт" на лист нужного станка, т.е. только текст без формулы (подобное копирование можно осуществить либо скриптом, либо выбором из списка)
Что выбрать? Склоняюсь в пользу второго варианта - копирования (ввода), т.е. без формул. И вот почему. Я смотрю на лист "Фрезерные (ФУ)" и вижу крайнюю правую колонку "Очередь из деталей на станки", в которой находится деталь (ячейка с текстом) "TPYG.1789.00.08_Пуансон". ВОПРОС: Как она там оказалась (или окажется)? В результате работы некоторого автоматического скрипта-загрузчика (который мы напишем) за счет того, что в наименовании листа встречается код операции "ФУ", с которым эта деталь "приехала" из первого файла? Или в результате выбора из некоторого будущего списка (который мы туда прикрутим)? Сейчас там формула с функцией IMPORTRANGE со ссылкой на конкретную ячейку первого файла и вопрос в том, следование каким именно правилам сформировало эту ссылку.
Что будет дальше с этой ячейкой-деталью? Её подцепят мышкой и перетащат из колонки "Очередь" в колонку "Номер и обозначение детали" одного из станков, расположенных на этом листе слева? Дальше, видимо, в выбранном станке для этой детали будут заполнены поля: "t обработки, ч", "время начала обработки", "время окончания обработки", "коментарии", так?
Далее предположу, что после заполнения определенного поля, например, "Время окончания", (или после наступления какого-то заранее оговоренного события) деталь вместе со всей своей информацией должна будет "покинуть" станок и "переместиться" на какой-нибудь лист типа "Архив Обработанных деталей".
Похожи ли эти мои предположения на правду? Можете, пожалуйста, прокомментировать и дополнить описание этой картины "станочного" мира, как Вы ее изначально задумали к осуществлению?Gustav
Сейчас там формула с функцией IMPORTRANGE со ссылкой на конкретную ячейку первого файла и вопрос в том, следование каким именно правилам сформировало эту ссылку.
Это я безуспешно пытался что-то сделать, достичь какого-то результата, но если честно, совершенно не понимал как это сделать.
В результате работы некоторого автоматического скрипта-загрузчика (который мы напишем) за счет того, что в наименовании листа встречается код операции "ФУ", с которым эта деталь "приехала" из первого файла?
Склоняюсь к этому варианту, потому что в будущем в файл со станками будут добавляться другие детали из других проэктов.
Её подцепят мышкой и перетащат из колонки "Очередь" в колонку "Номер и обозначение детали" одного из станков, расположенных на этом листе слева? Дальше, видимо, в выбранном станке для этой детали будут заполнены поля: "t обработки, ч", "время начала обработки", "время окончания обработки", "коментарии", так?
Именно так и будет. Если это возможно, то было бы очень хорошо, если скрипт смог бы автоматически заполнять время начала и конца обработки.
Далее предположу, что после заполнения определенного поля, например, "Время окончания", (или после наступления какого-то заранее оговоренного события) деталь вместе со всей своей информацией должна будет "покинуть" станок и "переместиться" на какой-нибудь лист типа "Архив Обработанных деталей".
Предполагалось то, что в очередь на станки (крайний правый столбей на листе ФУ) попадает деталь с выделением ячейки желтым, после окончания обработки деталь остается в таблице станка, но ячейка выдекляется серым цветом. Это возможно и не приведет к затруднению работы скрипта в будущем (допустим если в таблице станка скопится более 500 значений)?
Сейчас там формула с функцией IMPORTRANGE со ссылкой на конкретную ячейку первого файла и вопрос в том, следование каким именно правилам сформировало эту ссылку.
Это я безуспешно пытался что-то сделать, достичь какого-то результата, но если честно, совершенно не понимал как это сделать.
В результате работы некоторого автоматического скрипта-загрузчика (который мы напишем) за счет того, что в наименовании листа встречается код операции "ФУ", с которым эта деталь "приехала" из первого файла?
Склоняюсь к этому варианту, потому что в будущем в файл со станками будут добавляться другие детали из других проэктов.
Её подцепят мышкой и перетащат из колонки "Очередь" в колонку "Номер и обозначение детали" одного из станков, расположенных на этом листе слева? Дальше, видимо, в выбранном станке для этой детали будут заполнены поля: "t обработки, ч", "время начала обработки", "время окончания обработки", "коментарии", так?
Именно так и будет. Если это возможно, то было бы очень хорошо, если скрипт смог бы автоматически заполнять время начала и конца обработки.
Далее предположу, что после заполнения определенного поля, например, "Время окончания", (или после наступления какого-то заранее оговоренного события) деталь вместе со всей своей информацией должна будет "покинуть" станок и "переместиться" на какой-нибудь лист типа "Архив Обработанных деталей".
Предполагалось то, что в очередь на станки (крайний правый столбей на листе ФУ) попадает деталь с выделением ячейки желтым, после окончания обработки деталь остается в таблице станка, но ячейка выдекляется серым цветом. Это возможно и не приведет к затруднению работы скрипта в будущем (допустим если в таблице станка скопится более 500 значений)?gutsoff200991
Сообщение отредактировал gutsoff200991 - Четверг, 26.01.2023, 21:18
Если это возможно, то было бы очень хорошо, если скрипт смог бы автоматически заполнять время начала и конца обработки.
Там три поля: "Время обработки", "Начало" и "Окончание". Скрипт, конечно, сможет заполнить любое третье поле при известных двух других. Но пока не понятно, кто и в какой момент заполнит эти два других ("известных").
Предполагалось то, что в очередь на станки (крайний правый столбей на листе ФУ) попадает деталь с выделением ячейки желтым, после окончания обработки деталь остается в таблице станка, но ячейка выдекляется серым цветом. Это возможно и не приведет к затруднению работы скрипта в будущем (допустим если в таблице станка скопится более 500 значений)?
А сделайте, пожалуйста, во втором файле копию листа станков "(ФУ)" и нарисуйте на нём вручную такую картину, как Вы ее видите: 1. две детали ожидают очереди в крайней правой колонке - покрасьте вручную их жёлтым 2. две детали находятся на обработке в конкретном станке - покрасьте их (каким?) цветом, заполните поля типа "t обработки" 3. две детали закончили обработку - покрасьте их вручную серым, где они находятся - опять справа? выше/ниже жёлтых? Как они переместились обратно в очередь: вручную мышкой перетащили? или в первом файле установили статус "Выполнено", который протранслировался на лист "Импорт" и какой-то робот-скрипт, запускаемый, скажем, каждые 10 минут (или каждый час), увидев новый статус, перенес их с выполнения обратно в очередь. Понятно, что в рамках ручной разрисовки можно перетащить мышкой, точнее, даже просто набить текст в колонке "Очередь", но подумайте и напишите, как хотелось бы, чтобы это происходило.
Или же третьего шага не происходит, они никуда не перемещаются обратно в очередь и остаются в колонке станка? В общем, нарисуйте пример, всё станет понятнее.
[p.s.]Извиняюсь, перечитал Вас - увидел, что Вы "оставляете" деталь в колонке станка. [/p.s.]Ок, тогда еще уточняющий вопрос. А каких временах обработки мы говорим (порядок)? Как быстро в колонке станка накопится 500 значений?
Если это возможно, то было бы очень хорошо, если скрипт смог бы автоматически заполнять время начала и конца обработки.
Там три поля: "Время обработки", "Начало" и "Окончание". Скрипт, конечно, сможет заполнить любое третье поле при известных двух других. Но пока не понятно, кто и в какой момент заполнит эти два других ("известных").
Предполагалось то, что в очередь на станки (крайний правый столбей на листе ФУ) попадает деталь с выделением ячейки желтым, после окончания обработки деталь остается в таблице станка, но ячейка выдекляется серым цветом. Это возможно и не приведет к затруднению работы скрипта в будущем (допустим если в таблице станка скопится более 500 значений)?
А сделайте, пожалуйста, во втором файле копию листа станков "(ФУ)" и нарисуйте на нём вручную такую картину, как Вы ее видите: 1. две детали ожидают очереди в крайней правой колонке - покрасьте вручную их жёлтым 2. две детали находятся на обработке в конкретном станке - покрасьте их (каким?) цветом, заполните поля типа "t обработки" 3. две детали закончили обработку - покрасьте их вручную серым, где они находятся - опять справа? выше/ниже жёлтых? Как они переместились обратно в очередь: вручную мышкой перетащили? или в первом файле установили статус "Выполнено", который протранслировался на лист "Импорт" и какой-то робот-скрипт, запускаемый, скажем, каждые 10 минут (или каждый час), увидев новый статус, перенес их с выполнения обратно в очередь. Понятно, что в рамках ручной разрисовки можно перетащить мышкой, точнее, даже просто набить текст в колонке "Очередь", но подумайте и напишите, как хотелось бы, чтобы это происходило.
Или же третьего шага не происходит, они никуда не перемещаются обратно в очередь и остаются в колонке станка? В общем, нарисуйте пример, всё станет понятнее.
[p.s.]Извиняюсь, перечитал Вас - увидел, что Вы "оставляете" деталь в колонке станка. [/p.s.]Ок, тогда еще уточняющий вопрос. А каких временах обработки мы говорим (порядок)? Как быстро в колонке станка накопится 500 значений?Gustav
Есть файл, как это делали раньше в ручную - https://docs.google.com/spreads....294720. Обратите внимание, что иногда в ручную прописывается красная строка "Время чистки"
1. две детали ожидают очереди в крайней правой колонке - покрасьте вручную их жёлтым
1. В правой колонке "очередь на станки" находится одна нераспределенная деталь, которую еще не распределили. Она ждет ручного распределения на свободный станок и подходящий по параметрам станок. В данном случае это либо второй (свободный) станок, либо первый, после того, как он освободится (выполнит операцию с деталью, которая сейчас в обработке)
или в первом файле установили статус "Выполнено", который протранслировался на лист "Импорт" и какой-то робот-скрипт, запускаемый, скажем, каждые 10 минут (или каждый час), увидев новый статус, перенес их с выполнения обратно в очередь.
То, что выполненные детали остаются в очереди станка и выделяются серым, как выполненные написал выше. Хочу уточнить, подразумевалось то что все действия, кроме ручного переноса детали в очередь станка, выполнялись бы как вы пишите "в первом файле установили статус "Выполнено", который протранслировался на лист "Импорт" и какой-то робот-скрипт, запускаемый, скажем, каждые 10 минут (или каждый час), увидев новый статус и...." выполнил постановку в очередь на станок и пометку ячейки выполненной детали серым цветом.
Или же третьего шага не происходит, они никуда не перемещаются обратно в очередь и остаются в колонке станка?
Да
Есть файл, как это делали раньше в ручную - https://docs.google.com/spreads....294720. Обратите внимание, что иногда в ручную прописывается красная строка "Время чистки"
1. две детали ожидают очереди в крайней правой колонке - покрасьте вручную их жёлтым
1. В правой колонке "очередь на станки" находится одна нераспределенная деталь, которую еще не распределили. Она ждет ручного распределения на свободный станок и подходящий по параметрам станок. В данном случае это либо второй (свободный) станок, либо первый, после того, как он освободится (выполнит операцию с деталью, которая сейчас в обработке)
или в первом файле установили статус "Выполнено", который протранслировался на лист "Импорт" и какой-то робот-скрипт, запускаемый, скажем, каждые 10 минут (или каждый час), увидев новый статус, перенес их с выполнения обратно в очередь.
То, что выполненные детали остаются в очереди станка и выделяются серым, как выполненные написал выше. Хочу уточнить, подразумевалось то что все действия, кроме ручного переноса детали в очередь станка, выполнялись бы как вы пишите "в первом файле установили статус "Выполнено", который протранслировался на лист "Импорт" и какой-то робот-скрипт, запускаемый, скажем, каждые 10 минут (или каждый час), увидев новый статус и...." выполнил постановку в очередь на станок и пометку ячейки выполненной детали серым цветом.
Если вы про это "Там три поля: "Время обработки", Начало и "Окончание"...." то это вообще не обязательно. Эта Информация есть на листе Импорт. "Время начала обработки" - это время когда на листе "Импопрт" появился статус, что деталь "в работе" на данной операции. "Время окончания обработки" - это время когда на листе "Импопрт" появился статус, что деталь "Выполнена" на данной операции там кажется два временных значения.
Если вы про это "Там три поля: "Время обработки", Начало и "Окончание"...." то это вообще не обязательно. Эта Информация есть на листе Импорт. "Время начала обработки" - это время когда на листе "Импопрт" появился статус, что деталь "в работе" на данной операции. "Время окончания обработки" - это время когда на листе "Импопрт" появился статус, что деталь "Выполнена" на данной операции там кажется два временных значения.
Сделал свою копию Вашего второго файла https://docs.google.com/spreads....sharing (id таблицы 1KSgnB1HzUF1IjKlwekbe0F1ZsRW-X55bfhxI4L18xxw ) и расширил ее новым листом "Списки" (самый крайний правый, после "Импорта"). На этом новом листе пока два списка: * список "Импорта", расположенный по убыванию значений времени в поле "Таймштамп", т.е. развернутый на 180 градусов - нужен для получения следующего списка * список уникальных сочетаний "наименование детали-операция" с актуальными статусам (т.е. статусами на самый поздний таймштамп для этого уникального сочетания)
Первый список создан формулой в ячейке A3 листа "Списки": [vba]
Код
=QUERY({'ИмпортОчередиДеталейНаСтанки'!A2:D}; "select Col2, Col3, Col4, Col1 where Col1 is not null order by Col1 desc")
[/vba]
Второй список создан двумя формулами на листе "Списки": в ячейке F3 - уникальные сочетания "деталь-операция": [vba]
Код
=SORT(UNIQUE(FILTER(A3:B;D3:D<>"")))
[/vba] в ячейке H3 - ВПР-массив актуальных статусов "деталей-операций" (самых поздних по таймштампу), синхронизированный по размеру с массивом уникальных сочетаний: [vba]
[/vba] Поскольку формула находится в ячейке выше рабочей области листа, начинающейся с 3-й строки, содержимое ячеек колонки S можно свободно копировать и даже перетаскивать мышкой, не боясь сломать формулу. Лучше копировать (при перетаскивании может нарушаться форматирование ячеек "Очереди").
Если скопировать ячейку с названием детали из очереди, а затем вставить ее в одну из станковых колонок "номер и обозначение детали", то деталь из очереди исчезнет! Т.е. как будто бы реально перешла из зоны ожидания в обработку. Визуально очень неплохо смотрится! Чтобы вернуть деталь обратно в очередь (например, вытащили по ошибке раньше времени), ее нужно просто стереть клавишей Delete в станковой колонке "номер и обозначение детали" - и деталь снова "возникнет" в очереди. Однако, не нужно пытаться перетащить ее со станка в очередь мышкой - формула временно сломается с ошибкой #REF!. Т.е. общее правило: таскать из очереди можно, а впихивать (грубо) обратно - нет (для этого нужно пользоваться клавишей Delete в другой колонке).
Наконец, еще одна мулька на листе станка. Клавиша Delete, нажатая на любой ячейке с текстом "номер и обозначение детали" (как будто бы хотим стереть эту ячейку) приводит к тому, что текст в ячейке восстанавливается, а все детали, находящиеся в списке станка, смещаются на одну строку ниже, освобождая таким образом первую строку станка для новой детали, которую планируется добавить из очереди справа. Делается мулька при помощи такого скрипта: [vba]
Код
function onEdit(e) { // "команда сдёргивания" - нажатие клавиши Delete на ячейке приводит к выполнению var origValue = e.oldValue; if (origValue.toUpperCase() == "номер и обозначение детали".toUpperCase()) { // восстановление содержимого ячейки e.range.setValue("номер и обозначение детали"); // выполнение команды - сдвиг заполненных ячеек вниз // с образованием пустого места для "размещения" новой детали e.range.offset(1, -1, 1, 6).insertCells(SpreadsheetApp.Dimension.ROWS); } }
[/vba]
Думаю, что надо сделать такие же очереди-"предбанники" справа и для других операций, даже если станок один на листе - очень уж наглядно получается! К тому же, существенно то, что в "Очереди" справа работает формула, а по рабочим областям станков перемещаются ячейки-детали с простым текстовым содержимым (константы). Т.е. предлагаю сделать единый подход на всех листах станков - вне зависимости от того, один ли станок на листе или несколько.
Посмотрите, поиграйтесь с новым функционалом. Прокомментируйте, удобно ли получается. Моя копия сейчас настроена на импорт из Вашего первого файла. Поэтому можете погенерить в своём первом файле ещё детали на обработку и проведите их во второй файл на станки (сделайте себе новую копию второго файла с моей).
И надо подумать как дальше внедрять новый функционал. Предлагаю, как уже получилось один раз, поочередные действия. Я делаю набросок чего-то на фрагменте, после чего Вы делаете свою копию с моей, по уже известной аналогии дорабатываете все остальные родственные фрагменты и опять выкладываете свою обновленную версию, с которой уже я делаю новую копию и внедряю в неё новые элементы фуцнкционала. И так дальше по очереди.
Я сейчас внедрил формулы на двух листах: ФЧПУ и ФУ. Вам предлагаю разобраться и внедрить их на остальных станках. А я тем временем займусь условным форматированием во втором файле (жёлтая и серая раскраска).
Сделал свою копию Вашего второго файла https://docs.google.com/spreads....sharing (id таблицы 1KSgnB1HzUF1IjKlwekbe0F1ZsRW-X55bfhxI4L18xxw ) и расширил ее новым листом "Списки" (самый крайний правый, после "Импорта"). На этом новом листе пока два списка: * список "Импорта", расположенный по убыванию значений времени в поле "Таймштамп", т.е. развернутый на 180 градусов - нужен для получения следующего списка * список уникальных сочетаний "наименование детали-операция" с актуальными статусам (т.е. статусами на самый поздний таймштамп для этого уникального сочетания)
Первый список создан формулой в ячейке A3 листа "Списки": [vba]
Код
=QUERY({'ИмпортОчередиДеталейНаСтанки'!A2:D}; "select Col2, Col3, Col4, Col1 where Col1 is not null order by Col1 desc")
[/vba]
Второй список создан двумя формулами на листе "Списки": в ячейке F3 - уникальные сочетания "деталь-операция": [vba]
Код
=SORT(UNIQUE(FILTER(A3:B;D3:D<>"")))
[/vba] в ячейке H3 - ВПР-массив актуальных статусов "деталей-операций" (самых поздних по таймштампу), синхронизированный по размеру с массивом уникальных сочетаний: [vba]
[/vba] Поскольку формула находится в ячейке выше рабочей области листа, начинающейся с 3-й строки, содержимое ячеек колонки S можно свободно копировать и даже перетаскивать мышкой, не боясь сломать формулу. Лучше копировать (при перетаскивании может нарушаться форматирование ячеек "Очереди").
Если скопировать ячейку с названием детали из очереди, а затем вставить ее в одну из станковых колонок "номер и обозначение детали", то деталь из очереди исчезнет! Т.е. как будто бы реально перешла из зоны ожидания в обработку. Визуально очень неплохо смотрится! Чтобы вернуть деталь обратно в очередь (например, вытащили по ошибке раньше времени), ее нужно просто стереть клавишей Delete в станковой колонке "номер и обозначение детали" - и деталь снова "возникнет" в очереди. Однако, не нужно пытаться перетащить ее со станка в очередь мышкой - формула временно сломается с ошибкой #REF!. Т.е. общее правило: таскать из очереди можно, а впихивать (грубо) обратно - нет (для этого нужно пользоваться клавишей Delete в другой колонке).
Наконец, еще одна мулька на листе станка. Клавиша Delete, нажатая на любой ячейке с текстом "номер и обозначение детали" (как будто бы хотим стереть эту ячейку) приводит к тому, что текст в ячейке восстанавливается, а все детали, находящиеся в списке станка, смещаются на одну строку ниже, освобождая таким образом первую строку станка для новой детали, которую планируется добавить из очереди справа. Делается мулька при помощи такого скрипта: [vba]
Код
function onEdit(e) { // "команда сдёргивания" - нажатие клавиши Delete на ячейке приводит к выполнению var origValue = e.oldValue; if (origValue.toUpperCase() == "номер и обозначение детали".toUpperCase()) { // восстановление содержимого ячейки e.range.setValue("номер и обозначение детали"); // выполнение команды - сдвиг заполненных ячеек вниз // с образованием пустого места для "размещения" новой детали e.range.offset(1, -1, 1, 6).insertCells(SpreadsheetApp.Dimension.ROWS); } }
[/vba]
Думаю, что надо сделать такие же очереди-"предбанники" справа и для других операций, даже если станок один на листе - очень уж наглядно получается! К тому же, существенно то, что в "Очереди" справа работает формула, а по рабочим областям станков перемещаются ячейки-детали с простым текстовым содержимым (константы). Т.е. предлагаю сделать единый подход на всех листах станков - вне зависимости от того, один ли станок на листе или несколько.
Посмотрите, поиграйтесь с новым функционалом. Прокомментируйте, удобно ли получается. Моя копия сейчас настроена на импорт из Вашего первого файла. Поэтому можете погенерить в своём первом файле ещё детали на обработку и проведите их во второй файл на станки (сделайте себе новую копию второго файла с моей).
И надо подумать как дальше внедрять новый функционал. Предлагаю, как уже получилось один раз, поочередные действия. Я делаю набросок чего-то на фрагменте, после чего Вы делаете свою копию с моей, по уже известной аналогии дорабатываете все остальные родственные фрагменты и опять выкладываете свою обновленную версию, с которой уже я делаю новую копию и внедряю в неё новые элементы фуцнкционала. И так дальше по очереди.
Я сейчас внедрил формулы на двух листах: ФЧПУ и ФУ. Вам предлагаю разобраться и внедрить их на остальных станках. А я тем временем займусь условным форматированием во втором файле (жёлтая и серая раскраска).Gustav
Густав, это гениально. Спасибо Вам. Есть вопрос, не могу правильно вписать в формулу в ячейке M3 на листе ФЧПУ (файл станков) условие, при котором отбор будет вестись не только по абревиатуре ФЧПУ, но и по ФЧПУ2 (так как у нас в операциях одной детали может быть и то и то и в файле станков они дублируются в очереди). Как сделать, что бы формула различала ФЧПУ и ФЧПУ2?
Густав, это гениально. Спасибо Вам. Есть вопрос, не могу правильно вписать в формулу в ячейке M3 на листе ФЧПУ (файл станков) условие, при котором отбор будет вестись не только по абревиатуре ФЧПУ, но и по ФЧПУ2 (так как у нас в операциях одной детали может быть и то и то и в файле станков они дублируются в очереди). Как сделать, что бы формула различала ФЧПУ и ФЧПУ2?gutsoff200991
[/vba] Т.е. ФЧПУ и ФЧПУ2 это будут разные очереди и, соответственно, разные листы станков? А как с ними соотносятся, например, такие операции, как ФЧПУ06.01 и ФЧПУ10.01 - их куда?
[/vba] Т.е. ФЧПУ и ФЧПУ2 это будут разные очереди и, соответственно, разные листы станков? А как с ними соотносятся, например, такие операции, как ФЧПУ06.01 и ФЧПУ10.01 - их куда?Gustav
Т.е. ФЧПУ и ФЧПУ2 это будут разные очереди и, соответственно, разные листы станков?
Эти операции (ФЧПУ и ФЧПУ2) в детали разные, но производятся на одном и том же станке. Лист станков для ФЧПУ и ФЧПУ2 один и тот же. Тоже самое с С и С2, Т и Т2.
Т.е. ФЧПУ и ФЧПУ2 это будут разные очереди и, соответственно, разные листы станков?
Эти операции (ФЧПУ и ФЧПУ2) в детали разные, но производятся на одном и том же станке. Лист станков для ФЧПУ и ФЧПУ2 один и тот же. Тоже самое с С и С2, Т и Т2.
Есть вопрос, не могу правильно вписать в формулу в ячейке M3 на листе ФЧПУ (файл станков) условие, при котором отбор будет вестись не только по абревиатуре ФЧПУ, но и по ФЧПУ2 (так как у нас в операциях одной детали может быть и то и то и в файле станков они дублируются в очереди). Как сделать, что бы формула различала ФЧПУ и ФЧПУ2?
Еще вопрос. Как сделать в формуле в этой же ячейке (М3 на листе ФЧПУ), так что бы оставить деталь у которой статус будет "Выполнено" в столбце "Очередь на станки", т.е. в том же столбце М? Знаю что говорил ранее, что детали не должны оставаться в очереди. Но возник вопрос, что если оператор станка поставит статус выполнено, а начальник смены при этом до этого не перетащил деталь из очереди на нужный станок (не успел, забыл). Получается что в этом случае деталь пропадет из истории.
Есть вопрос, не могу правильно вписать в формулу в ячейке M3 на листе ФЧПУ (файл станков) условие, при котором отбор будет вестись не только по абревиатуре ФЧПУ, но и по ФЧПУ2 (так как у нас в операциях одной детали может быть и то и то и в файле станков они дублируются в очереди). Как сделать, что бы формула различала ФЧПУ и ФЧПУ2?
Еще вопрос. Как сделать в формуле в этой же ячейке (М3 на листе ФЧПУ), так что бы оставить деталь у которой статус будет "Выполнено" в столбце "Очередь на станки", т.е. в том же столбце М? Знаю что говорил ранее, что детали не должны оставаться в очереди. Но возник вопрос, что если оператор станка поставит статус выполнено, а начальник смены при этом до этого не перетащил деталь из очереди на нужный станок (не успел, забыл). Получается что в этом случае деталь пропадет из истории.gutsoff200991
[/vba] Иначе как они будут в очереди на один и тот же станок различаться? По-хорошему, надо бы сразу называть так детали еще в первом файле, а то сложность формул очереди и УФ во втором файле возрастет в квадрате, если придётся в формуле на ходу делать динамическую сцепку названия и операции. Что думаете по этому поводу?
[/vba] Иначе как они будут в очереди на один и тот же станок различаться? По-хорошему, надо бы сразу называть так детали еще в первом файле, а то сложность формул очереди и УФ во втором файле возрастет в квадрате, если придётся в формуле на ходу делать динамическую сцепку названия и операции. Что думаете по этому поводу?Gustav
[/vba] Ну, и дополнительно надо будет удалить деталь из рабочей зоны станка, чтобы она опять отобразилась в очереди после выполнения.
Решать, конечно, Вам, но как сделано сейчас мне нравится больше. Деталь, отправляясь в рабочую зону, уходит из очереди. В рабочей зоне она может обрасти информацией в доп.колонках ("начало", "окончание" и т.д.). Когда статус становится "Выполнено", деталь меняет окрас с жёлтого на серый и остается в рабочей зоне вместе со всей доп.информацией, а также самим фактом, что она была обработана на данном конкретном станке. По мере добавления сверху новых ("жёлтых") деталей на обработку старые ("серые") смещаются вниз вместе со всеми своими значениями в доп. колонках. И вот это, получается, реальное хранение истории! А если ее опять определять в очередь, то надо предусматривать какую-то очистку доп.колонок (прямо рука не поднимается на это действие - "заполнять-заполнять, чтобы потом всё зачеркнуть")
[/vba] Ну, и дополнительно надо будет удалить деталь из рабочей зоны станка, чтобы она опять отобразилась в очереди после выполнения.
Решать, конечно, Вам, но как сделано сейчас мне нравится больше. Деталь, отправляясь в рабочую зону, уходит из очереди. В рабочей зоне она может обрасти информацией в доп.колонках ("начало", "окончание" и т.д.). Когда статус становится "Выполнено", деталь меняет окрас с жёлтого на серый и остается в рабочей зоне вместе со всей доп.информацией, а также самим фактом, что она была обработана на данном конкретном станке. По мере добавления сверху новых ("жёлтых") деталей на обработку старые ("серые") смещаются вниз вместе со всеми своими значениями в доп. колонках. И вот это, получается, реальное хранение истории! А если ее опять определять в очередь, то надо предусматривать какую-то очистку доп.колонок (прямо рука не поднимается на это действие - "заполнять-заполнять, чтобы потом всё зачеркнуть")Gustav
Еще вопрос. Прошу меня простить, так как я не глубоко понимаю схематику формул. Во втором файле (файл станков) на странице списки, во втором списке "Уникальные Детали-Операции" не верно отображается статус (нет соответствия Статус-операция). При изменении статуса, он (статус) в списке меняется на первой строке детали, а измененная операция помещается вне соответствии со статусом. Не могу понять, как это исправить.
Еще вопрос. Прошу меня простить, так как я не глубоко понимаю схематику формул. Во втором файле (файл станков) на странице списки, во втором списке "Уникальные Детали-Операции" не верно отображается статус (нет соответствия Статус-операция). При изменении статуса, он (статус) в списке меняется на первой строке детали, а измененная операция помещается вне соответствии со статусом. Не могу понять, как это исправить.gutsoff200991
во втором списке "Уникальные Детали-Операции" не верно отображается статус (нет соответствия Статус-операция). При изменении статуса, он (статус) в списке меняется на первой строке детали, а измененная операция помещается на последнюю строку детали - из-за этого несинхрон.
Я не очень понимаю, что имеете в виду. Строки этой таблицы для этой детали соответствуют, грубо говоря, ячейкам первой таблицы. Строки "Выполнено" - зеленым ячейкам, строка "В работе" - жёлтой. Никакого соответствия "Статус-операция" в таблицу "Уникальные Детали-операции" не закладывалось, а строки расположены по алфавитному порядку сцепки "Деталь-Операция" - для удобства работы функций типа ВПР.
[p.s.]Ах, понял! Да-да, была ошибка в формуле ВПР, нужно вот так:(что-то не работает тэг PS)[/p.s.]
во втором списке "Уникальные Детали-Операции" не верно отображается статус (нет соответствия Статус-операция). При изменении статуса, он (статус) в списке меняется на первой строке детали, а измененная операция помещается на последнюю строку детали - из-за этого несинхрон.
Я не очень понимаю, что имеете в виду. Строки этой таблицы для этой детали соответствуют, грубо говоря, ячейкам первой таблицы. Строки "Выполнено" - зеленым ячейкам, строка "В работе" - жёлтой. Никакого соответствия "Статус-операция" в таблицу "Уникальные Детали-операции" не закладывалось, а строки расположены по алфавитному порядку сцепки "Деталь-Операция" - для удобства работы функций типа ВПР.
[p.s.]Ах, понял! Да-да, была ошибка в формуле ВПР, нужно вот так:(что-то не работает тэг PS)[/p.s.]
Как их дальше различить, какая из них идёт на ФЧПУ, а какая на ФЧПУ2 ?
На примере листа https://docs.google.com/spreads....8373344 из первого файла. (TPYG.1789.00.05_Матрица): ФЧПУ стоит первой в очереди, ФЧПУ2 - далее по процессу. Т.е. каждая таблица с отдельной деталью представляет собой перечень последовательных процессов, которые должны выполняться поочередно. Я думал будет достаточно разделить их на ФЧПУ и ФЧПУ2, но нет. Создавать отдельные таблицы под ФЧПУ2 нерационально, так как необходима именно одна таблица на деталь (предусмотрено процессом работы с этими файлами). Я так понял другого легкого пути нет.
[p.s.]Прошу прощения. я разобрался, все в порядке. Не нужно, чтобы наименование детали для ФЧПУ и ФЧПУ2 отличались, просто нужно, что бы они фиксировались вдвоем в таблице. Сейчас они фиксируются вдвоем только тогда, когда ФЧПУ и ФЧПУ2 имеют статус "В работе. В остальных случаях (когда у ФЧПУ и ФЧПУ2 разные статусы) они вдвоем в таблице не фиксируются (а очень важно что бы фиксировались). Как это сделать - не знаю"[/p.s.]
Как их дальше различить, какая из них идёт на ФЧПУ, а какая на ФЧПУ2 ?
На примере листа https://docs.google.com/spreads....8373344 из первого файла. (TPYG.1789.00.05_Матрица): ФЧПУ стоит первой в очереди, ФЧПУ2 - далее по процессу. Т.е. каждая таблица с отдельной деталью представляет собой перечень последовательных процессов, которые должны выполняться поочередно. Я думал будет достаточно разделить их на ФЧПУ и ФЧПУ2, но нет. Создавать отдельные таблицы под ФЧПУ2 нерационально, так как необходима именно одна таблица на деталь (предусмотрено процессом работы с этими файлами). Я так понял другого легкого пути нет.
[p.s.]Прошу прощения. я разобрался, все в порядке. Не нужно, чтобы наименование детали для ФЧПУ и ФЧПУ2 отличались, просто нужно, что бы они фиксировались вдвоем в таблице. Сейчас они фиксируются вдвоем только тогда, когда ФЧПУ и ФЧПУ2 имеют статус "В работе. В остальных случаях (когда у ФЧПУ и ФЧПУ2 разные статусы) они вдвоем в таблице не фиксируются (а очень важно что бы фиксировались). Как это сделать - не знаю"[/p.s.]gutsoff200991
Сообщение отредактировал Serge_007 - Вторник, 31.01.2023, 15:03
Gustav, Процесс который вы создали - именно то, что нам нужно. Спасибо большое. Удалять этот шедевр и в голову не приходило. Однако все это было задумано с одной целью - автоматизировать процесс. Тот факт, что нужно руками перетащить деталь из очереди на станок и был так задуман. Но... если начальник смены не успеет вовремя перетащить деталь из очереди на станок (до того, как ее статус будет "Выполнено"), деталь и вовсе пропадет из очереди и из листа со станком. И я так понял, кроме как полностью переписать полюбившийся нам процесс (а переписывать мы не будем) этих случайных пропаж не исправить?
Gustav, Процесс который вы создали - именно то, что нам нужно. Спасибо большое. Удалять этот шедевр и в голову не приходило. Однако все это было задумано с одной целью - автоматизировать процесс. Тот факт, что нужно руками перетащить деталь из очереди на станок и был так задуман. Но... если начальник смены не успеет вовремя перетащить деталь из очереди на станок (до того, как ее статус будет "Выполнено"), деталь и вовсе пропадет из очереди и из листа со станком. И я так понял, кроме как полностью переписать полюбившийся нам процесс (а переписывать мы не будем) этих случайных пропаж не исправить?gutsoff200991
Сообщение отредактировал Serge_007 - Вторник, 31.01.2023, 15:01