3

Я пытаюсь создать подгруппы строк в строках электронной таблицы, чтобы можно было сортировать данные, но строки в любой конкретной подгруппе остаются вместе. Это, наверное, проще всего показать с помощью картинки.

Сортировка строк в подгруппах по данным столбцов

В идеале я хотел бы найти способ сделать это в электронных таблицах Google, но я бы хотел поспорить, что это невозможно, поэтому приветствуются решения для любой программы работы с электронными таблицами.

3 ответа3

1

Самый простой способ - добавить столбец, кодирующий группировку (например, CategoryNum). Затем отсортируйте этот столбец первым, а второй - ваш Criteria .

сортировка изображения

Если вы поместите свой код категории в строки подзаголовка (Category 1), порядок всей таблицы должен быть сохранен.

(Примечание: для процессов данных, которые вы пытаетесь автоматизировать, лучше в любом случае организовать данные таким образом, а не разбивать их визуально способами, затрудняющими анализ.)

1

Хорошо, в таблицах Google:

  1. Я создал первоначальную электронную таблицу, которая должна выглядеть следующим образом (принимая некоторые художественные свободы). Нижняя половина еще не отсортирована и, как таковая, равна верхней половине:

    Таблица - не отсортировано

  2. Выберите три столбца, которые составляют категорию 1, затем перейдите в Data > Sort range .

    Диапазон сортировки

  3. Оттуда просто измените предустановленный столбец (должен быть A) на C (иначе, 2-й критерий).

    Диалог диапазона сортировки

  4. Эта часть таблицы теперь отсортирована по 2-м критериям. Просто повторите ко 2-й категории.

    Конечный результат

  5. Конечным результатом должна быть ваша таблица.

ОБНОВИТЬ:

Основываясь на предложении @beroe, я смог придумать немного больше.

Прежде всего, вам нужно добавить дополнительный столбец, который назначает отдельные категории для каждого из элементов. Хотя это возможно при текущих настройках данных, я считаю правильным иметь такую таблицу:

Таблица - Несортированные данные

Обратите внимание, что я еще не отсортировал данные по вашим 2-м критериям. Также обратите внимание, что рядом со вторым критерием теперь находится столбец, который содержит соответствующую категорию каждого элемента.

Выберите все данные, затем перейдите в Data > Sort Range . Сначала выполните сортировку по столбцу D (столбец с категориями), после нажатия добавьте еще один столбец сортировки, а затем добавьте столбец, соответствующий второму критерию (столбец C).

Почему это работает, потому что программное обеспечение для электронных таблиц идеи имеет преимущество. Таким образом, Google попытается сначала отсортировать по столбцу D. После этого все оставшиеся данные будут отсортированы по столбцу C. Все оставшиеся данные уже отсортированы.

Обратите внимание, что порядок, в котором я разместил столбцы, таков по причине, указанной выше. Если вы попытаетесь поместить столбец C в столбец D, вы не получите желаемого результата.

Диапазон сортировки - несколько столбцов

Конечный результат примерно такой:

Конечный результат

В конечном счете, добавление столбца с информацией об элементе является хорошим решением для разработки электронных таблиц (если что-то подобное существует).

В заключение отметим, что Google Spreadsheet по умолчанию поддерживает JavaScript (т. Е. Является эквивалентом Macros for Excel). Доступ к нему можно получить через Tools > Script Editor . Тем не менее, я не знаю, как писать JavaScript. В конечном счете, если вам нужно что-то более сложное, вы можете прибегнуть к этому.

0

Сначала создайте свои именованные диапазоны, а затем адаптируйте их

Sub SortBySelectedCellColumn()
Dim cell As String
Dim srt As Integer
Dim nm As Name
 cell = ActiveCell.Address
 srt = ActiveCell.Column
For Each nm In ThisWorkbook.Names
   Range(nm).Select
   Selection.Sort _
    Key1:=Worksheets("Sheet1").Columns(srt), _
    Header:=xlGuess
Next
  Range(cell).Select
End Sub

Выберите ячейку в столбце, по которому вы хотите отсортировать

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .