Почему при сортировке в excel меняется формула
Перейти к содержимому

Почему при сортировке в excel меняется формула

  • автор:

Почему при сортировке в excel меняется формула

Argument ‘Topic id’ is null or empty

Сейчас на форуме

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru

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

ООО «Планета Эксел»
ИНН 7735603520
ОГРН 1147746834949
ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРНИП 310633031600071

Сортировка данных в таблице

Сортировка — это один из основных инструментов управления данными. В Excel можно отсортировать таблицу по одному или нескольким столбцам в порядке возрастания или убывания либо выполнить настраиваемую сортировку.

Ваш браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

Сортировка таблицы

  1. Выберите ячейку данных.
  2. На вкладке Главная нажмите кнопку Сортировка и фильтр.

Сортировка и фильтр

Сортировка и фильтр на вкладке

Или выберите> сортироватьданные .

Добавить уровень

  • Выберите один из следующих вариантов:
    • Сортировка по возрастанию — сортирует выбранный столбец в порядке возрастания.
    • Сортировать по убыванию — сортирует выбранный столбец в порядке убывания.
    • Настраиваемая сортировка — сортирует данные в нескольких столбцах на основе различных условий сортировки. Вот как выполнить настраиваемую сортировку:
    • Выберите пункт Настраиваемая сортировка.
    • Нажмите кнопку Добавить уровень.

    Примечание: Чтобы удалить уровень, нажмите кнопку Удалить уровень.

    Дополнительные сведения

    Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.

    Слетает формула при сортировке

    Author24 — интернет-сервис помощи студентам

    Есть отчет, в нем список проектов с определенными данными (проекты и данные будут меняться каждую неделю, поэтому список не фиксированный). Необходимо было добавить 2 новых столбца, а именно: Суммарная оценка проекта = Типизация+Срочность+Стратегичность и Модуль максимального отклонения=модуль отклонения по срокам+модуль отклонения по трудозатратам. (Столбцы добавила, формула для них прописала на втором листе).
    Необходимо, чтобы возможно было сортировать данные по столбцам Суммарная оценка и Модуль макс. отклонения (по убыванию), но после сортировки по любому из них — формула слетает и приходится восстанавливать ее и продливать на весь столбец.
    Прошу помочь устранить данную ошибку, чтобы не приходилось делать восстановление вручную.

    Копия Проблемные проекты.xlsx (40.2 Кб, 25 просмотров)

    Лучшие ответы ( 1 )
    94731 / 64177 / 26122
    Регистрация: 12.04.2006
    Сообщений: 116,782
    Ответы с готовыми решениями:

    Excel слетает формула массива после перезапуска файла
    Здравствуйте, уважаемые форумчане! помогите, пожалуйста решить задачу в Эксель. необходимо.

    Зависает Ексель при сортировке!
    Есть файл екселя там очень много формул и информации когда я начинаю сортировать одну строку он.

    Перенос формулы, при сортировке таблицы.
    Help please. Вопрос таков: как сделать так, что бы ячейка А1 осталась = 1 после сортировки.

    AUTOCAD 2012: при предварительном просмотре при печати слетает приложение
    Система Win 7. Установил AUTOCAD 2012, все работает, но при предварительном просмотре рисунка при.

    Чорумфанин
    346 / 346 / 320
    Регистрация: 06.03.2014
    Сообщений: 899

    Как вариант:
    — перед сортировкой копировать всю таблицу на другой лист при помощи PasteSpecial Values
    — сортируем

    Если это надо делать часто, то можно сделать небольшой макрос, который будет это делать

    6000 / 3195 / 716
    Регистрация: 23.11.2010
    Сообщений: 10,672

    Лучший ответ

    Сообщение было отмечено LuxMi как решение

    Решение

    Почему сразу на листе не считаете?

    Копия Проблемные проекты.xlsx (38.5 Кб, 35 просмотров)

    Регистрация: 11.06.2015
    Сообщений: 2

    Благодарю! Я просто не могла придумать как по-другому посчитать суммарную оценку, нашла только такой способ, поэтому и счет модуля вынесла на др. страницу. Теперь все отлично работает, еще раз спасибо! Вопрос закрыт.

    87844 / 49110 / 22898
    Регистрация: 17.06.2006
    Сообщений: 92,604
    Помогаю со студенческими работами здесь

    Ошибка при сортировке
    При сортировке массива вылетает причем именно на последнем числе сортирую так : for (int.

    Ошибка при сортировке
    Для подключения использую компоненты FireDAC, для отображения — EhLib. При попытке отсортировать.

    Ошибка при сортировке
    нажимаю сортировка и получаю: "project project1.exe raised exception class econverterror with.

    Ошибка при сортировке
    при запросе: procedure TMainForm.DetalDBGridEhTitleBtnClick(Sender: TObject; ACol: Integer; .

    Или воспользуйтесь поиском по форуму:

    Обратный порядок элементов в списке

    Банальная, на первый взгляд, задача, периодически встречающаяся в работе почти любого пользователя Microsoft Excel – расположить элементы списка в обратном порядке. При всей кажущейся простоте, здесь есть свои «фишки» — давайте разберем несколько вариантов ее решения.

    Способ 1. Ручная сортировка по доп.столбцу

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

    reverse1.png reverse2.png

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

    Способ 2. Обратный порядок формулой

    Поскольку формулы в Excel пересчитываются автоматически (если включен ручной режим пересчета), то и сортировка, реализованная формулами, будет происходить «на лету», без какого либо участия пользователя. Нужная нам формула, размещающая элементы списка в обратном порядке может выглядеть так:
    reverse3.pngНедостаток этой формулы в том, что в ней должны жестко задаваться начало и конец списка (ячейки A2 и A9 в нашем случае). Если заранее точно не известно, сколько именно элементов будет в списке, то лучше использовать другой подход: reverse4.pngВ этой формуле номер последней занятой ячейки подсчитывается с помощью функции СЧЁТЗ (COUNTA) , т.е. количество элементов в исходном списке может впоследствии меняться. Минус этого варианта — в исходном списке не должно быть пустых ячеек, т.к. функция СЧЁТЗ тогда неправильно вычислит номер строки последнего элемента. Выходом может стать использование динамического именованного диапазона с автоподстройкой размеров либо хитрой формулы массива: reverse5.png
    Как легко заметить, это вариация первого способа, где диапазон взят «с запасом» сразу до сотой строки и номер строки последней заполненной ячейки задается не жестко, а вычисляется с помощью фрагмента МАКС(($A$2:$A$100<>«»)*СТРОКА($A$2:$A$100)) Каждая ячейка в диапазоне A2:A100 проверяется на заполненность с помощью выражения ($A$2:$A$100<>«»), что даст на выходе массив значений ИСТИНА и ЛОЖЬ. Затем этот массив поэлементно умножается на массив номеров строк, получаемый с помощью функции СТРОКА($A$2:$A$100). Поскольку логическую ИСТИНУ Excel интерпретирует как 1, а ЛОЖЬ – как 0, то после умножения мы получим массив номеров заполненных ячеек. А уже из него функция МАКС (MAX) выбирает самое большое число, т.е. номер последней заполненной строки. И, само-собой, не забудьте после ввода этой формулы нажать не обычный Enter, а сочетание Ctrl+Shift+Enter, чтобы ввести ее как формулу массива.

    Способ 3. Макрос

    Если хочется реализовать перекладывание значений ячеек в обратном порядке без дополнительного столбца с формулами, т.е. прямо в исходных ячейках, то не обойтись без простого макроса.
    Нажмите сочетание Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer) . Вставьте новый пустой модуль через меню Insert — Module и скопируйте туда текст макроса:

    Sub Reverse() Dim arrData(), n As Long arrData = Selection For Each cell In Selection cell.Value = arrData(UBound(arrData) - n, 1) n = n + 1 Next cell End Sub

    Теперь, если выделить столбец-список с данными и запустить наш макрос с помощью сочетания Alt+F8 или команды Разработчик — Макросы (Developer — Macros) , то список развернется в обратном порядке прямо в тех же ячейках, т.е. на месте.

    Ссылки по теме

    • Как создать в Excel динамический именованный диапазон с автоподстройкой размеров
    • Что такое формулы массива и как их использовать
    • Хитрости сортировки в MS Excel
  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *