#google-sheets #google-sheets-formula #array-formulas
#google-таблицы #google-sheets-формула #массив-формулы
Вопрос:
У меня есть электронная таблица Google (пример), которая имеет
- исходные таблицы (задачи, проекты)
- вычисляемый лист (расширенный проектом), который использует формулы для агрегирования данных с нескольких листов (вычисляет сумму оценок всех задач проекта)
Я хочу, чтобы мои пользователи могли легко сортировать агрегированные данные, используя интерфейс Google (меню данные> Диапазон сортировки). Это всего лишь пример, поэтому нет большого количества данных / столбцов, но в фактической таблице, которую мы использовали, много столбцов, пользователям может потребоваться выполнить сортировку по любому столбцу.
Я видел несколько вопросов SO, связанных с такими проблемами, как сортировка результатов, вычисленных из arrayFormula, и т. Д. Но есть ли решение, совместимое с использованием filter из интерфейса GSheet? Так что кто-то, совершенно не разбирающийся в ЦС формул gsheet, все еще использует лист?
Это нормально, если есть решение, которое включает в себя создание другого листа или использование разных типов формул (запрос вместо arrayFormula и т. Д.), Которые Дают тот же результат.
Комментарии:
1. Вам лучше использовать Google Data Studio для подобных вещей. Вот пример использования ваших данных . Просто скопируйте его и загляните внутрь.
2. Я не думаю, что вы сможете разумно сортировать данные, сгенерированные с помощью формулы, используя стандартные инструменты пользовательского интерфейса. Вы могли бы написать некоторый код с помощью Google App Script, создать пользовательское меню для сортировки… Или просто объедините свои данные, используя скрипт вместо формулы, чтобы были статические значения, которые можно было сортировать.
Ответ №1:
Соображения
Используя пользовательский интерфейс, вы не можете сортировать выходные данные an ARRAYFORMULA
. В результате операции сортировки вы потеряете соответствующую ссылку на ячейку.
Использование запроса
Используя QUERY
формулу, вы можете легко выполнить сортировку по любому столбцу с помощью order by
оператора.
В вашем случае:
=QUERY('project-enhanced'!A1:C4, "select * order by C")
Теперь, поскольку вы не хотите, чтобы ваши пользователи писали какие-либо формулы или код, вы могли бы создать простой пользовательский интерфейс для настройки формулы запроса:
=QUERY('project-enhanced'!A1:C4, "select * order by "amp;B1)
Затем вы можете сделать ячейку B1 полем ввода пользователя, чтобы указать букву столбца, по которой он хочет отсортировать данные.
SORT BY: C
Project ID Start date Sum of estimations
2 11/14/2020 5
1 11/13/2020 30
3 11/16/2020 90