Как при использовании QUERY сделать так, чтобы данные перемещались вместе при использовании фильтра?

Я создаю инструмент для видеоигры, в которую играю.

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

Лист 1 - «Выбрать принадлежащий». Он содержит список всех чемпионов, доступных в игре, и включает их атрибуты.

  • Столбец A содержит флажки. Установка флажка указывает, что этот чемпион принадлежит пользователю, и переносит его на Лист 2.

Лист 2 называется «Собственный». Он содержит список чемпионов, отмеченных в пункте «Выбрать принадлежащих» (также называемых чемпионами, которыми владеет пользователь). «Принадлежащий» также включает в себя атрибуты чемпиона, как впервые было показано в разделе «Принадлежность».

  • Помимо тех же атрибутов, «Собственные» содержит 8 дополнительных столбцов. Эти столбцы взяты из столбцов G: N и помечены как «Уровень», «Ранг», «Уровень восхождения» и «Метка (и) команды» («Метка (и) команды» занимает столбцы J: N). Все эти данные представляют собой уникальную информацию и требуют, чтобы пользователь сам вводил информацию в зависимости от своих чемпионов.

Поскольку чемпионов очень много, я хочу, чтобы пользователь мог использовать функцию фильтра в разделе «Собственные», чтобы он мог легко найти нужного чемпиона или отсортировать таблицу по своему усмотрению.

Однако, поскольку я использую функцию QUERY для получения данных из «Выбрать принадлежащие», функция фильтра имеет тенденцию к сбоям. Наиболее очевидная ошибка возникает, когда вы пытаетесь отсортировать А-Я или Я-А; это просто невозможно. Меня это устраивало, и я даже добавил вверху заметку, в которой говорилось, что пользователю следует избегать сортировки по алфавиту.

Все остальное работает правильно до тех пор, пока пользователь не попытается добавить нового чемпиона из «Выбери своего». Когда чемпион добавляется в поле «Собственные», дополнительные уникальные данные в столбцах G: N выходят из строя, потому что они не перемещаются вместе со своими исходными чемпионами.

Пример:

  • Я выбираю своих чемпионов. Эти чемпионы копируются в «Собственные».
  • Я выбираю их относительные данные в столбцах G: N.
  • Через несколько дней я получаю новых чемпионов и помечаю их в поле «Выбери своих», чтобы они добавлялись в «Собственные». Однако, когда я это делаю, чемпионы остаются в том же порядке, что и в «Выбрать владение», а столбцы G: N не перемещаются вместе с их чемпионами, так что теперь эта информация не с тем чемпионом.

Я хочу, чтобы дополнительные данные (G: N) перемещались вместе с их чемпионами, когда таблица редактируется из-за добавления чемпионов. Или, другими словами, я хочу, чтобы эти столбцы оставались связанными с первыми столбцами.

Если есть другой способ добиться всего этого, например, если мне нужно использовать функцию, отличную от QUERY, это нормально!

Пожалуйста, поделитесь любыми возможными решениями. Я бы предпочел не использовать скрипт, но рассмотрю идею, работает ли он.


person Sara York    schedule 24.12.2019    source источник
comment
Мне было бы проще со сценарием   -  person ziganotschka    schedule 24.12.2019
comment
Вы знаете сценарий, который будет работать, или вы просто говорите это в целом?   -  person Sara York    schedule 24.12.2019
comment
Я могу придумать, как написать сценарий, который бы работал. Скрипт будет использовать метод insertRowAfter(afterPosition) для вставки новых чемпионов. Таким образом, дополнительные данные будут перемещены с уже существующими чемпионами. Вы можете указать позицию, в которую новые чемпионы будут вставляться динамически, например по алфавиту.   -  person ziganotschka    schedule 25.12.2019
comment
Если вас интересует это решение, я могу набросать для него рабочий процесс.   -  person ziganotschka    schedule 27.12.2019


Ответы (1)


это распространенная проблема в Google Таблицах, и ее можно решить двумя способами:

  • либо путем введения общего значения (уникальный идентификатор), а затем связывания ручного ввода с запросом и выравнивания его по идентификатору

  • или более простой подход в вашем случае - с использованием временной метки / линейного идентификатора, чтобы каждая новая запись добавлялась внизу, а затем запрос был отсортирован на основе этого порядка.

person player0    schedule 24.12.2019
comment
Я не уверен, что вы имеете в виду под этим. Не могли бы вы уточнить? Обнадеживает то, что вы, кажется, по крайней мере знаете, о чем я говорю! :) Изменить: я знаю, что вы на самом деле имеете в виду под меткой времени. Как вы посоветуете это сделать? (Все еще не уверен, что вы имели в виду под первой пулей) - person Sara York; 24.12.2019
comment
первый пункт в основном таков: webapps.stackexchange.com/q/120338/186471 - person player0; 24.12.2019