Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

16 Май 2021, 19:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Формула не корректируется :-(  (Прочитано 5981 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Paulson
Участник
**
Offline Offline

Сообщений: 9


« Стартовое сообщение: 20 Март 2015, 23:51 »

Здравствуйте!
Помогите please разобраться...
Есть таблица, в ней много строк и столбцов Почти во все столбцах в каждой строке есть простейшая формула. К примеру строка 25 столбец I такая: SUM(I24;H25)
Перед 25-й строкой (в середину таблицы) вставляю пустую строку. 25-я строка становится 26-й. НО! Формула становится SUM(I24;H26)! То есть 25-я строка не учитывается в последующих строках...   Злой

И можно было бы править вручную... Но, как я уже писал выше, столбцов много! Да и строки частенько приходится вставлять...
Если скопировать какую-то строку из таблицы и сделать "вставить как...", то все равно то же самое, формула не корректируется...  В замешательстве

Долго курил интернет, не нашел ничего по этому поводу  В замешательстве

Я не понимаю, почему не пересчитывается I24 на I25??!  Непонимающий Может мне кот-нибудь подсказать, как сделать, чтобы пересчитывалось? Или это глюк?
Записан
kompilainenn
Мастер
*****
Offline Offline

Сообщений: 3 268



« Ответ #1: 21 Март 2015, 00:05 »

версия офиса какая и желательно сам файл выкладывайте
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
kompilainenn
Мастер
*****
Offline Offline

Сообщений: 3 268



« Ответ #2: 21 Март 2015, 00:08 »

хм, а действительно, так и происходит...проверил в ЛО 4.3.6, есть мнения, ЧТО это? бага или фича?=)
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 3 071


iMac, LibreOffice и Apache OpenOffice


« Ответ #3: 21 Март 2015, 00:28 »

Перед 25-й строкой (в середину таблицы) вставляю пустую строку. 25-я строка становится 26-й.
Но 24-я ведь остаётся на месте! Вы хотите шагать вперёд не отрывая правую пятку от левой Непонимающий Я хочу посмотреть Шокирован

Я не вижу никаких баг и фич.
Записан

kompilainenn
Мастер
*****
Offline Offline

Сообщений: 3 268



« Ответ #4: 21 Март 2015, 00:32 »

2rami: но согласись, если формула будет вида А10+В10, то при вставке строки выше она превратится таки в А11+В11. А здесь, кусок формулы изменяется, а кусок нет! Может тут и нет багов или фич, но правильным это назвать тоже нельзя, имхо.

зы: а еще надо бы в эксель поглядеть, как там это сделано...а точно так же и сделано! в 2003 офисе во всяком случае...
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 3 071


iMac, LibreOffice и Apache OpenOffice


« Ответ #5: 21 Март 2015, 00:42 »

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

kompilainenn
Мастер
*****
Offline Offline

Сообщений: 3 268



« Ответ #6: 21 Март 2015, 01:35 »

Ну это просто так принято, разве трудно реализовать другое поведение, пусть и в виде опции?
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 3 071


iMac, LibreOffice и Apache OpenOffice


« Ответ #7: 21 Март 2015, 03:19 »

Ну это просто так принято, разве трудно реализовать другое поведение, пусть и в виде опции?
Непонимающий
Я не понимаю, почему не пересчитывается I24 на I25??! Непонимающий
Новая строка смещает старую и все нижние строки со всем их содержимым включая ссылки, а верхние остаются неизменные. Ссылки привязаны к ячейкам, если смещаются ячейки, то изменяются привязанные к ним ссылки.
Может мне кот-нибудь подсказать, как сделать, чтобы пересчитывалось?
Нужно заменить привязку к ячейке на смещение.
Например следующая формула в  ячейке I25
Код:
=SUM(OFFSET(I25;-1;0);H25)
позаботится о том, чтобы первое слагаемое всегда бралось из соседней ячейки сверху. Можно задать смещение в любом направлении на любое количество ячеек.
Записан

JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #8: 21 Март 2015, 10:24 »

Сделаем шаг в сторону от обсуждения. Что вообще должна делать формула
SUM(I24;H25)
Ладно бы, если бы адреса были записаны через двоеточие - сумма всех ячеек диапазона. Тогда вставляемая строка просто растягивает исходный диапазон по высоте и особых претензий к изменению адресов вроде бы не возникает: верхняя левая ячейка осталась на месте, а правая нижняя сползла чуть ниже...
Здесь же встроенная функция вызывается вместо обычного знака плюс.
Разумеется, такая запись тоже имеет право на существование - именно так SUM() проиллюстрирован в Справке.
Но, как по мне, такая запись всего для двух слагаемых - дурной тон. Это не вежливо по отношению к Calc'у и к пользователям, которые будут эту формулу читать. Вон сколько форумчан озадачилось!
Согласитесь, если бы речь шла о формуле
Код:
=I24+H25
вопросов, скорее всего, тоже бы не возникло: после вставки строки формула ссылалась бы на те же ячейки, что и вначале
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 3 071


iMac, LibreOffice и Apache OpenOffice


« Ответ #9: 21 Март 2015, 11:29 »

Но, как по мне, такая запись всего для двух слагаемых - дурной тон.
Просто начальный уровень пользователя. Я всегда в таких случаях использую +, а не SUM — это легче и наглядней.

Как мне кажется, суть вопроса в том, что есть таблица, которая накапливает данные(как значения, а не как формулы). Только в последней(нижней) строке есть формулы которые всегда должны ссылаться на ячейки в текущей(последней) и предпоследней строке. Нижняя строка с формулами как-бы является точкой отсчёта и при смещении тянет за собой ссылки.
Пользователь:
1. ставит курсор в начало последней строки
2. выделяет строку
3. копирует
4. вставляет новую строку, которая смещая последнюю вниз становится предпоследней, при этом сохраняя выделение
5. вставляет ранее скопированные данные как значения
Записан

Paulson
Участник
**
Offline Offline

Сообщений: 9


« Ответ #10: 5 Май 2015, 02:07 »

Нужно заменить привязку к ячейке на смещение.Например следующая формула в  ячейке I25 Код:=SUM(OFFSET(I25;-1;0);H25) позаботится о том, чтобы первое слагаемое всегда бралось из соседней ячейки сверху. Можно задать смещение в любом направлении на любое количество ячеек.

Получилось реализовать этим способом. Большое спасибо за помощь! Улыбка
Записан
Paulson
Участник
**
Offline Offline

Сообщений: 9


« Ответ #11: 5 Май 2015, 02:16 »

Здесь же встроенная функция вызывается вместо обычного знака плюс.Разумеется, такая запись тоже имеет право на существование - именно так SUM() проиллюстрирован в Справке.Но, как по мне, такая запись всего для двух слагаемых - дурной тон. Это не вежливо по отношению к Calc'у и к пользователям, которые будут эту формулу читать.

На самом деле формула сложнее, просто я ее упростил  Подмигивающий,  т.к. мне нужно было просто понять, как сделать так, чтобы таки после вставки строки Calc пересчитывал ячейку.  Улыбка
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!