Практически не работаю в Эксель,в Гуглотаблицах тем более. Есть ли такая возможность для быстрого сокрытия/раскрытия в большой таблице таких строк? Потому что нужно очень часто и быстро это делать.
У меня уже есть чекбокс - отмечаю выполненные заказы, они вперемешку с невыполненными.
В принципе, я сделал чекбокс, чтобы быстро присваивать строчке зеленый фон. Я еще хотел, чтобы при этом все условные форматирования (-, в план, готов, отмена) заменялись на "готов". Но это я не осилю.
Только можно ли прикрутить "кнопочку"? Или можно слева сделать еще один столбик с чекбоксами, при нажатии на любой из них будет как раз выполняться скрытие всех строк с птичками в соседнем сnолбике?
Практически не работаю в Эксель,в Гуглотаблицах тем более. Есть ли такая возможность для быстрого сокрытия/раскрытия в большой таблице таких строк? Потому что нужно очень часто и быстро это делать.
У меня уже есть чекбокс - отмечаю выполненные заказы, они вперемешку с невыполненными.
В принципе, я сделал чекбокс, чтобы быстро присваивать строчке зеленый фон. Я еще хотел, чтобы при этом все условные форматирования (-, в план, готов, отмена) заменялись на "готов". Но это я не осилю.
Только можно ли прикрутить "кнопочку"? Или можно слева сделать еще один столбик с чекбоксами, при нажатии на любой из них будет как раз выполняться скрытие всех строк с птичками в соседнем сnолбике?egorus
Пока сделал, поставив фильтр на столбик с чекбоксом по условию ЛОЖЬ. Только кликов много - три. Было бы так - по клику вверху по значку фильтра сразу бы применялось условие фильтра. Потом отжал - фильтр снялся.
Пока сделал, поставив фильтр на столбик с чекбоксом по условию ЛОЖЬ. Только кликов много - три. Было бы так - по клику вверху по значку фильтра сразу бы применялось условие фильтра. Потом отжал - фильтр снялся.egorus
Живой пример давайте! Без примера - уныло. Как без примера добавить скрипт в вашу таблицу? А для такой работы чек-бокса, какую желаете, нужен скрипт. Не словами же объяснять... Да и как сам скрипт написать, если на картинках не видно ни задействованных колонок таблицы, ни области, ею занимаемой? Сочинять же свою таблицу-пример по мотивам ваших картинок - ни у кого нет желания. Так что давайте тестовую копию своей таблички - удалите конфиденциальные данные и покажите! Не думаю, что даты, номера заказов и их статусы являются таким уж секретом. А секретные колонки - удалите из тестовой копии.
Живой пример давайте! Без примера - уныло. Как без примера добавить скрипт в вашу таблицу? А для такой работы чек-бокса, какую желаете, нужен скрипт. Не словами же объяснять... Да и как сам скрипт написать, если на картинках не видно ни задействованных колонок таблицы, ни области, ею занимаемой? Сочинять же свою таблицу-пример по мотивам ваших картинок - ни у кого нет желания. Так что давайте тестовую копию своей таблички - удалите конфиденциальные данные и покажите! Не думаю, что даты, номера заказов и их статусы являются таким уж секретом. А секретные колонки - удалите из тестовой копии.Gustav
Как раз может быть подскажете, как какие-то вещи сделать более правильно. Потому что это мое творчество буквально нескольких часов, даже не изучения, а быстрого поиска решения в инете. Нужно было быстро начинать что-то делать. Возможно, это даже не для таблиц задача. Частично свои хотелки реализовал, возможно, и через одно место. Фильтр на выполненные заказы поставил. Теперь можно довольно быстро убирать с экрана выполненные заказы ,чтобы концентрироваться только на те, что в работе. А вот замена всех статусов на "готов" - ну, это интересная была бы штучка.
Как раз может быть подскажете, как какие-то вещи сделать более правильно. Потому что это мое творчество буквально нескольких часов, даже не изучения, а быстрого поиска решения в инете. Нужно было быстро начинать что-то делать. Возможно, это даже не для таблиц задача. Частично свои хотелки реализовал, возможно, и через одно место. Фильтр на выполненные заказы поставил. Теперь можно довольно быстро убирать с экрана выполненные заказы ,чтобы концентрироваться только на те, что в работе. А вот замена всех статусов на "готов" - ну, это интересная была бы штучка.egorus
Сообщение отредактировал egorus - Воскресенье, 29.05.2022, 20:06
Сделал первую хотелку - фильтровать одним кликом (а не тремя). Управляется флажком в ячейке A1 на листе "Производство". Код внедрил в ваш тестовый файл, здесь привожу для справки и как узелок на память (в том числе и для себя):
А вот замена всех статусов на "готов" - ну, это интересная была бы штучка.
Давайте уточним это. Т.е. при щелчке на флажке для какой-то строки, когда она красится в зеленый цвет, надо еще и значение "готов" в статусной колонке прописать вместо имеющегося там на момент щелчка? В обеих колонках - Препресс и Печать? Или только в какой-то одной?
Сделал первую хотелку - фильтровать одним кликом (а не тремя). Управляется флажком в ячейке A1 на листе "Производство". Код внедрил в ваш тестовый файл, здесь привожу для справки и как узелок на память (в том числе и для себя):
А вот замена всех статусов на "готов" - ну, это интересная была бы штучка.
Давайте уточним это. Т.е. при щелчке на флажке для какой-то строки, когда она красится в зеленый цвет, надо еще и значение "готов" в статусной колонке прописать вместо имеющегося там на момент щелчка? В обеих колонках - Препресс и Печать? Или только в какой-то одной?Gustav
значение "готов" в статусной колонке прописать вместо имеющегося там на момент щелчка
Да, хотелось бы, чтобы все статусы, где они были в строке, заменились на "готов" (даже сам "готов" - так будет проще )) ) Единственное, в основной таблице где-то выше остались (возможно хотя пробежался, почистил) статусы "-" Я этот статус решил убрать Это же не помешает? (В копии я один оставил в одной ячейке, чтобы Вы понимали, о чем речь)
А как мне уже перенести Ваш чекбокс в основную таблицу?
значение "готов" в статусной колонке прописать вместо имеющегося там на момент щелчка
Да, хотелось бы, чтобы все статусы, где они были в строке, заменились на "готов" (даже сам "готов" - так будет проще )) ) Единственное, в основной таблице где-то выше остались (возможно хотя пробежался, почистил) статусы "-" Я этот статус решил убрать Это же не помешает? (В копии я один оставил в одной ячейке, чтобы Вы понимали, о чем речь)
А как мне уже перенести Ваш чекбокс в основную таблицу?egorus
Сообщение отредактировал egorus - Понедельник, 30.05.2022, 08:17
if (rng.getValue() == true) { // если флажок устанавливается - включаем фильтр setFilter(); } else { // если флажок снимается - удаляем фильтр removeFilter(); } }
if (rng.getSheet().getName() == 'Производство' && rng.getNumColumns() == 1 && rng.getNumRows() == 1 && rng.getColumn() == 1 && rng.getRow() >= 3) { // ячейка A3 и ниже
if (rng.getValue() == true) { // если флажок устанавливается - устанавливаем статусы "готов" setStatusGotov(rng.getRow()); } } }
function setFilter() { var ss = SpreadsheetApp.getActive(); var filter = ss.getActiveSheet().getFilter(); if (! filter) { filter = ss.getRange('A2:A').createFilter(); } var criteria = SpreadsheetApp.newFilterCriteria() .setHiddenValues(['TRUE','ИСТИНА']) // скрываем выполненные заказы .build(); filter.setColumnFilterCriteria(1, criteria); }
function removeFilter() { var ss = SpreadsheetApp.getActive(); var filter = ss.getActiveSheet().getFilter(); if (filter) { filter.remove(); } }
function setStatusGotov(row) { var ss = SpreadsheetApp.getActive(); var range = ss.getRange('O'+row+':AB'+row) var values = range.getValues(); values[0].forEach(function(v,i,a) { if (v) { a[i] = 'готов' } // если статус не пустой, меняем на "готов" }); range.setValues(values); SpreadsheetApp.flush(); }
как мне уже перенести Ваш чекбокс в основную таблицу?
Выполнить в копии и в основной таблице команду верхнего меню "Расширения \ Apps Script" и перенести код копированием. Ну, а в самой основной таблице добавить строку выше первой и оформить ячейку A1 по аналогии с ячейкой A1 из копии.
if (rng.getValue() == true) { // если флажок устанавливается - включаем фильтр setFilter(); } else { // если флажок снимается - удаляем фильтр removeFilter(); } }
if (rng.getSheet().getName() == 'Производство' && rng.getNumColumns() == 1 && rng.getNumRows() == 1 && rng.getColumn() == 1 && rng.getRow() >= 3) { // ячейка A3 и ниже
if (rng.getValue() == true) { // если флажок устанавливается - устанавливаем статусы "готов" setStatusGotov(rng.getRow()); } } }
function setFilter() { var ss = SpreadsheetApp.getActive(); var filter = ss.getActiveSheet().getFilter(); if (! filter) { filter = ss.getRange('A2:A').createFilter(); } var criteria = SpreadsheetApp.newFilterCriteria() .setHiddenValues(['TRUE','ИСТИНА']) // скрываем выполненные заказы .build(); filter.setColumnFilterCriteria(1, criteria); }
function removeFilter() { var ss = SpreadsheetApp.getActive(); var filter = ss.getActiveSheet().getFilter(); if (filter) { filter.remove(); } }
function setStatusGotov(row) { var ss = SpreadsheetApp.getActive(); var range = ss.getRange('O'+row+':AB'+row) var values = range.getValues(); values[0].forEach(function(v,i,a) { if (v) { a[i] = 'готов' } // если статус не пустой, меняем на "готов" }); range.setValues(values); SpreadsheetApp.flush(); }
как мне уже перенести Ваш чекбокс в основную таблицу?
Выполнить в копии и в основной таблице команду верхнего меню "Расширения \ Apps Script" и перенести код копированием. Ну, а в самой основной таблице добавить строку выше первой и оформить ячейку A1 по аналогии с ячейкой A1 из копии.Gustav