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

 

User-MTU

Пользователь

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

Сделал табличку. В результате работы создается список. Итоги сортируются встроенными средствами Excel. Если были внесены изменения, то итоги необходимо отсортировать повторно. Но возникла проблема — при сортировке портятся формулы в тех ячейках строк, которые участвовали в сортировке. Если вместо адресов ячеек стоят числа то порча не происходит. Но использовать числа нельзя, надо чтобы были адреса ячеек, так как числа меняются из-за внесенных результатов.  
Как решить проблему? или из-за чего это происходит? Пробовали на 2 разных компьютерах — проблема есть.  

  Файлик приложен. В нем есть масса скрытых строк и столбцов, но они роли не играют — в них порча не происходит, они используются для облегчения ввода данных.  
Что деламем в файлике:  
Первоначальная сортировка уже проведена. К примеру меняем значение в ячейке AE49 с 23 на 456. Рассчет проходит нормально.Теперь надо провести сортировку по столбцу AZ с большего к меньшему. При сортировке почему то изменяется содержимое ячеек в столбце BA. Итог — неверный рассчет всего остального… Можно попробовать сортировать по другому столбцу — например по процентному — итог тот же — ломаются адреса ячеек в столбцах, правее столбца AZ. Но почему так?

 

VDM

Пользователь

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

В ячейках столбца «BC» попробуйте заменить «=BD29» на «=$BD$29»

 

User-MTU

Пользователь

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

Не, не помогает.  

  Я вот пытаюсь понять, думается что проблема в рассчете среднего арифметического вкупе с сортировкой. Такое ощущение, что после каждого шага сортировки, что-то пересчитывается со средним арифметическим не так, что приводит к затыку…

 

vikttur

Пользователь

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

Файл не смотрел — ну не хочется в большой залезать, боюсь утонуть в лишнем мусоре :)  
Округление?  
Сортировка не всех столбцов?  
В формулах функции типа СТРОКА()?

 

VDM

Пользователь

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

ну, да это я проглядел … здесь везде тоже конечно поменяйте =СРЗНАЧ(AZ31:AZ51) на =СРЗНАЧ($AZ$31:$AZ$51) и вот сюда тоже загляните: 

http://www.planetaexcel.ru/tip.php?aid=236

 

User-MTU

Пользователь

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

Округление нормально работает, столбцы на сортировку подхватывает все.  

  Спасибо за подсказку VDM  
Добавли в адреса ячеек символ $ правда не в столбце ВС а в столбце ВА. И оно при сортировке перестало самовольно менять адреса ячеек в формулах.    
Все заработало, спасибо !!

 

User-MTU

Пользователь

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

Ой, пока ответ сочинял, Вы уже подправили :)  
Символ $ указывает на запрет подмены адреса ячейки?

 

ikki

Пользователь

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

#8

10.02.2012 22:46:11

vikttur, нет.  
в каждой строке стоит формула = СРЗНАЧ(AZ31:AZ51), причем именно строки с 31-й по 51-ю и сортируются.  

  имхо: в кач-ве диапазона функции попробовать указать нечто «сортировоутойчивое», например ИНДЕКС(AZ:AZ;31):ИНДЕКС(AZ:AZ;51)

фрилансер Excel, VBA — контакты в профиле
«Совершенствоваться не обязательно. Выживание — дело добровольное.» Э.Деминг

При сортировке сбиваются формулы.

lema

Дата: Среда, 07.09.2016, 11:11 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 5


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Суть проблемы проста. При сортировке формулы не меняют динамически адреса тех ячеек которые в ходе сортировки смещаются и оказываются под другими адресами.
Искал решение, но везде натыкался на многосложные проблемы с сортировкой, у меня вроде проще некуда.
Прилагаю пример, сортируете столбец B от «А до Я» и значения формул в желтых ячейках изменяются, а мне нужно, что бы не менялись и привязка оставалась к тем ячейкам к которым была изначально.

К сообщению приложен файл:

6411903.xls
(25.5 Kb)

 

Ответить

pabchek

Дата: Среда, 07.09.2016, 11:31 |
Сообщение № 2

Группа: Проверенные

Ранг: Ветеран

Сообщений: 931


Репутация:

218

±

Замечаний:
0% ±


Excel 2007

Здравствуйте!
Сводной пойдет?

К сообщению приложен файл:

6060464.xls
(32.0 Kb)


«Учиться, учиться и еще раз учиться!»
WM: R399923528092

 

Ответить

lema

Дата: Среда, 07.09.2016, 12:22 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 5


Репутация:

0

±

Замечаний:
0% ±


Excel 2010


Я даже не понимаю что это и как этим пользоваться.

 

Ответить

koyaanisqatsi

Дата: Среда, 07.09.2016, 14:34 |
Сообщение № 4

Группа: Проверенные

Ранг: Ветеран

Сообщений: 712


Репутация:

15

±

Замечаний:
0% ±


Excel 2010

lema, а как вы хотите сортировать столбец в котором не однородные данные, а данные перемешаны с вычислениями этих же самих данных ?

 

Ответить

Szekerfehesvar

Дата: Среда, 07.09.2016, 16:27 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 29


Репутация:

6

±

Замечаний:
20% ±


Excel 2013

lema, попробуйте формулу ниже:

Код

=ИНДЕКС(B:B;ПОИСКПОЗ(A2+1;A:A;0);1)+ИНДЕКС(B:B;ПОИСКПОЗ(A2+2;A:A;0);1)

прикрепил файл с Вашим примером и данной формулой — при любой сортировке этого примера работает корректно

К сообщению приложен файл:

1198934.xls
(25.5 Kb)

Сообщение отредактировал PelenaСреда, 07.09.2016, 17:03

 

Ответить

lema

Дата: Среда, 07.09.2016, 17:42 |
Сообщение № 6

Группа: Пользователи

Ранг: Прохожий

Сообщений: 5


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

прикрепил файл с Вашим примером и данной формулой — при любой сортировке этого примера работает корректно

Да, здорово. Можете объяснить принцип действия этой формулы, что бы самому её писать, т.е. как происходит процесс?

ps
Странно, почему при вырезании ячеек (в которых находятся значения) и переносе в другую ячейку, формула динамически меняет адреса ячеек и ни когда их не забывает, так сделано по умолчанию, а сделать тоже самое динамическое изменение формулы при сортировке религия мелкософта не позволила? Странно.

 

Ответить

buchlotnik

Дата: Среда, 07.09.2016, 19:24 |
Сообщение № 7

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

Цитата

при сортировке религия мелкософта не позволила?

вообще-то это вам религия не позволила нормально организовать данные. Вы всерьёз считаете, что при сортировке Excel тягаяет ячейки так же как при вырезании и вставке? Страшно подумать сколько времени занимало бы данное мероприятие %)

Сообщение отредактировал buchlotnikСреда, 07.09.2016, 19:25

 

Ответить

Szekerfehesvar

Дата: Четверг, 08.09.2016, 09:22 |
Сообщение № 8

Группа: Пользователи

Ранг: Новичок

Сообщений: 29


Репутация:

6

±

Замечаний:
20% ±


Excel 2013

по формуле — ИНДЕКС() выискивает ячейку по ее адресу в диапазоне, что как раз подходит под Вашу задачу
ПОИСКПОЗ() — ищет в диапазоне ячейку по ее значению
в итоге получается
=ИНДЕКС( вводим диапазон, где находятся искомые данные — то есть столбец В в вашем случае; далее ищем строку, с которой нужно взять значение — ПОИСКПОЗ(значение, которое ищем — в нашем случае это № из столбца А с прибавленной единицей или двойкой, так как именно на столько отличается порядковый номер у слагаемых;указываем диапазон, где искать наш порядковый номер — столбец А; указываем 0 — это даст нам поиск точных совпадений);указываем 1, так как в нашем диапазоне только 1 столбец)

 

Ответить

lema

Дата: Четверг, 08.09.2016, 12:46 |
Сообщение № 9

Группа: Пользователи

Ранг: Прохожий

Сообщений: 5


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

вообще-то это вам религия не позволила нормально организовать данные.

Интересно, если бы при вырезании тоже отсутствовала динамическая смена адресов, вы бы также говорили — тебе религия не позволяет нормально организовать данные!
А можно узнать, что ненормального в организации данных?
Как по вашему должны выглядеть нормально организованные данные?
Можете показать на примере, так правильно организованны данные, что при сортировке которых, примитивные и простые формулы (такие как сложить ячейки, вычесть, разделить и.д. ) не сбиваются без использования многосложных формул, макросов и т.д. Т.е. результат получен в чистом виде благодаря «нормальной» организации и только ей.
Спасибо.

Цитата

Вы всерьёз считаете, что при сортировке Excel тягаяет ячейки так же как при вырезании и вставке?

Нет. Зачем мне так считать? Плевать по какому принципу происходит смена адреса при вырезании и при сортировке. Не вижу преграды для того, что бы программа при сортировке зная что ячейка А1 после сортирвки становится например ячейкой А7, поменять её автоматически в формуле на А7, если это же было возможно сделать при вырезании и не только при вырезании, а даже при вставке новых строк и столбцов.

Цитата

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

Действительно страшно! Думать вообще страшно.

значение, которое ищем — в нашем случае это № из столбца А с прибавленной единицей или двойкой, так как именно на столько отличается порядковый номер у слагаемых

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

Сообщение отредактировал lemaЧетверг, 08.09.2016, 14:48

 

Ответить

buchlotnik

Дата: Четверг, 08.09.2016, 15:40 |
Сообщение № 10

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

lema, из всего вашего эмоционального поста главное

Цитата

Плевать по какому принципу

Так вот, на дружественном форуме есть человек, у которого в подписи замечательная фраза

Цитата

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

. Майкрософту хватило мозгов В ПРИНЦИПЕ сделать Excel и они-то понимают разницу между перемещением диапазона и сортировкой. так напишите быстрый алгоритм и место в Майкрософте, а то и в Гугле вам гарантировано!

Цитата

Думать вообще страшно.

Жаль, что вам думать страшно. Только вот если бы вашу «хотелку» реализовали, сортировка занимала бы не долю секунды, а минуты — и вы бы пришли сюда с чем-то вроде «ребята, почему у мелкомягких сортировка минуты (часы) занимает? — у меня ж тут простые числовые данные»

Цитата

Можете показать на примере, так правильно организованные данные при сортировке которых, примитивные и простые формулы … не сбиваются

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

Цитата

результат получен в чистом виде благодаря «нормальной» организации

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

Сообщение отредактировал buchlotnikЧетверг, 08.09.2016, 15:55

 

Ответить

Manyasha

Дата: Четверг, 08.09.2016, 16:21 |
Сообщение № 11

Группа: Модераторы

Ранг: Старожил

Сообщений: 2198


Репутация:

898

±

Замечаний:
0% ±


Excel 2010, 2016

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

и данные более реальные бы посмотреть. Может кто-то предложит более удобную структуру.


ЯД: 410013299366744 WM: R193491431804

 

Ответить

Szekerfehesvar

Дата: Четверг, 08.09.2016, 17:08 |
Сообщение № 12

Группа: Пользователи

Ранг: Новичок

Сообщений: 29


Репутация:

6

±

Замечаний:
20% ±


Excel 2013

в общем с соседними столбцами дружить ни как нельзя.

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

 

Ответить

lema

Дата: Воскресенье, 11.09.2016, 11:47 |
Сообщение № 13

Группа: Пользователи

Ранг: Прохожий

Сообщений: 5


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Лучше уж тогда скиньте файл

Смысл следующий, есть строка с данными, она означает лист с контактами. Разберём на примере последнего (строка — 165):
Поступает лист с контактами, записываются данные касаемо этого листа, такие как дата его приёма, дата выдачи и т.д.
В ячейке F165 количество контактов на листе, в ячейке R165 пишется фамилия работника которому выдан лист, но бывает так, что лист делиться на 3 или 4 примерно равные части, и каждая часть раздаётся разным работникам, поэтому лист R165 становиться «комбо». Ни когда заранее не известно будет разбиваться лист или нет. Ниже как видим оранжевым отмечены строки из которых теперь этот лист состоит и естественно данные работника, каждого, который отчитывается по своему листу-кусочку (строка 166,167,168) должны поступать в главный лист (строка 165). Те самые данные которые должны суммироваться они отмечены зелёным, в них как раз находятся формулы. Бывает, что необходимо отсортировать листы по разным столбцам, отсюда и проблема.
Естественно, нужно чтобы процесс разбития был быстрым, не знаю, может каким-то шаблонным копированием формулы с незначительным внесением изменений, но уж точно не написанием вручную здоровенной формулы.

К сообщению приложен файл:

7231289.xls
(96.0 Kb)

Сообщение отредактировал lemaВоскресенье, 11.09.2016, 11:53

 

Ответить

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

Сортируйте связанные данные и сохраняйте формулы с помощью ярлыков

Сортируйте связанные данные и сохраняйте формулы с помощью Kutools for Excelхорошая идея3


Сортируйте связанные данные и сохраняйте формулы с помощью ярлыков

Чтобы отсортировать связанные данные и сохранить формулы без изменений, вы можете изменить ссылки в формулах на абсолютные ссылки, а затем отсортировать данные. Таким образом, данные сохранят формулы, даже если их порядок изменится.

Выберите ячейку формулы, выберите формулу в строке формул и нажмите F4 Клавиша изменения ссылки на абсолютную ссылку.

Функции: Если в одной ячейке несколько ссылок, вам нужно изменить ссылки одну за другой, выбрав и нажав F4 в строке формул.
документ сортировать связанные данные 3

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

Теперь формулы сохраняются при сортировке.


Сортируйте связанные данные и сохраняйте формулы с помощью Kutools for Excel

Изменение ссылок по очереди занимает много времени, но с Преобразовать ссылки полезность в Kutools for Excel, вы можете быстро изменить все ссылки в диапазоне абсолютных ссылок по мере необходимости.

После установки Kutools for Excel, пожалуйста, сделайте следующее:(Бесплатная загрузка Kutools for Excel Сейчас!)

1. Выберите ячейки, ссылку на которые вы хотите изменить, нажмите Кутулс > Подробнее (в группе Формула) > Преобразовать ссылки.
документ сортировать связанные данные 6

2. в Преобразование ссылок на формулы диалог, проверьте К абсолютному вариант. Смотрите скриншот:
документ сортировать связанные данные 7

3. Нажмите Ok. Затем весь выбор был преобразован в абсолютные ссылки.

4. Затем вы можете отсортировать данные.


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка 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

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

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



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

Понравилась статья? Поделить с друзьями:
  • Сортировка в excel с условием если
  • Сортировка в excel понятие
  • Сортировка в excel по цене как
  • Сортировка в excel по содержит
  • Сортировка в excel по совпадению ячеек