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

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

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

лена89

Добрый вечер.

Искала на форуме, не нашла похожей задачи. COUNTIF считает  ВСЕ ячейки с заданным значением. Это немного не то. Мне необходима такая функция, которая будет считать количество ячеек в диапазоне (строке) , которые находятся справа от заданной ячейки . К примеру, в ячейке стоит значение  "ИВАНОВ", справа от этой ячейки идут много-много других фамилий, но Иванова точно нет. Но ячеек так много, что ручками считать трудно. Надо, чтобы в результате возвратилось количество ячеек после Иванова. Не важно, - пустых, не пустых, - главное, КОЛИЧЕСТВО всех ячеек. Чтобы знать, когда ставить в смену. К примеру, каждые 11 дней надо ставить Иванова в смену. Вроде 11 не так много для подсчета, но все равно можно сбиться. Так, чтобы я видела, наступило 11 смен или ещё нет. Не знаю, правильно ли объяснила. Всех, кто понял, - заранее благодарю.

eeigor

#1
Если честно, то ничего не понятно. Значит останусь без благодарности...
Ясно только одно: Вы используете лист Calc, как обычный лист бумаги! А мышление надо менять...
Данные должны быть мало-мальски НОРМАЛИЗОВАНЫ (структурированы) и не иметь ПОВТОРЯЮЩИХСЯ ГРУПП (массивов). В данном случае ФИО, ФИО и ФИО - это массив.
Если перестроить таблицу, где будет поле "ФИО" и далее - другие поля (например, дата смены), то данные можно будет просто НАКАПЛИВАТЬ, строчка за строчкой, а считать будет СВОДНАЯ ТАБЛИЦА - ВСЕ ИТОГИ РАЗОМ И ЗА КАЖДОГО! Как вариант, есть и другие средства: формулы массива, таблица подстановки...
Дерзайте! Ибо предложить вариант по Вашим данным невозможно.

А формулам всё равно, как лежат данные: в столбце или в строке.
=COUNTA(B1:E1) + COUNTBLANK(B1:E1)  'Если правая граница установлена

Если проблема в нахождении последней ячейки, а справа данные "не выровнены", то подход другой.
Конечно же, такая формула есть.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

лена89

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

eeigor

Скажите, Вам надо находить границу диапазона СПРАВА в строке или нет?
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

лена89


mikekaganski

#5
В Вашем скриншоте данные расположены так, что Ваше объяснение неправильное. Например, под "Иванов" стоит 3, потому что справа от Иванов в следующей строке три имени. Но там ведь четвёртая ячейка тоже непустая - в ней стоит та самая 3. А потом идут числа 2, 1, 0. Так значит, формула дала бы вместо 3 - 7?

Пожалуйста, старайтесь делать аккуратные примеры.

Теперь что значит - "пустых, непустых"? Справа от Иванова, если честно, 1023 ячейки, большинство - пустые.
С уважением,
Михаил Каганский

лена89

Это я привела пример того, как бы мне хотелось, чтобы выводилось. Чтобы считалось, что после Иванова 3, и так далее. Подразумевается, что там была бы граница, до которой надо считать. Выше вопрос конкретизировала. Ну, да, я согласна, что корявенько объяснила задачу.

mikekaganski

Есть граница, до которой считать? Значит, число ячеек от Иванова до границы равно COLUMN(ячейка_границы)-COLUMN(ячейка_иванова)
С уважением,
Михаил Каганский

eeigor

#8
Ну, я так понял, что справа 30-31 ячейка (месяц), а надо всё-таки определять правый край по ходу течения месяца. Если так, то я не могу это решение привести по памяти. Надо раскрыть талмуд.
Суть метода в определении крайней (в пределах 31) ячейки справа, игнорируя пропуски между. Ну есть такая формула с обработкой ошибки деления на ноль.

Вот здесь
https://www.planetaexcel.ru/techniques/2/664/

И вот здесь (это, кстати, оч-чень хороший блог)
https://contexturesblog.com/archives/2019/05/16/excel-lookup-formula-for-last-item-in-column/
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

mikekaganski

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

лена89

Цитата: mikekaganski от 20 марта 2020, 16:42
Есть граница, до которой считать? Значит, число ячеек от Иванова до границы равно COLUMN(ячейка_границы)-COLUMN(ячейка_иванова)

Да, сейчас попробую этот вариант.

Цитата: лена89 от 20 марта 2020, 16:39Теперь что значит - "пустых, непустых"? Справа от Иванова, если честно, 1023 ячейки, большинство - пустые.

Там могут быть выходные, то есть пустые ячейки. Может не так задачу надо было сформулировать? Например, от самой правой границы, это будет или 31 ячейка, или 30-, надо найти самого  первого Иванова , а потом вернуться и посчитать сколько после него ячеек. Даже не знаю, может вот так сформулировать. То, что Вы предложили, это все-равно придется искать вручную Аванова, задавать его значение, а потом уже автоматически рассчитается количество. А вот так, чтобы само нашло Иванова(самого правого)  и само подсчитало сколько ячеек после него)    

kompilainenn

Может задачу надо сформулировать с самого начала? Не что надо делать с таблицей в Calc, а что надо В ПРИНЦИПЕ сделать? Цель-то какая?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

mikekaganski

@kompilainenn абсолютно прав.

А вот решение прямо поставленной задачи.
С уважением,
Михаил Каганский

лена89

Спасибо большое. Буду разбираться. ) LOOKUP , ну да. в принципе я пробовала её, но как прицепить к ней ещё и подсчет ячеек, не знала.

лена89

#14
Цитата: kompilainenn от 20 марта 2020, 17:14
Может задачу надо сформулировать с самого начала? Не что надо делать с таблицей в Calc, а что надо В ПРИНЦИПЕ сделать? Цель-то какая?

Там, понимаете, если конечный результат объяснять, то это будет сложно и для вас и для меня. Потому что там много завязано. Но все проблемы решены, кроме того, что всё автоматизировано, а вот процесс подсчета ячеек справа после конкретной ячейки нет. Единственный момент приходится считать вручную и это выбешивает) Надо всегда знать, сколько ячеек после конкретной фамилии. Зачем? Вот это трудно объяснить. Но попытаюсь. Не всегда Иванов должен выходить через строго-определенное количество дней, например, через 11, как я сказала вначале. Вот сейчас стоит Иванов первый. После него 30 дней. В другой таблице есть подсчет, что Иванов уже вышел 1 раз за январь. Но он должен выйти, к примеру, 6 раз. И вот эти ячейки после Иванова , собственно и нужны для этого подсчета. Они нужны для подставления в другую формулу, которая будет предупреждать, что иванову осталось выйти 5 раз. 3 раза. 2 раза. Но не всегда это одинаковый шаг, понимаете? Если и сейчас не понимаете, то я сдаюсь) Иначе объяснить не могу.

Хочу сразу поправиться. Да, на первый взгляд можно подумать, что достаточно просто считать сколько Ивановых в строчке. Если, к примеру, сейчас 1, то осталось 5 смен.  Обычный подсчет ячеек со значением Иванов. Но это не подходит. Потому что другие формулы ломаются. Нужно именно количество после .