Скрипт перемещения строк в Гугл Таблице

Гость4 года в сервисе
Данные заказчика будут вам доступны после подачи заявки
15.04.2021

Копия таблицы, в которую нужно будет установить скрипты:

https://docs.google.com/spreadsheets/d/18Zk8ylj9jEYRiFggxkauihKqXY7R6su0wK-PlaHueEU

В колонке D есть надписи на желтом фоне, (они являются условными разделителями областей таблицы, куда скрипту следует перемещать строки). Есть следующие надписи:

“Содержание заказа”

“Не забрали. Позвонить”

“В обработке”

“Принятые заказы”

“В работе”

“Проблемные / Возвраты / Думают…”

“Узнать наличие”

“Новые заказы”

В колонке P размещен выпадающий список со значениями (обратите внимание, есть пробел перед цифрой и два пробела после):

“ 0 - В работе”

“ 1 - Принят“

“ 2 - Отправлен“

“ 3 - Отказался”

“ 4 - Срочное решение”

“ 5 - Проблемный”

“ 6 - Узнать наличие”

В колонке Q в каждую ячейку следует вставить кнопку, по нажатию на которую и будет запускаться скрипт и переносить данную строку в соответствии с выбранным значением в колонке Р:

“ 0 - В работе” - размещать на три строки выше строки “Проблемные / Возвраты / Думают…”

“ 1 - Принят“ - размещать между “Принятые заказы” и “В работе”, упорядочивать по дате в колонке А, игнорируя время).

“ 2 - Отправлен“ - размещать между “Содержание заказа” и “Не забрали. Позвонить”, упорядочивать по дате в колонке А, игнорируя время.

“ 3 - Отказался” - размещать между “Содержание заказа” и “Не забрали. Позвонить”, упорядочивать по дате в колонке А, игнорируя время (да, слово в слово как и предыдущий пункт; читайте дальше и поймете почему так).

“ 4 - Срочное решение” - размещать сразу под строкой “Проблемные / Возвраты / Думают…”

“ 5 - Проблемный” - размещать сразу над строкой ”Узнать наличие”

“ 6 - Узнать наличие” - перемещать в область между “Узнать наличие” и “Новые заказы”: если содержимое ячейки V начинается с даты в формате dd/mm), упорядочивать по этой дате среди заказов с датой в V;

если V не начинается с даты, размещать сразу над строкой “Новые заказы”.

Если вы не можете реализовать п.6. так, как описано выше, можно сделать упрощенный вариант: - размещать сразу над строкой “Новые заказы”

В ячейке Q1 должна располагаться кнопка, которая запускает проверку всех строк со статусами 0, 1 и 2:

“ 0 - В работе” - если строка находится ниже “Новые заказы”, перемещать на три строки выше строки “Проблемные / Возвраты / Думают…”

“ 1 - Принят“ - если строка находится между “Принятые заказы” и “В работе”, а колонка N содержит только цифры, перемещать в область между “В обработке” и “Принятые заказы”, упорядочивать по дате в колонке А, игнорируя время)

“ 2 - Отправлен“ - если строка находится между “Содержание заказа” и “Не забрали. Позвонить”, а значение в колонке О является датой в формате dd.mm.yyyy и отстает от текущей даты на три и более дней ИЛИ содержит “Переадр” ИЛИ содержит “Отказался” - перемещать строку в область между “Не забрали. Позвонить” и “В обработке”, упорядочивать по дате в колонке А, игнорируя время.

Если расположить кнопку в Q1 не представляется возможным, можно спрятать запуск проверки всех строк со статусами 0, 1 и 2 в меню “Дополнения” ниже “Uchet Zakazov”.

NB1: Крайне желательно, чтобы скрипт именно перетаскивал строку, а не создавал новую строку в нужной области, копировал в нее и удалял изначальную строку (ведь так теряется история ячеек, и не понятно, кому из менеджеров выписывать п***юлей за коряво оформленный заказ).

NB2: Скрипт должен работать только во вкладке с определенным названием (и нужно, чтобы название этой вкладки в настройках скрипта можно было менять).

NB3: Скрипт нужно добавить к уже существующим. А они конфликтуют, если код младше ES5. В общем, нужен на ES5.

NB4: Мне важно выполнить это задание или понять, почему его невозможно выполнить и что следует изменить в тз, чтобы его таки можно было выполнить. За обоснованные внятные объяснения готов заплатить. Так что если есть что сказать - пишите в личку.