У меня есть таблица где столбец A
содержит уникальное значение в каждой ячейке. колонка B
либо пусто, либо содержит число.
| A | B
---+---------+---
1 | Gamma | 1
2 | Echo | 5
3 | Alpha |
4 | Foxtrot | 3
5 | Bravo |
6 | Charlie | 1
7 | Delta |
Я хотел бы отсортировать таблицу так, чтобы строки с непустым значением в B
перед столбцами появляются те, у которых в этом столбце есть пробел. Строки с непустыми значениями в B
также нужно отсортировать по алфавиту по столбцам A
, Порядок сортировки других строк не имеет значения.
Результат должен выглядеть примерно так:
| A | B
---+---------+---
1 | Charlie | 1
2 | Echo | 5
3 | Foxtrot | 3
4 | Gamma | 1
5 | Alpha |
6 | Bravo |
7 | Delta |
На данный момент, пустые ячейки в столбце B
полностью пустые, даже не содержащие формулы, которая оценивается как пустая строка. В будущем это, вероятно, изменится. Я не знаю, повлияет ли это на какие-либо ответы.
Ответы:
Там является на самом деле без скрытия строк, без фильтрации, не замужем решение. Для этого нужно просто добавить формулу условного форматирования в столбец
B
:Выбрать
B2:B8
, убедившись, чтоB2
является активной ячейкой, и добавьте новое правило условного форматирования формулы. Измените цвет шрифта правила на любой другой, кромеAutomatic
и введите следующее в качестве формулы:Обратите внимание, что хотя отображается строка заголовка, она не обязательна. (См. Примечания внизу мой другой ответ для дальнейших деталей.)
Теперь все, что вам нужно сделать, чтобы получить желаемый результат, это двухуровневая сортировка:
B
наFont Color
заказанAutomatic
On Top
A
наValues
заказанA to Z
Тот же эффект может быть достигнут при использовании цвета заливки вместо цвета шрифта для правила условного форматирования и сортировки по
Cell Color
, (Используя цвет шрифта, проще не делать видимых изменений для данных. Я использовал красный, чтобы это было очевидно на скриншоте, но лучший цвет для общего случая - черный.)Обратите внимание, что сортировка может быть доступна либо через
Data
→Sort & Filter
→Sort
меню, ярлык эквивалент Alt + + S или из любой из выпадающих в клетке, когда режим фильтра ( Alt + + T ) включен (при условии, конечно, есть строка заголовка, пустая или нет, так как в противном случае сортировка не может быть гарантированно работать правильно):По сути, сортировка по цвету добавляет функцию группировки при сортировке, аналогичную той, что доступна в SQL.
Эта группировка может быть довольно сложной, включая использование нескольких столбцов для критериев, при этом все же требуется только двухуровневая сортировка. Можно выполнить даже «вложенные» группировки - они просто требуют дополнительных уровней сортировки.
источник
Вот без скрытия строк, без фильтрации, без вспомогательных столбцов, без условного форматирования, два - трехступенчатое решение, о котором я упоминал в комментарии к самоответу ОП. Было подтверждено, что работает в Excel 2007.
Шаг 1
Сортировать по столбцу
B
наValues
заказанSmallest to Largest
:Обратите внимание, что хотя отображается строка заголовка, она не обязательна. (См. Примечания для получения дополнительной информации.)
Шаг 2
Выделите верхнюю часть таблицы до последней строки с непустым значением в столбце.
B
, Для примера таблицы это будетA1:C5
,Лучший способ сделать это для большого количества строк и / или столбцов (но одинаково хорошо подходит для небольших таблиц и избежать прокрутки вручную или с помощью мыши) - это следующая комбинация клавиш, начиная с любой непустой ячейки в
B
колонка:Если справа от таблицы нет других данных, можно использовать эту альтернативную последовательность:
Шаг 3
Сортировать по столбцу
A
наValues
заказанA to Z
:Заметки:
Data
→Sort & Filter
→Sort
пункт меню (или его ярлык-эквивалент Alt + + S ) или из выпадающего списка внутри ячейки, когда включен режим фильтра (если, конечно, есть строка заголовка).1
и не имеет строки заголовка. Только мои два решения (плюс ОП, конечно) будут работать для этого случая. Фактически, эти решения являются единственными, которые будут работать или даже могут работать для строки без заголовка1
таблица, если первая ячейка столбцаB
пустымисточник
B
вместо этого другой столбец, например, справаZZ:ZZ
, В каком случае последовательностьCtrl
+G
;ZZ:ZZ
;Enter
доставит вас туда. (Обратите внимание, что этот случай повлияет на это решение Меньше чем некоторые другие решения.)… ² Чуть больше, чем три под очень необычные обстоятельства.Кажется, что нет способа сделать то, что я хочу строго через сортировку, но вот что работает для меня:
Сортировать строки по столбцу B от малого к большому
Скрыть все строки, которые делают не имеют значения в столбце B
Сортировать строки по столбцу А по алфавиту
источник
B
, Сортировка на шаге (3) будет производиться только на выбранную вложенную таблицу (при условии, что вы сортируете черезData
→Sort & Filter
→Sort
а не из выпадающего списка внутри режима фильтра). Преимущество этого метода в том, что вы не получите скрытых строк. (Это может или не может быть проблемой в вашем конкретном случае.)Одним из решений было бы объединить сортировку и фильтрацию. Лучше всего, если у вас есть заголовки столбцов в первой строке, но они не обязательно нужны.
Это не просто сортировка, как вы просили, она использует фильтр. Но вы можете просто «выбрать» всю таблицу (собственно, включение режима фильтра сделает это за вас), выполнить шаги и вуаля. Также довольно легко «преобразовать» его в макрос. Что касается других решений, это решение не требует, чтобы вы скрывали (или «отменяли») нежелательные строки вручную. Также вам не нужно вводить дополнительную формулу (посредством условного форматирования столбца A или B или путем добавления другого столбца).
Во всяком случае здесь это идет:
Включите фильтр:
выберите любую ячейку в своем списке и включите режим фильтра (на ленте вы найдете ее на вкладке «Данные», она должна называться «Фильтр»). Вы увидите маленький треугольник в первом ряду каждого столбца, который вы используете
(примечание: если у вас нет заголовков столбцов, просто добавьте пустую строку в самом начале и выберите все используемые столбцы вручную, в данном случае A и B, вместо «просто» выбора ячейки в списке)
Переместите строки без значения B в конец списка:
Сортировать колонку А и отключить / удалить фильтр
Это должно дать вам правильный результат, насколько я вас понял. Вам также не нужно будет скрывать какие-либо строки вручную, Excel скроет все строки для вас.
(обратите внимание, что скрытие строк вручную отличается от использования фильтра для «скрытия» их)
источник