Используйте интерфейс GSheet для сортировки данных, сгенерированных с помощью ArrayFormula

#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
  

Ссылка

Формула запроса