Svinkovod.ru

Бытовая техника
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Динамическая сортировка таблицы в EXCEL

Динамическая сортировка таблицы в EXCEL

Отсортируем формулами таблицу, состоящую из 2-х столбцов. Сортировку будем производить по одному из столбцов таблицы (решим 2 задачи: сортировка таблицы по числовому и сортировка по текстовому столбцу). Формулы сортировки настроим так, чтобы при добавлении новых данных в исходную таблицу, сортированная таблица изменялась динамически. Это позволит всегда иметь отсортированную таблицу без вмешательства пользователя. Также сделаем двухуровневую сортировку: сначала по числовому, затем (для повторяющихся чисел) — по текстовому столбцу.

Пусть имеется таблица, состоящая из 2-х столбцов. Один столбец – текстовый: Список фруктов ; а второй — числовой Объем Продаж (см. файл примера ).

Задача1 (Сортировка таблицы по числовому столбцу)

Необходимо отсортировать строки таблицы по содержимому числового столбца (по Объему продаж). Предполагается, что пользователь постоянно заполняет строки таблицы, поэтому необходимо написать формулы с учетом добавляемых значений.

Для наглядности величины значений в столбце Объем Продаж выделены с помощью Условного форматирования ( Главная/ Стили/ Условное форматирование/ Гистограммы ). Также желтым выделены повторяющиеся значения.

Примечание : Задача сортировки отдельного столбца (списка) решена в статьях Сортированный список (ТЕКСТовые значения) и Сортированный список (ЧИСЛОвые значения) .

Решение1

Если числовой столбец гарантировано не содержит повторяющихся значений, то задача решается легко:

  • Числовой столбец отсортировать функцией НАИБОЛЬШИЙ() (см. статью Сортированный список (ЧИСЛОвые значения) );
  • Функцией ВПР() или связкой функций ИНДЕКС()+ПОИСКПОЗ() выбрать значения из текстового столбца по соответствующему ему числовому значению.

Однако, в реальных задачах числовой столбец может содержать повторы, а так как функция ВПР() в случае наличия повторов всегда выбирает только первое значение сверху (см. статью Функция ВПР() в MS EXCEL ), то этот подход не годится (названия Фруктов будут выведены неправильно).

Поэтому механизм сортировки придется реализовывать по другому.

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

В столбцах D и E разместим таблицу, которая будет динамически сортироваться,

В ячейке Е7 запишем зубодробительную формулу массива :

Аналогичную формулу можно написать для вывода значений в столбец Фрукты =ИНДЕКС(Фрукты;ОКРУГЛ(. ))

В файле примера , из-за соображений скорости вычислений (см. ниже), однотипная часть формулы, т.е. все, что внутри функции ОКРУГЛ() , вынесена в отдельный столбец J . Поэтому итоговые формулы в сортированной таблице выглядят так: =ИНДЕКС(Фрукты;J7) и =ИНДЕКС(Продажи;J7)

Также, изменив в формуле массива функцию НАИБОЛЬШИЙ() на НАИМЕНЬШИЙ() получим сортировку по возрастанию.

Для наглядности, величины значений в столбце Объем Продаж выделены с помощью Условного форматирования ( Главная/ Стили/ Условное форматирование/ Гистограммы ). Как видно, сортировка работает.

Тестируем

Теперь добавим новую строку в исходную таблицу. В динамически сортируемых таблицах мы должны получить соответствующую сортировку.

1. В ячейку А15 исходной таблицы введите слово Морковь ; 2. В ячейку В15 введите Объем продаж Моркови = 25; 3. После ввода значений, в столбцах D и Е автоматически будет отображена отсортированная по убыванию таблица; 4. В сортированной таблице новая строка будет отображена предпоследней.

Скорость вычислений формул

На «среднем» по производительности компьютере пересчет пары таких формул массива, расположенных в 100 строках, практически не заметен. Для таблиц с 300 строками время пересчета занимает 2-3 секунды, что вызывает неудобства. Либо необходимо отключить автоматический пересчет листа ( Формулы/ Вычисления/ Параметры вычисления ) и периодически нажимать клавишу F9 , либо отказаться от использования формул массива, заменив их столбцами с соответствующими формулами, либо вообще отказаться от динамической сортировки в пользу использования стандартных подходов (см. следующий раздел).

Читайте так же:
Можно ли заменить тиристор симистором

Альтернативные подходы к сортировке таблиц

Отсортируем строки исходной таблицы с помощью стандартного фильтра (выделите заголовки исходной таблицы и нажмите CTRL+SHIFT+L ). В выпадающем списке выберите требуемую сортировку.

Получим идентичный нашему вариант таблицы, но при добавлении в таблицу новых значений придется применять фильтр заново.

Также можно воспользоваться инструментом Сортировка ( Данные/ Сортировка и Фильтр/ Сортировка ). Для этого нужно выделить все значения исходной таблицы не включая заголовок, вызвать инструмент Сортировка, выбрать столбец, по которому требуется сортировать и вариант сортировки.

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

При использовании Таблиц в формате EXCEL2007 мы также не получим динамической сортировки. Новое значение (Картофель) останется последним в исходной таблице (до принудительной сортировки таблицы через фильтр), не смотря на его значение продаж (200).

Какой вариант предпочтительней — как всегда — выбирать разработчику.

Еще одна формула массива (+дополнительный столбец). Задача1.1

Сортировку таблицы можно сделать с помощью другой, более простой формулы массива , но нам понадобится дополнительный (служебный) столбец D (см. файл примера лист Пример2 ):

В столбце F содержится отсортированный столбец В (объем продаж). Формула возвращает позицию значения объема продаж. Например, число 86 находится в 5-й строке таблицы.

Для повторов выражение ЕСЛИ(F8=$B$7:$B$14;СТРОКА($B$7:$B$14)-СТРОКА($B$6);0) будет возвращать несколько значений: <0:2:0:0:0:0:0:8>, т.е. число 74 находится в строках 2 и 8.

С помощью функции НАИБОЛЬШИЙ() сначала выводится 2, затем 8 (в разных строках).

Эта формула более наглядна, чем рассмотренная выше в начале статьи, но требует наличия дополнительного столбца.

Задача2 (Сортировка таблицы по текстовому столбцу)

Отсортируем строки таблицы по содержимому Текстового столбца (по Фруктам).

Примечание : Про сортировку списка текстовых значений можно прочитать в статье Сортированный список в MS EXCEL (ТЕКСТовые значения)

Как и в предыдущей задаче предположим, что в столбце, по которому ведется сортировка имеются повторы (названия Фруктов повторяются).

Для сортировки таблицы придется создать 2 служебных столбца (D и E).

Эта формула является аналогом ранга для текстовых значений (позиция значения относительно других значений списка). Текстовому значению, расположенному ниже по алфавиту, соответствует больший «ранг». Например, значению Яблоки соответствует максимальный «ранг» 7 (с учетом повторов).

В столбце E введем обычную формулу:

Эта формула учитывает повторы текстовых значений и корректирует «ранг». Теперь разным значениям Яблоки соответствуют разные «ранги» — 7 и 8. Это позволяет вывести список сортированных значений. Для этого используйте формулу (столбец G):

Аналогичная формула выведет соответствующий объем продаж (столбец Н).

Задача 2.1 (Двухуровневая сортировка)

Теперь снова отсортируем исходную таблицу по Объему продаж. Но теперь для повторяющихся значений (в столбце А три значения 74), соответствующие значения выведем в алфавитном порядке.

Сортировка данных в Excel по нескольким столбцам

Сортировка данных – это интегральная часть анализа. Сортировка позволяет быстро отобразить данные для их легкого восприятия и понимания. Сортировка в Excel позволяет организовать и быстро находить нужные значения для принятия наиболее эффективных решений. Программа Excel предоставляет широкие возможности для сортировки. Можно выполнять сортировку данных по нескольким условиям и столбцам и даже на основе цвета заливки ячеек.

Как сделать сортировку в Excel по нескольким столбцам

Инструмент сортировки в Excel всегда под рукой. Например, настраиваемую сортировку можно включить на закладке: «ГЛАВНАЯ»-«Редактирование»-«Сортировка и фильтр»-«Настраиваемая сортировка» или на закладке: «ДАННЫЕ»-«Сортировка и фильтр»-«Сортировка».

Читайте так же:
Как в биосе изменить частоту оперативной памяти

Допустим у нас имеется таблица, которую нужно сортировать по нескольким столбцам:

Не отсортированный список.

Чтобы отсортировать диапазон ячеек по нескольким условиям следует:

  1. Перейдите на любую ячейку диапазона, который содержит данные и включите настраиваемую сортировку одним из выше описанных способов. Например, так: ДАННЫЕ.
  2. В появившемся окне активируйте галочкой опцию «Мои данные содержат заголовки». Заголовки.
  3. Откройте выпадающий список «Сортировать по:» и выберите опцию «Дата». Во второй секции оставляем значение выпадающего списка по умолчанию «Значения», а в третьей «Порядок» выбираем опцию «От старых к новым». Дата.
  4. Кликните на кнопке «Добавить уровень». В первой секции выбираем опцию «Город», во второй «Значение», в третьей «От А до Я». Добавить уровень.
  5. Еще раз добавьте новый уровень (новое условие сортировки). На новом уровне в первом выпадающем списке выбираем опцию «Продавец», а остальные оставляем без изменений – «Значение» и «От А до Я». Продавец.
  6. Снова нажмите на кнопку «Добавить уровень». В первой секции указываем «Сумма», вторая секция – без изменений, а в секции «Порядок» должно быть значение «По возрастанию». И нажите ОК.

Список отсортирован по 4 условиям:

  1. Самая старая дата – 20.07.2017.
  2. В этой дате название города в алфавитном порядке – Екатеринбург.
  3. Далее в этой дате в этом городе первый продавец по алфавиту – Луналика.
  4. Наименьшая сумма продаж Луналики в городе Екатеринбург за 20.07.2017 – 47 817,00₽.

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

Стрелки.

Благодаря им можно упорядочить порядок выполнения условий в нижней области уровней. Порядок положений уровней существенно влияет на конечный результат сортировки по нескольким условиям. Если условия мало чем отличаются между собой можно воспользоваться кнопкой «Копировать уровень». В результате под активным (выделенным) уровнем создается новый с такими же параметрами критериев, где пользователю остается лишь внести небольшие корректировки.

В третьей секции «Порядок» пользователь определяет тип сортировки значений в области одного столбца. Стоит заметить, что Excel автоматически подставляет опции к формату значений, находящихся в столбце. Например, для дат порядок сортировки будет «От старых к новым» или наоборот, а для чисел – «По возрастанию». В связи с этим упорядочиться условия в соответствии с типом исходных значений. Но что если в одном столбце несколько типов значений (например, текст и числа)? Тогда порядок сортировки будет выполняться по тем типам которых больше в данном столбце.

Внимание! Каждый раз при вызове инструмента «Настраиваемая сортировка» следует обращать внимание включена или отключена опция «Мои данные содержат заголовки» (в правом верхнем углу диалогового окна инструмента). Если заголовков на самом деле нет, а данная опция включена это негативно отразиться на правильности сортировки данных, так как значения в первой строке не примут участия и не будут учитываться. Программа воспримет такие значения за названия заголовков.

Другие способы сортировки списков в Excel

Чтобы сортировать список данных, можно его заменить на таблицу. Таким образом сортировка может быть выполнена с помощью выпадающего меню появившихся в заголовках столбцов таблицы. Для этого:

  1. Перейдите курсором на любую ячейку в область данных и выберите инструмент: «ВСТАВКА»-«Таблица» или нажмите комбинацию горячих клавиш CTRL+T. Вставка таблицы.
  2. В появившемся окне «Создание таблицы» автоматически заполниться поле ввода ссылкой на диапазон ячеек. При необходимости измените его на свой адрес. Если же после вызова диалогового окна поле ввода «Укажите расположения данных таблицы:» оказалось пустым, то заполните его ссылкой на необходимый диапазон. Ссылка на диапазон.
  3. Активируйте галочкой опцию «Таблица с заголовками» и нажмите на кнопку ОК.
Читайте так же:
Как в ворде сделать сложение столбиком

Список преобразован в таблицу Excel.

Полезный совет! Выпадающие списки меню автофильтра, имеют такие же опции сортировки по возрастанию и убыванию:

Автофильтр.

Можно не создавать таблицу а просто перейти курсором в любую ячейку списка данных и включить автофильтр: «ДАННЫЕ»-«Сортировка и фильтр»-«Фильтр».

Excel: Как управлять столбцами (руководство для начинающих)

Итак, у вас есть электронная таблица Excel с множеством данных, и теперь вам нужно добавить столбцы в середине таблицы, переместить либо скрыть некоторые столбцы, либо изменить ширину некоторых столбцов. Как это сделать?

Ниже перечислены некоторые основные операции Excel для столбцов, которые облегчат вам работу с данными.

Как добавить столбцы в Excel

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

Как скрыть или показать столбцы в Excel

Если вы работаете с большой таблицей, полезно бывает скрыть столбцы, чтобы упростить просмотр информации, которую хотите проанализировать.

Выберите столбец, который нужно скрыть. Затем щелкните правой кнопкой мыши по столбцу и выберите Скрыть. Вы также можете выбрать несколько столбцов для скрытия,

зажав клавиши Shift (выделение смежных столбцов) и Ctrl (выделение несмежных столбцов).

О скрытии столбцов подскажет тонкая двойная линия, в которой находился столбец, и пропуск букв в заголовках столбцов. В примере ниже спрятан столбец B, о чем говорят заголовки соседних столбцов A и B.

02a-Hidden-column1

Чтобы отобразить столбец в Excel, нажмите на тонкую двойную линию, чтобы выбрать столбец. Затем щелкните правой кнопкой мыши на выбранной двойной линии и выберите Показать.

02b-Unhide-column1

Как перемещать или копировать столбцы в Excel

Существует два способа перемещения или копирования столбца. Вы можете перетащить столбец или использовать команды Вырезать/Копировать на ленте или в контекстном меню, доступном через правую кнопку мыши.

Использование функции drag-and-drop

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

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

Чтобы скопировать столбец, используйте тот же метод, но при этом зажмите клавишу Ctrl. Вместо указателя перемещения вы увидите указатель копирования (значок +). Держите клавишу Ctrl нажатой все время, пока вы перетаскиваете столбец в новое место.

03a-Move-and-Copy-pointers1

Если вместо Ctrl удерживать клавишу Shift, то вы можете поменять местами смежные столбцы.

Использование команд Вырезать — Копировать

Если вам неудобно перетаскивать столбец в новое место указанным выше способом, вы можете использовать команду Вырезать или Копировать.

Выберите столбец, который вы хотите переместить или скопировать, нажмите кнопку Вырезать (или кнопку Копировать) в разделе Буфер обмена на вкладке Главная. Вы также можете щелкнуть правой кнопкой мыши по выбранному столбцу и выбрать Вырезать или Копировать.

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

Как изменить ширину столбца в Excel

Стандартная ширина столбца в Excel составляет 8,43 символа. Но фактическая ширина, которую вы видите на экране, меняется в зависимости от ширины шрифта, используемого в вашей книге. У Microsoft есть определенный способ определения ширины столбца в Excel.

Читайте так же:
Можно ли запускать игры с флешки

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

w

Вы можете изменить ширину столбца, введя новый номер для ширины или перетащив границу столбца.

Установите определенную ширину столбца

Чтобы задать ширину столбца определенного значения, выберите столбец, который нужно изменить. Затем щелкните правой кнопкой мыши по столбцу и выберите Ширина столбца.

Вы также можете перейти на вкладку Главная > группа Ячейки > Формат. В разделе Размер ячейки выберите Ширина столбца.

05-Select-Column-Width1

В диалоговом окне Ширина столбца введите число и нажмите ОК.

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

Изменение ширины нескольких столбцов путем перетаскивания границ

Использование мыши для управления шириной столбца может быть более удобно. Вы стразу можете видеть, насколько широким или узким становится столбец.

Чтобы изменить ширину одного столбца, тащите границу с правой стороны заголовка столбца до тех пор, пока столбец не станет нужной ширины.

Чтобы изменить ширину нескольких столбцов, выберите столбцы, ширину которых нужно изменить, а затем перетащите границу как необходимо.

Чтобы изменить ширину всех столбцов одновременно, нажмите кнопку Выбрать все — серый треугольник в леовм верхнем углу сетки. Затем перетащите границу за любой столбец.

Автоматическое изменение ширины столбца под содержимое ячейки

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

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

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

Другой способ автоподбора одного или нескольких выбранных столбцов — перейти во вкладку Главная > Ячейки > Формат. В разделе Размер ячейки выберите Автоподбор ширины столбца.

Эти основы управления столбцами в Excel помогут вам манипулировать ими, чтобы упорядочить данные так, как вам нравится.

Power Query: сортировка по пользовательскому списку

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

Мне нужна та же функциональность в Power Query, но я еще не понял, как это сделать. Я только смог установить порядок сортировки на Order.Ascending или Order.Descending .

Есть ли хороший способ реализовать sort-by-custom-list в Power Query?

Читайте так же:
Горячие клавиши переход между листами в excel

3 ответа

  • Как сделать нечеткий фильтр в Power Query по списку

Я хочу отфильтровать таблицу Power Query в соответствии с другим списком: Таблица фактов такова: Location Name MEL/1F/101 zmel SHA zsha BKK/2F zbkk SGN zsgn И список поиска таков Результат, которого я хочу, таков Location Name SHA zsha BKK/2F zbkk Теперь я использую l=.

Это относится к Сортировка списка по пользовательскому порядку Я приведу аналогичный пример. У меня есть словарь, содержащий пользователей public class UserInfo < public string Name < get; set; >public string Location < get; set; >> данные: private Dictionary<string, UserInfo> users =.

Вторым аргументом Table.Sort также может быть функция: либо функция, которая принимает две строки и возвращает порядок между ними (a la strcmp), либо функция, которая принимает одну строку и возвращает значение, которое должно использоваться для сравнения. Таким образом, одним из способов сортировки значений, которые вы описываете, было бы сказать

Составьте отдельную таблицу с двумя полями: Сезон и SortOrder. Сезон-это ваш текст, а SortOrder будет целым числом, указывающим порядок. Затем присоедините существующую таблицу к этой по сезону, включите столбец SortOrder и выполните сортировку по нему.

У меня недостаточно репутации, чтобы напрямую ответить на вопрос Рона Розенфельда, но вот ответ:

Вы также можете реализовать второй аргумент в виде списка функций. Столбцы будут отсортированы в том порядке, в котором вы их укажете в списке. E.g Столбец, Столбец 1, Столбец 2 в приведенном ниже примере.

Похожие вопросы:

У меня есть проблема в понимании пользовательской группы по и порядка по. Вот такой сценарий, У меня есть объект, содержащий данные. Объекты->объект — >имя; (структура объекта) и я хочу.

Как можно отсортировать пользовательский тип записи по пользовательскому полю в WordPress? Я пытаюсь найти способ Эхо — кодировать пользовательское поле с именем ‘State’ в алфавитном порядке и.

После прочтения: http://pandas.pydata.org/pandas- документы/версия/0.13.1/автоматически/pandas.DataFrame.sort.html Я до сих пор не могу понять, как отсортировать столбец по пользовательскому списку.

Я хочу отфильтровать таблицу Power Query в соответствии с другим списком: Таблица фактов такова: Location Name MEL/1F/101 zmel SHA zsha BKK/2F zbkk SGN zsgn И список поиска таков .

Это относится к Сортировка списка по пользовательскому порядку Я приведу аналогичный пример. У меня есть словарь, содержащий пользователей public class UserInfo < public string Name < get; set; >.

Я использую Power Query для извлечения данных из базы данных SQL в Excel в виде простой таблицы. Цель этого состоит в том, чтобы записать комментарии в ручной столбец (не являющийся частью базы.

В моем плагине у меня есть список сущностей. Я хотел бы применить выражение запроса, которое передается во входных параметрах QueryExpression query = PluginExecutionContext.InputParameters[Query]; к.

Я работаю в Power Query с нормализованными таблицами в Power BI, и мне нужно манипулировать таблицей, чтобы создать отношение many-to-one к другой таблице. Рассмотрим следующий пример. У меня есть.

С помощью этого df я хочу отсортировать столбец на основе пользовательского списка: pd.DataFrame( <'id':[2967, 5335, 13950, 6141, 6169], 'Player': ['Cedric Hunter', 'Maurice Baker' , 'Ratko Varda'.

Я просто хочу изменить порядок строк моего pandas dataframe таким образом, чтобы col1 соответствовал порядку внешних элементов списка в my_order . d = <'col1': ['A', 'B', 'C'], 'col2': [1,2,3]>df =.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector