powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / EXCEL сортировка с сохранением формул
23 сообщений из 23, страница 1 из 1
EXCEL сортировка с сохранением формул
    #39648898
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть вот такая табличка:
ABCDE1ФИОкол-во днейдата нач.дата кон.Сумма2Иванов443132=C2+B21003Петров2=D2+1=C3+B33004Сидоров7=D3+1=C4+B4200

Суть формул в том, что задается кол-во дней, начало срока (привязано к окончанию предыдущего срока + один день) и окончание срока (начало срока + заданное кол-во дней)

Подскажите, как правильно делать сортировку, чтобы привязка формул осталась на месте?
Например, если отсортировать по полю Сумма, то чтобы дата начала Сидорова осталась привязана к дате окончания Петрова.

Сейчас при сортировке все формулы остаются на местах. Если перед номером строки добавлять знак "$" (D$2+1), то так же все формулы остаются на местах.
А нужно, чтобы при сортировке формулы перемещались за своей строкой, как и все остальные данные в этой строке.
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39648902
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сортировать надо копию этой таблицы
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39648913
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimonka , так мне потом работать надо с исходной таблицей и всеми ее формулами. А если я копию создам, то там и формул не будет, а останутся только значения.
Или вы что-то другое имеете в виду?
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39648918
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так если я правильно понимаю, ты хочешь, чтобы сортировка изменила сами формулы (набор операций), а не только аргументы формул.
То есть чтобы формула
=D2+1Стала формулой
=D8или
=D2-5так?

Ну ты много хочешь. Сортировка не будет изменять операции в формулах. Так что нужно подход пересмотреть
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39648920
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет, забудь, это я сам напутал

Просто приведи пример результата
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39648944
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
В моем примере, если сортируем по сумме, то результат должен быть таким:
ABCDE1ФИОкол-во днейдата нач.дата кон.Сумма2Иванов443132=C2+B21003Сидоров7=D3+1=C4+B42004Петров2=D2+1=C3+B3300
т.е. формулы должны переместиться со "своей" строкой
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39648954
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нуб987,
зачем такие сложности? Превратите формулы в значения (выделить диапазон, Ctrl+c, правый клик - Значения) и сортируйте нормально.
При необходимости новый столбец последовательных дат легко создать автозаполнением ("растягиванием").
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39648963
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КазанскийПри необходимости новый столбец последовательных дат легко создать автозаполнением ("растягиванием").У него там не последовательные даты, с разными интервалами.

Может сводную таблицу использовать?
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39648965
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так, конечно, структура самих данных плохая. Позиционно-зависимая
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39649034
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА так, конечно, структура самих данных плохая. Позиционно-зависимая
чего ж тут плохого?

ведь если вставлю строку в свою таблицу, то все будет ок: формулы переползут за своими строками и все будет так же работать.
А вот сортировка портит всю таблицу.
Почему же вставка работает нормально, а сортировка (то же самое перемещение строк) - нет?
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39649141
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987Почему же вставка работает нормально, а сортировка (то же самое перемещение строк) - нет?
Потому что таковы принципы работы формул. Когда Вы вставляете строку, то в имеющуюся структуру таблицы добавляется новый элемент, а для остальных(нижних) идет смещение ссылок на ячейки на 1. Это фиксированная величина сдвига, которая довольно легко реализуется. А когда делаете сортировку - идет мешанина существующих элементов внутри структуры таблицы(ничего не добавляется) - кто-то вверх, кто-то вниз... И отследить взаимосвязь формул в такой мешанине весьма трудозатратно. Если бы это было реализовано - даже 100 строк скорее всего сортировались бы непомерно долго. Но вряд ли кто-то пытался это вообще реализовать, т.к. изначально таблицы рассчитаны на четкую структуру данных и на то, чтобы формулы в одном столбце были одинаковыми(если смотреть на них в стиле R1C1). И если формулы различаются - то возникает ошибка "Несогласующаяся формула", которая показывает, что такая формула может неверно работать в определенных ситуациях. К которым в том числе относится и сортировка таблицы.
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39649501
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist , спасибо за развернутый ответ

с текстом ниже не соглашусь:
The_PristИ отследить взаимосвязь формул в такой мешанине весьма трудозатратно. Если бы это было реализовано - даже 100 строк скорее всего сортировались бы непомерно долго.
трудозатраты не такие уж большие. Какие-нибудь яндекс-карты при просчете оптимального маршрута затрачивают гораздо бОльшие усилия, но с этим справляется даже слабенький телефон (у них появилась функция оффлайн построения маршрута, правда, без пробок). А тут целый настольный компьютер.

Но ваше след.пояснение расставляет точки над Ё:
The_PristНо вряд ли кто-то пытался это вообще реализовать, т.к. изначально таблицы рассчитаны на четкую структуру данных и на то, чтобы формулы в одном столбце были одинаковыми(если смотреть на них в стиле R1C1). И если формулы различаются - то возникает ошибка "Несогласующаяся формула", которая показывает, что такая формула может неверно работать в определенных ситуациях. К которым в том числе относится и сортировка таблицы.
вероятно это действительно связано с "неправильностью" таких данных, поэтому нет реализации.
С другой стороны я же могу взять любую ячейку и перетащить ее в любое место. При этом все формулы, ссылающиеся на нее, так же скорректируются.
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39649511
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987трудозатраты не такие уж большие. Какие-нибудь яндекс-карты
не совсем корректно на мой взгляд сравнивать навигатор и табличный редактор. Вы же не сравниваете лыжи и пилу по эффективности эксплуатации? :) Да и трудозатраты и мощностные ресурсы ПК - разные вещи.
Под трудозатратами имелась ввиду не производительность для реализации задачи, а сама сложность реализации, т.к. при сортировке строки перемешиваются и отследить для каждой ячейки зависимости очень сложно и это потребовало бы скорее работу не с массивом значений, а напрямую с объектами ячеек(как это происходит при упомянутом перетаскивании), что было бы на порядок медленнее. Хотя это лишь мое предположение. Но даже логически - для каждой строки при каждой итерации сортировки потребовалось бы заново искать и переопределять зависимости всех ячеек. Не думаю, что это было бы быстро.
Плюс, я так полагаю, что никому даже в голову не приходило сортировать формулы наравне с значениями, т.к. формулы изначально задумывались для иных целей и являются несколько особым свойством ячейки.

Вообще, ради интереса просто поищите в интернете "быстрые методы сортировки VBA". Посмотрите, как там все закручено(пузырек не в счет, это самый медленный алгоритм). Потом попробуйте сами чрез тот же VBA выявить для ячейки с формулами(не только простыми, а любыми формулами - сложными, формулами массива и т.п.), разложить каждую на все участвующие и зависимые от неё ячейки и для каждой еще и определить - закреплена или нет. Может тогда мнение относительно простоты реализации чуть изменится :)
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39649522
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist , давайте остановимся на том, что мне все известно о методах сортировки, ссылках, указателях, массивах и т.п. :)
И я точно знаю, что компьютеру совсем несложно привязаться к ячейке, куда бы она не была перемещена. И даже тысячам таких перемещенных ячеек.

Скорее всего, в микрософте просто посчитали, что в такой отсортированной таблице слишком много формул придется подсветить зеленым треугольничком (несогласованность формул)
Или что еще более вероятно: такая сортировка есть, но как ею воспользоваться мы не знаем. О чем и создана эта тема

The_PristПлюс, я так полагаю, что никому даже в голову не приходило сортировать формулы наравне с значениями, т.к. формулы изначально задумывались для иных целей и являются несколько особым свойством ячейки.
Тут задача такая: есть таблица с некими данными. И в этой таблице есть вспомогательные поля с формулами (расчет начала и конца периодов, а так же связь начала одних периодов с окончанием других. Т.е. что-то отдаленно напоминающее ProjectManager).
Таблицу необходимо сортировать и фильтровать по разным полям, при этом чтобы периоды оставались внутри своих строк, как-будто там нет формул, а только значения.
И при этом, если меняется срок или дата начала, или окончания в какой-то из строк, то чтобы остальные строки корректно пересчитывались.

Таблица небольшая - всего на сотню-две строк и с десяток полей. А ексель выбран как удобный табличный инструмент, который УЖЕ присутствует на компьютере.
И городить огороды с установкой ProjectManager'а или какой-то СУБД, или еще чего-то - ну просто глупо.
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39649542
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987 The_Prist , давайте остановимся на том, что мне все известно о методах сортировки, ссылках, указателях, массивах и т.п. :)
И я точно знаю, что компьютеру совсем несложно привязаться к ячейке, куда бы она не была перемещена. ....
Ой-ёй-ёй...
да...
Если так, то может быть вам не менее всё известно о разнице между данными и алгоритмами работы с ними.
Сортируют данные. А строки работающего алгоритма, кроме компилятора, никто не переставляет.
И даже когда компилятор переставляет их, это не называется сортировкой.

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

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

PS
Это не наезд. Просто совет. Причем - добрый.
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39649604
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyЭто не наезд. Просто совет. Причем - добрый.
судя по твоему тексту выше, ты подумал, что я так понтанулся, когда написал, что мне известно об указателях, методах сортировки и т.п.
Нет, не понтовался (тут на форуме каждый второй программист или администратор баз, или чего-то еще, с головой гораздо больше моей). Просто странно было слышать мнение, что екселю трудно сортировать формулы. Ему не трудно, отвечаю.

boobyлучше бы скопировал данные <...> на отдельный лист. И освободившееся от топологических мыслей время сможешь потратить на фильтрацию и сортировку данных, а не алгоритмов.
я думал, что в екселе это где-то на поверхности и мне сейчас подскажут, какую кнопку нажать, чтобы получить желаемое.
Но либо никто не знает об этой кнопке, либо ее нет. Тогда да, придется самому копировать данные, сортировать, а потом ручонками писать формулы обратно.
Все как в стародавние времена с перфокартами и большими калькуляторами
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39649615
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987...
Все как в стародавние времена с перфокартами и большими калькуляторами
вот ведь ять...

нуб987странно было слышать мнение, что екселю трудно сортировать формулы. Ему не трудно, отвечаю.

мне не интересны ни удивления, ни убежденности.
Это вообще-то не вопрос.
Возьми, да научи его, как надо.
Для персонально твоего, маленького случая, это не составит сложности даже и особенно для тебя.

нуб987Тогда да, придется самому копировать данные, сортировать, а потом ручонками писать формулы обратно.

вот про ручонки - безоговорочно верю.
Не требуя доказательств.

PS
Будешь возвращаться к топику, не забывай перечитывать про портки.
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39649624
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyВозьми, да научи его, как надо.
да научил уже
добавил костылей....
добавил поле, заполненное по порядку при сортировке
в поле "дата нач" (которое считается как дата пред.ячейки + 1) написал такую формулу:
=ИНДЕКС(D:D;ПОИСКПОЗ(<столбец с порядковым номером отсортированной строки>-1;B:B;0))+1

думал, что ексель сам нормально сделает. Тему можно закрывать.
Ну или кто знает, напишите плз нормальный способ сортировки с формулами
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39649699
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй относительные формулы.
Используй нотацию R1C1.
Исключи столбцы C и D из сортируемого диапазона.
Все.
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39649728
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нуб987,
Выделите в таблице например 3 строку данных, Ctrl+x, выделите первую ячейку в первой строку данных, правый клик - Вставить вырезанные ячейки. Связь формул сохранилась? Отлично! Осталось написать макрос, который определит порядок строк после сортировки в нужном столбце и переместит строки этим методом.
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39651086
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987 Dimonka , так мне потом работать надо с исходной таблицей и всеми ее формулами. А если я копию создам, то там и формул не будет, а останутся только значения.
Или вы что-то другое имеете в виду? Ты создай копию таблицы, которая будет ссылаться на оригинальную таблицу. Она прекрасно отсортируется.
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39651851
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimonkaТы создай копию таблицы, которая будет ссылаться на оригинальную таблицу. Она прекрасно отсортируется.
нет, это не то

нужно отсортировать таблицу по одному из полей (по ФИО, например), изменить какие-то даты или кол-во дней, а потом вернуть сортировку обратно
при этом формулы дат ссылаются на предыдущие ячейки в своем столбце

в общем, это не так просто объяснить и отличным решением было бы наличие возможности сортировки с привязки формул к перемещаемым ячейкам.
но раз ексель так не умеет или мы об этом не знаем, то были придуманы костыли с доп.полем и "индекс(поискпоз(...".
Проблема, хоть и криво-косо-с-костылями, но решена. Думаю, если бы ексель умел сортировать корректно формулы, мы бы это здесь давно узнали бы.
...
Рейтинг: 0 / 0
EXCEL сортировка с сохранением формул
    #39653713
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значит надо добавить слева уникальный ключ (табельный номер например, потому как ФИО неуникальные), и заменить формулы прямой ссылки =D2+1 на формулы динамической ссылки по ключу =ВПР(табельный;столбец табельного;5;ЛОЖЬ)+1

ессно будет заметно медленнее считать на большом массиве.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / EXCEL сортировка с сохранением формул
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]