User-MTU Пользователь Сообщений: 17 |
Сделал табличку. В результате работы создается список. Итоги сортируются встроенными средствами Excel. Если были внесены изменения, то итоги необходимо отсортировать повторно. Но возникла проблема — при сортировке портятся формулы в тех ячейках строк, которые участвовали в сортировке. Если вместо адресов ячеек стоят числа то порча не происходит. Но использовать числа нельзя, надо чтобы были адреса ячеек, так как числа меняются из-за внесенных результатов. Файлик приложен. В нем есть масса скрытых строк и столбцов, но они роли не играют — в них порча не происходит, они используются для облегчения ввода данных. |
VDM Пользователь Сообщений: 779 |
В ячейках столбца «BC» попробуйте заменить «=BD29» на «=$BD$29» |
User-MTU Пользователь Сообщений: 17 |
Не, не помогает. Я вот пытаюсь понять, думается что проблема в рассчете среднего арифметического вкупе с сортировкой. Такое ощущение, что после каждого шага сортировки, что-то пересчитывается со средним арифметическим не так, что приводит к затыку… |
vikttur Пользователь Сообщений: 47199 |
Файл не смотрел — ну не хочется в большой залезать, боюсь утонуть в лишнем мусоре |
VDM Пользователь Сообщений: 779 |
ну, да это я проглядел … здесь везде тоже конечно поменяйте =СРЗНАЧ(AZ31:AZ51) на =СРЗНАЧ($AZ$31:$AZ$51) и вот сюда тоже загляните: http://www.planetaexcel.ru/tip.php?aid=236 |
User-MTU Пользователь Сообщений: 17 |
Округление нормально работает, столбцы на сортировку подхватывает все. Спасибо за подсказку VDM |
User-MTU Пользователь Сообщений: 17 |
Ой, пока ответ сочинял, Вы уже подправили |
ikki Пользователь Сообщений: 9709 |
#8 10.02.2012 22:46:11 vikttur, нет. имхо: в кач-ве диапазона функции попробовать указать нечто «сортировоутойчивое», например ИНДЕКС(AZ:AZ;31):ИНДЕКС(AZ:AZ;51) фрилансер Excel, VBA — контакты в профиле |
При сортировке сбиваются формулы. |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Если список ячеек имеет несколько формул или связан с другими ячейками на том же листе, связанные данные будут изменены при сортировке ячеек, как показано ниже. В этой статье я расскажу о методах сортировки связанных данных и хранения формул в Excel.
Сортируйте связанные данные и сохраняйте формулы с помощью ярлыков
Сортируйте связанные данные и сохраняйте формулы с помощью Kutools for Excel
Сортируйте связанные данные и сохраняйте формулы с помощью ярлыков
Чтобы отсортировать связанные данные и сохранить формулы без изменений, вы можете изменить ссылки в формулах на абсолютные ссылки, а затем отсортировать данные. Таким образом, данные сохранят формулы, даже если их порядок изменится.
Выберите ячейку формулы, выберите формулу в строке формул и нажмите F4 Клавиша изменения ссылки на абсолютную ссылку.
Функции: Если в одной ячейке несколько ссылок, вам нужно изменить ссылки одну за другой, выбрав и нажав F4 в строке формул.
Затем поочередно измените ссылки в других ячейках формулы на абсолютные.
Теперь формулы сохраняются при сортировке.
Сортируйте связанные данные и сохраняйте формулы с помощью Kutools for Excel
Изменение ссылок по очереди занимает много времени, но с Преобразовать ссылки полезность в Kutools for Excel, вы можете быстро изменить все ссылки в диапазоне абсолютных ссылок по мере необходимости.
После установки Kutools for Excel, пожалуйста, сделайте следующее:(Бесплатная загрузка Kutools for Excel Сейчас!)
1. Выберите ячейки, ссылку на которые вы хотите изменить, нажмите Кутулс > Подробнее (в группе Формула) > Преобразовать ссылки.
2. в Преобразование ссылок на формулы диалог, проверьте К абсолютному вариант. Смотрите скриншот:
3. Нажмите Ok. Затем весь выбор был преобразован в абсолютные ссылки.
4. Затем вы можете отсортировать данные.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (5)
Оценок пока нет. Оцените первым!
Я попытался найти ответ в Google, но не смог найти никаких ответов, поэтому я пытаюсь здесь.
Таблица ниже содержит значения в столбцах A и B, формулу, отформатированную как текст в столбце C, и ту же формулу, отформатированную как реальная формула ( =A1+B1 и т. Д.), Которая отображает результат в столбце D.
Если я затем сортирую таблицу по A в порядке убывания, чтобы она выглядела следующим образом:
Пересчитываются ли формулы при сортировке? Работа с небольшими таблицами или листами, такими как эта, на самом деле не имеет значения, но если файл содержит более пары тысяч строк, а сложные формулы пересчет должен быть довольно медленным. Является ли хорошей идеей скопировать D и вставить в качестве значений в D перед сортировкой, если я закончу редактирование формулы?
2 ответа
Расчет, похоже, срабатывает при сортировке.
Вы можете указать значения копирования / вставки, но другой способ обойти это — включить ручной расчет. Вы можете сделать это по адресу:
Файл -> Параметры -> Формулы -> Расчет вручную
Таким образом, вы можете сами выбрать, когда рассчитывать формулы, нажав F9. Я бы не оставлял это на неопределенное время, так как это может дать неправильное представление о данных, но при манипулировании данными эта функция может пригодиться.
Да, если я использую инструмент Volatile Formulas от Charles Williams, 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) будет возвращать несколько значений: , т.е. число 74 находится в строках 2 и 8.
С помощью функции НАИБОЛЬШИЙ() сначала выводится 2, затем 8 (в разных строках).
Эта формула более наглядна, чем рассмотренная выше в начале статьи, но требует наличия дополнительного столбца.
Задача2 (Сортировка таблицы по текстовому столбцу)
Отсортируем строки таблицы по содержимому Текстового столбца (по Фруктам).
Примечание : Про сортировку списка текстовых значений можно прочитать в статье Сортированный список в MS EXCEL (ТЕКСТовые значения)
Как и в предыдущей задаче предположим, что в столбце, по которому ведется сортировка имеются повторы (названия Фруктов повторяются).
Для сортировки таблицы придется создать 2 служебных столбца (D и E).
Эта формула является аналогом ранга для текстовых значений (позиция значения относительно других значений списка). Текстовому значению, расположенному ниже по алфавиту, соответствует больший «ранг». Например, значению Яблоки соответствует максимальный «ранг» 7 (с учетом повторов).
В столбце E введем обычную формулу:
Эта формула учитывает повторы текстовых значений и корректирует «ранг». Теперь разным значениям Яблоки соответствуют разные «ранги» — 7 и 8. Это позволяет вывести список сортированных значений. Для этого используйте формулу (столбец G):
Аналогичная формула выведет соответствующий объем продаж (столбец Н).
Задача 2.1 (Двухуровневая сортировка)
Теперь снова отсортируем исходную таблицу по Объему продаж. Но теперь для повторяющихся значений (в столбце А три значения 74), соответствующие значения выведем в алфавитном порядке.
Почему при сортировке в excel меняется формула
Да, здорово. Можете объяснить принцип действия этой формулы, что бы самому её писать, т.е. как происходит процесс?
ps
Странно, почему при вырезании ячеек (в которых находятся значения) и переносе в другую ячейку, формула динамически меняет адреса ячеек и ни когда их не забывает, так сделано по умолчанию, а сделать тоже самое динамическое изменение формулы при сортировке религия мелкософта не позволила? Странно.
Да, здорово. Можете объяснить принцип действия этой формулы, что бы самому её писать, т.е. как происходит процесс?
ps
Странно, почему при вырезании ячеек (в которых находятся значения) и переносе в другую ячейку, формула динамически меняет адреса ячеек и ни когда их не забывает, так сделано по умолчанию, а сделать тоже самое динамическое изменение формулы при сортировке религия мелкософта не позволила? Странно. lema
Да, здорово. Можете объяснить принцип действия этой формулы, что бы самому её писать, т.е. как происходит процесс?
ps
Странно, почему при вырезании ячеек (в которых находятся значения) и переносе в другую ячейку, формула динамически меняет адреса ячеек и ни когда их не забывает, так сделано по умолчанию, а сделать тоже самое динамическое изменение формулы при сортировке религия мелкософта не позволила? Странно. Автор — lema
Дата добавления — 07.09.2016 в 17:42
0 / 0 / 0 Регистрация: 11.06.2015 Сообщений: 2 |
|
1 |
|
Слетает формула при сортировке11.06.2015, 09:58. Показов 8637. Ответов 3
Добрый день! Есть отчет, в нем список проектов с определенными данными (проекты и данные будут меняться каждую неделю, поэтому список не фиксированный). Необходимо было добавить 2 новых столбца, а именно: Суммарная оценка проекта = Типизация+Срочность+Стратегичность и Модуль максимального отклонения=модуль отклонения по срокам+модуль отклонения по трудозатратам. (Столбцы добавила, формула для них прописала на втором листе). С уважением.
0 |
Чорумфанин 346 / 346 / 320 Регистрация: 06.03.2014 Сообщений: 899 |
|
11.06.2015, 11:44 |
2 |
Как вариант: Если это надо делать часто, то можно сделать небольшой макрос, который будет это делать
1 |
5942 / 3154 / 698 Регистрация: 23.11.2010 Сообщений: 10,524 |
|
11.06.2015, 13:27 |
3 |
Сообщение было отмечено LuxMi как решение РешениеПочему сразу на листе не считаете?
1 |
0 / 0 / 0 Регистрация: 11.06.2015 Сообщений: 2 |
|
11.06.2015, 13:42 [ТС] |
4 |
Благодарю! Я просто не могла придумать как по-другому посчитать суммарную оценку, нашла только такой способ, поэтому и счет модуля вынесла на др. страницу. Теперь все отлично работает, еще раз спасибо! Вопрос закрыт.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
11.06.2015, 13:42 |
4 |