Идея:
автоматизировать учет времени простоев оборудования.
Критерии:
- в электронном виде;
- максимально просто;
- мобильность (без необходимости постоянного использования ПК);
- бесплатно.
По сути нужен счетчик времени с идентификатором операций.
Необходимые предварительные мероприятия:
- аккаунт google или google suit.
Создаём систему учёта за семь простых шагов:
1. Создаем новую форму гугл / google form (далее - ФОРМА).
2. В созданной ФОРМЕ делаем три раздела:
3. Переходим на вкладку "Ответы", нажимаем “Посмотреть ответы в Таблицах”.
На листе с заголовками, созданными по данным ФОРМЫ, добавляем сервисные столбцы. Для автоматического заполнения сервисных столбцов при внесении данных через ФОРМУ используем формулы массива:
- Создаём идентификатор (в данном примере - в столбце "G"), позволяющий выбрать открытую задачу (например, обозначение оборудования и метка времени). В формуле ниже столбец “C” - обозначение оборудования из второго раздела ФОРМЫ, столбец “A” - метка времени:
=ArrayFormulИ(ЕПУСТО(C2:C);"";C2:C&" от "&ТЕКСТ(A2:A;"dd.MM.yy hh:mm")))
- Для фильтрации ранее закрытых задач создаем столбец со статусом "открыт/закрыт" (где столбец "G" - ранее созданный идентификатор, "E" - этот же идентификатор, выбранный в третьем разделе ФОРМЫ при закрытии):
=ArrayFormula(ЕСЛИ(G2:G="";""; ЕСЛИ(ЕСЛИОШИБКА(ПОИСКПОЗ(G2:G;E:E;0);"")="";"Открыт";"Закрыт")))
4. Создаём новый лист в ТАБЛИЦЕ (в данном примере имя листа "data" - далее будет использовано в скрипте) для списка, который будем подставлять в ФОРМУ. Заголовок списка должен совпадать с формулировкой вопроса в ФОРМЕ. В список должны попадать только открытые задачи с листа "Ответы на форму":
=QUERY('Ответы на форму (1)'!G:H; "select G WHERE H = '" & "Открыт"&"'";-1)
5. Создаём скрипт гугл / google script для автоматического обновления выпадающего списка в ФОРМЕ:
Код скрипта:
var ssID = "между кавычек вставить ID ТАБЛИЦЫ";
var formID = "между кавычек вставить ID ФОРМЫ";
var wsData = SpreadsheetApp.openById(ssID).getSheetByName("data");
var form = FormApp.openById(formID);
function main(){
var labels = wsData.getRange(1, 1,1,wsData.getLastColumn()).getValues()[0];
labels.forEach(function(label,i){
var options = wsData.getRange(2, i + 1,wsData.getLastRow()-1,1).getValues().map(function(o){ return o[0] }).filter(function(o){return o !==""});
updateDropRownUsingTitle (label, options);
});
}
function updateDropRownUsingTitle(title,values) {
var items = form.getItems();
var titles = items.map(function(item){
return item.getTitle();
});
var pos = titles.indexOf(title);
if (pos !== -1){
var item = items[pos];
var itemID = item.getId();
updateDropdown(itemID,values);
}
}
function updateDropdown(id,values) {
var item = form.getItemById(id);
item.asListItem().setChoiceValues(values);
}
6. Добавляем триггер по событию “При отправке формы”:
7. Используем форму:
Резюме:
Учет простоев оборудования является одним из элементов "Всеобщего обслуживания оборудования" (Total Productive Maintenance (TPM), который принято считать частью системы "Бережливого производства" (Lean manufacturing - см., например, ГОСТ Р 56407-2015), и позволяет устранять потери на ожидание (см. виды потерь / "muda").
В дальнейшем данные ТАБЛИЦЫ можно использовать для анализа, построения DASHBOARD-ов, сводных таблиц, печатных форм, отчетов и т.п. Таким же образом можно организовать простейшую систему управления ошибками/задачами (bug/issue tracker).
Форма также доступна на мобильных устройствах и может использоваться "на местах".
#ТОРО #lean #gsheets #gform #dropdownlist