LibreOffice Calc. Различные проблемы.

Не системное, видимо. Но больше негде спросить. Поэтому в “Разговоры”.

Имеется электронная таблица (книга) в формате xlsx. Много листов. Каждый лист называется диапазоном дат за неделю (пример: 2018-07-30_2018-08-05).
На каждом листе в ячейке I31 стоит число в денежном формате.
На отдельном листе суммируются числа из ячеек I31 за месяц, т. е. из 4-5 листов.

Формула такая:

=СУММ('2018-07-30_2018-08-05'.I31:$'2018-08-20_2018-08-26'.I31)

Но после переоткрытия документа формула непонятным образом, сама по себе, меняется на такую:

=СУММ('2018-07-30_2018-08-05':$'2018-08-20_2018-08-26'.I31:I31)

и не суммирует.

В чём причина?
И что знак $ обозначает?

Доллар всегда обозначал иммутабельность адреса, т.е. неизменность при перемещении формулы в другое место. Здесь же явно баг импорта/экспорта - образуется некорректная формула - я бы репортил в Либру. Или это только на openSUSE у тебя такая проблема?

Или это только на openSUSE у тебя такая проблема?

Документ для персонального использования. Больше негде проверить.

Позже скину тебе для просмотра / проверки.

Всё не могу документ оформить для рассмотрения.

Ещё заметил проблему.
Клавиши-стрелки на английской раскладке перемещают фокус на другую ячейку.
На русской раскладке не перемещают, а двигают лист.

Переименовал тему для сбора всех, разных проблем.

По поводу суммирования с разных листов.
Вот тестовый файл: https://yadi.sk/i/a_8MfG1e18rwCw
Вроде, нормально всё.

Minton, отправил в приват ссылку на оригинальный файл.

Тут налицо борьба двух идеологий: например, Excel и исходную формулу из первого сообщения считает ошибочной :slight_smile: Тут явно “виноват” модуль экспорта в xlsx: у Calc и Excel разный формат записи суммы диапазонов из нескольких листов. Первая формула - это как и должно быть в Calc, а вторая - безуспешная попытка привести это к Excel-подобному виду (поскольку формат файла-то ).
Было:

=СУММ('2018-07-30_2018-08-05'.I31:$'2018-08-20_2018-08-26'.I31)

Стало:

=СУММ('2018-07-30_2018-08-05':$'2018-08-20_2018-08-26'.I31:I31)

Чего хотел Excel (по крайней мере, так гласит учебник и мой Excel 2010 с ним согласен) и что не будет считать Calc:

=СУММ('2018-07-30_2018-08-05:2018-08-20_2018-08-26'!I31:I31)

А вот в тестовом файле ситуация явно лучше, потому что все формулы корректно отображаются, см. https://yadi.sk/i/ml7aoUcsGp40gQ

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

Если сохраняю в ods, то всё нормально.

Что делать-то?
Я бы с удовольствием использовал “родной” формат LO, но иногда нужен доступ к файлу в облачном хранилище (синхронизируется с ПК) со смартфона.
Использую PlanMaker Mobile Free. Он не читает файлы ods.

Гугель Таблицы?

Таблицы от Гугл не привлекают.

Пришёл к выводу, что надо использовать формат OpenDocument.
Для Android нашёл пока Open Office Viewer. Показывает более-менее. Но листы книги постранично.

Перешёл на формат ODS. Работает отлично.

Minton, как-то можешь сообщить разработчикам о проблеме? Я не владею английским (техническим) языком в достаточной степени, чтобы описать эту ситуацию.

Ещё заметил проблему.
Клавиши-стрелки на английской раскладке перемещают фокус на другую ячейку.
На русской раскладке не перемещают, а двигают лист.
Это подтверждается?
Тогда тоже надо жаловаться.

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

а там не особо подлежащие публикации сведения, как я понимаю

:slight_smile: Надо выбрать время и сделать нейтральный документ.

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

На английской раскладке переходит на соседнюю ячейку.

На русской раскладке клавиатуры стрелками не происходит перемещение между ячейками.
Фокус остаётся на выбранной ячейке, но сдвигается лист.

На английской раскладке переходит на соседнюю ячейку.
Это теперь работает.

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

Ссылка на файл: Oops, Captcha!

Версия: 6.4.3.2

Загрузил файл в Google Документы. Присутствует эта же ошибка в ячейке.
Что не так?

  1. Текущая версия LO - 6.4.4.2: openSUSE Software .

  2. Похоже, LO не понимает минус перед диапазоном в функции “сумма”.
    Вместо минуса перед рядом чисел “-B10:B11”


=СУММ(C2:C4;-B10:B11)

можно сделать минус сумм:


=СУММ(C2:C4) - СУММ(B10:B11)

  • если это было целью.
  1. Про сдвиг листа на русской раскладке: в openSUSE по умолчанию включение другой раскладки обозначается включением Scroll Lock (“Использовать клавиатурные индикаторы для … раскладок”).
    LO понимает это как Scroll Lock и двигает лист целиком.
    При отключении этого поведение становится обычным.
    Это так в KDE.

Похоже, LO не понимает минус перед диапазоном в функции “сумма”.
Понимает.
В другом документе подобная формула работает. Что-то не так в этой конкретной таблице.

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

=СУММ(C2:C4;-B10:B11)

заменить на

=-СУММ(-C2:C4;B10:B11)

, т.е. поменять знаки диапазонов местами и инвертировав знак результата, однако это иллюзия: если в ячейках С3 или С4 вбить какие-то числа, то они будут игнорироваться и результат вычисления не поменяется - сам попробуй.

Так что работоспособность “аналогичной” формулы мнимая, там диапазон из одной значащей ячейки. Соответственно, чтобы работало устойчиво и корректно, нужно применять отрицание не к диапазону, а к числу:

=СУММ(C2:C4;-СУММ(B10:B11))

или воспользоваться вариантом, предложенным тов. Svyatko выше, он более читаемый, что для формулы очень важно.