Подсчет ячеек справа от заданной ячейки

Автор лена89, 20 марта 2020, 16:01

0 Пользователи и 1 гость просматривают эту тему.

bigor

вы формулы вводите как я написал тремя кнопками? или просто ентер жмакаете? Посмотрите формулы должны быть в фигурных скобках
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

лена89

Да, я видела фигурные скобки. Решила дорисовать их ручками, потому что тремя кнопками вставлять не получается. Пишет - ошибка то 512, то 520. Но , дело в том, что я и с вашим образцом не могу работать, подставляя туда свои значения и изменяя границы. Такое впечатление, что как-будто формулу менять нельзя ни при каких обстоятельствах. Но я вижу, что это то, что мне нужно. Буду разбираться. Спасибо большое. У меня апачи 4.1.5. Если это важная информация для вас) Может это старая версия? .

bigor

Я проверил в OOO 4.0.1 работает. Не нужно ничего дорисовывать, после любого изменения формулы жмем одновременно Shift+Ctrl+Enter и  все должно работать.
Если же одновременное нажатие 3 кнопок проблема, то жмем просто Ентер, видим ошибку, становимся на ячейку с ошибкой, жмем кнопку "мастер функций" и слева внизу ставим отметку, что функция массивная
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

лена89

Вау! получилось) После фразы вашей ПОСЛЕ ЛЮБОГО ИЗМЕНЕНИЯ ФОРМУЛЫ жать три клавиши. А не только когда вставляешь формулу) Спасибоооо!

лена89

Цитата: Bigor от  6 апреля 2020, 12:31
Я проверил в OOO 4.0.1 работает. Не нужно ничего дорисовывать, после любого изменения формулы жмем одновременно Shift+Ctrl+Enter и  все должно работать.
Если же одновременное нажатие 3 кнопок проблема, то жмем просто Ентер, видим ошибку, становимся на ячейку с ошибкой, жмем кнопку "мастер функций" и слева внизу ставим отметку, что функция массивная

Извините за беспокойство. Всё работает прекрасно. Но вот такая проблема. Вчера, в общем, на радостях, я давай , значит, считать всё, пересчитывать. Всё само считается. Любо-дорого. Сохранила файл. Сохраняла как обычно, нажав на "сохранить". ушла спать. Час назад решила поглядеть на красоту. а вот фиг-то вам. Моего файлика нет. Вернее, он есть, но в каком-то формате другом и через апачи не открывается. Посмотрела в свойства этого файла ( документ HTML (text/html)). Я вообще понять не могу, почему он сохранился в таком формате. Полезла в резервные копии, но у меня , конечно же, не стояла галочка в параметрах на резервных копиях. Решила поменять название файла, и приписала расширение ods, какое и было изначально. Вроде раскрылся, но в ячейках с формулами стоят просто числа. То есть, файл раскрылся, но без сохранения формул. А у меня их там...приличная куча. Что делать. Удалила апачи, снова переустановила - ничего не помогло. Решила установить системную либре , через менеджер приложений. Снова ничего. Ну, сейчас карантин, времени до...много, вроде формулы восстановила. Неумех  работа любит, это понятно. Но у меня к Вам вот такой вопрос, может ещё раз поможете?))) Смотрите, у нас есть массив. И когда массив изменяется, становится больше, то надо нажимать на ячейку и менять конечную строчку массива. А у меня очень много колонок , и в каждой колонке надо менять  заходить конечную строчку. Может есть такой способ, что поменял где-то одной ячейке один раз и там - хоп, и все в колонках заменилось одним махом. Так как в столбцах во всех одна и та же длина столбца, просто разные колонки, и разные буквы колонок. а длина начальной и конечной строки у всех всегда одинаковая. Не знаю как объяснить. Ну, к примеру. O$7:O$187   P$7:P$187 Q$7:Q$187 и так далее. Массивы все фиксированные, но длина их увеличивается. Приходится 187 менять на 188, потом на 189 и так далее, и так во всех колонках. А у меня их сейчас 15 штук) Как-бы я уже приноровилась, но иногда по рассеянности несколько раз пропускала несколько колонок. Естественно всё считалось неправильно. Может, есть такой способ , чтобы как-то сразу менять в колонках во всех автоматически? Извините за наглость. Может , в какой теме посмотреть подскажете? Единственное, что мне пока не подвластно - это макросы. Если дело в них, то тогда пока я этого понять не смогу) Заранее благодарю.

bigor

#35
Вижу 3 варианта решения:
1. Копирование формулы :) нужно только ссылки смотреть, где нужно сделать абсолютные
2. Количество строк берем из какй-то ячейки (в примере из А1)
=INDIRECT("a1")-MAX(IF($A$4:$A$24=4;ROW($A$4:$A$24);""))
3. Дописываем формулу, что бы искала последнюю заполненную строку
=MAX(IF($A$4:$A$40=LOOKUP(2;1/ISNUMBER($A$4:$A$40);$A$4:$A$40);ROW($A$4:$A$40);""))-MAX(IF($A$4:$A$24=4;ROW($A$4:$A$24);""))

все формулы массивные. Последнюю скорее всего можно и оптимизировать, но пока как есть
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

лена89

1 вариант - это понятно) Но, вот, к примеру вчерашняя формула, которую Вы дали, и спасибо Вам ещё раз за это большое, она ведь копирует и буквы, то есть, если я скопировала формулу, то она скопирует и буквы в массиве, а я её переношу в соседний столбец, и если длина массива скопируется, то нужно менять уже не длину, а буквы. а тогда какая разница? надо все-равно залезать в формулу и что-то там менять , и так 15 раз. Это утомительно в любом случае. а сейчас ещё и с либре пока разбираюсь, тут все формулы на русском, и тут нет такой фишечки, когда навел курсор на ячейку, появился крестик, два раза щелкнул и весь столбец обновился по первой строке. Тут, в либре, надо тянуть этот крестик вниз. я, конечно, потом, позже, снова вернусь на апачи, уже к нему привыкла. Просто пока спасаю файл. Так. вот. В общем, вот так. А с двумя другими вариантами сейчас буду разбираться. Потом отпишусь. Спасибо)

bigor

пока разбираетесь с формулами поофтоплю :)
Цитата: лена89 от  7 апреля 2020, 10:17то она скопирует и буквы в массиве, а я её переношу в соседний столбец, и если длина массива скопируется, то нужно менять уже не длину, а буквы
я же написал, что нужно подумать про типы ссылок. У меня все абсолютные, но можно часть сделать и относительных, что бы копировать влево/вправо

Цитата: лена89 от  7 апреля 2020, 10:17тут все формулы на русском
можно переключить и на английский: Сервис > Параметры > Calc > Формулы вверху чекбокс использовать анлийские

Цитата: лена89 от  7 апреля 2020, 10:17и тут нет такой фишечки, когда навел курсор на ячейку, появился крестик, два раза щелкнул и весь столбец обновился по первой строке
есть. Но, как я понял, она не работает с массивными формулами
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

лена89

К сожалению, пока не работают. Поменяла на английские буквы, спасибо, оказалось всё так просто) С формулами. решила взять второй вариант. После нажатия трех клавиш, пишет - ССЫЛКА. То есть, формуле нужна какая-то ссылка. Хотя, я прописала в формуле название ячейки, в которой буду каждый раз менять длину столбца. И потом. Мне непонятно. В формуле у Вас конечная строка, к примеру 24. Мне достаточно один раз прописать 24, а потом хоть будет 1500, а 24 будет стоять изначально? Потому что  этот момент не понятен. Не буду Вас больше мучать, Вы и так мне здорово помогли. Это я спросила для того, чтобы , ну, вообще бы было всё красиво. Но, видимо, чтобы было всё идеально красиво, такого в принципе не бывает. И придется поработать ручками. Но я буду разбираться. Там можно ещё и третий вариант попробовать, но он меня, если честно, пугает. Что-нибудь  я там по любому напартачу.

bigor

Смотрите в файле варианты подписаны

В формулах диапазон расширил, до 40 строки, можно и больше. Соответственно число в а1 должно быть до 40 (в моем случае).
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

лена89

#40
О, это меняет дело. Теперь всё понятно и всё работает) Я имею в виду второй вариант. Третий пока не  разбирала. И ещё такой вопрос. Это подходит только к конкретно к формуле подсчета снизу? Потому что у меня же много формул с массивами. Не только эти.  лук, контиф, и многое другое. Я бы попыхтела, поменяла всё , а потом буду сидеть, в ячейку А1 вводить каждый раз новое значение  и  вечный кайф. Или это только для одной формулы подходит? )

лена89

#41
Вот, к примеру   COUNTIF(O$7:O$187;BP7)   или  HLOOKUP(U$5;E7:I7;1;0)    Вот, к примеру, любая формула, где есть массив. Подразумевается, что длина массива меняется. Мне надо каждый раз дописывать INDIRECT в начале и отнимать всю формулу ?


Нет, что-то сейчас подумала - глупость спросила. Вероятно INDIRECT только для подсчета снизу.

bigor

#42
Нет просто вычесть, как в моих формулах не получится. Возможно получится задать в самой формуле ссылку на границу диапазона через address или смещать границу через offset

COUNTIF(O$7:indirect(a1);BP7)
где в a1 формула ="O$"&b1  в b1 вводите номер нужной строки
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

лена89

Ой, пока вы здесь, смотрите. Это уже для подсчетасверху. Получилась такая ситуация, что в массиве появилось число, которого раньше в массиве не было. И формула пытается отсчитать сверху, а не получается, так как массив я не исправила ручками. Длину. Так вот, по аналогии с подсчетом снизу, можно поставить INDIRECT в первую формулу? в принципе, я могла бы и сама попробовать, но чтобы зря не делать - спрашиваю.

bigor

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