Как создать формулу для фильтра?

У меня есть таблица с тремя колонками - категория, товар, цена. (см скриншот)
Мне нужно иметь возможность фильтровать (отображать) только строки конкретной категории и изменять в этой же таблице цену. Категорию по которой фильтровать я указываю в ячейке F1.
Я так понимаю с этой задачей может справиться Фильтр.
Какую формулу написать в фильтре, что бы он выполнял эту задачу?
Заранее спасибо за ответы!

665243908a86f166450682.png
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
Geleoss
@Geleoss
Любитель таблиц
Вопрос не такой легкий, как может показаться на первый взгляд.
И причина этого в том, что фильтр при его создании берёт сразу значение из ячейки. И даже если значение в ячейке изменится - фильтр автоматически ничего не обновит. Но выход есть - использовать скрипт, который пересоздаёт фильтр когда будет изменяться (редактироваться) значение в ячейке.
ПРИМЕР
66530358a4b51975443760.png
Формула для фильтра: =OR($F$1="";A2=$F$1)
A2=$F$1 - основа фильтра
OR($F$1=""; ..) - сделано для того, чтобы фильтр можно "отключить" просто удалив значение из ячейки F1.

А теперь изюминка - скрипт.
function onEdit(e) {
  sheet = e.range.getSheet();
  if (sheet.getName() == "Здесь должно быть имя страницы" && e.range.getA1Notation() == "F1") {
    let filter = sheet.getFilter();
    let filterCriteria = filter.getColumnFilterCriteria(1).copy().build();
    filter.setColumnFilterCriteria(1, filterCriteria);
  }
}


PS. При необходимости можете создать триггер onEdit, а функицию переименовать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы