Страницы: 1
RSS
Прибавление к последней непустой ячейке
 
Доброго дня, уважаемые знатоки! Помогите, пожалуйста, решить следующую задачу: в представленной таблице (график выезда на линию автобусов) в зеленые ячейки записывается количество минут вручную (это интервал выхода на линию), а ячейка ПОД ней прибавляет количество этих минут ко времени НАД зеленой и показывает сколько получится времени. Но возникла необходимость сделать так, чтобы ячейки с временами прибавляли количество указанных минут в зеленой ячейке не просто к вышестоящей ячейке, а к первой ячейке, содержащей время, т.е. не пустой.
Например, в ячейке P24 (9-й график) указано время 19:00, далее в ячейке P26 (10-й график) формулой возвращено значение "" при условии что вышестоящая зеленая ячейка не заполнена, а следующая через одну машину (11-й график) должна выехать через 20 минут (ячейка P28) после P24 (9-й график).
Этот интервал должен быть указан проставлением над 11-м графиком в ячейке P27 20 минут, т.е. это разница между машиной на 19:20 и последней указанной машиной на 19:00.
В текущем варианте если проставить 20 минут над 11 графиком, то эти минуты прибавятся к значению "" (10-й график, который пустой), что выдаст ошибку.  
 
Иными словами вам нужно получить предыдущее не пустое значение в столбце из четной строки. Так? Хотя можно просто последнее бе учета соседнец ячейки выше. И если все в пределах одних суток. То максимальное из всех в четнвх строках. Или максимальное из тех что менее 1.
Изменено: БМВ - 29.11.2022 08:32:20
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Иными словами вам нужно получить предыдущее не пустое значение в столбце из четной строки
Всё верно. Я забыл указать что стоблцы должны быть четными.
Описанные вами варианты это именно то, чего я хочу, но не знаю как это сделать.
Единственное что я не понял это про "максимальное из тех что менее 1" )  
 
Цитата
ivan.k написал:
"максимальное из тех что менее 1"
ну я не видел что скрыты столбцы на телефоне. Смотрите, часы это всегда меньше 1. то есть если вы указываете 8 минут, то это больше
если в таблице стоит 8 , 7:00 , 8 , 7:08 ..... то 8 больше 1 а остальные меньше. максимальное из них то что вам надо, но  присмотревшись есть проблема, а именно
у вас ведь первое значение из столбца берется исходя из последнего хначения предыдущего столбца. Для универсально 1 формулы это не просто, надо подумать.
массивная
=IFERROR(IF(IF($C10=1;B37;D9)=0;"";MAX(INDEX($D$8:$R$35;N(INDEX(MOD(ROW($A$1:INDEX($A:$A;(D$7-1)*14+($C10-1)))-1;14)*2+1;));N(INDEX(INT((ROW($A$1:INDEX($A:$A;(D$7-1)*14+($C10-1)))-1)/14)*2+1;))))+IF($C10=1;B37;D9)/1440);"")
Изменено: БМВ - 29.11.2022 19:23:04
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Цитата
первое значение из столбца берется исходя из последнего хначения предыдущего столбца.
Спасибо большое за разъяснения.
Вот я так и подумал, что с этим могут возникнуть проблемы. Кстати, не накидаете пример, как бы могла выглядеть формула, если бы задача состояла только в одном столбце?
Может сделать огромную формулу с кучей Если?
например: если Р28<0, то берем Р26, если Р26<0, то берем Р24 и т.д. Походу ерунда какая-то ((
Или через макрос назначить всем нужным ячейкам порядковые номера и опять же по условию Если<0, то следующая. Но я в макросах ноль.  
 
та уже все в одной выше смотрите.
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
та уже все в одной выше смотрите.
Это потрясающе! Всё работает как надо. Пойду изучать Вашу формулу )
Спасибо Вам огромное.

upd: это выше моего понимания (
Изменено: ivan.k - 29.11.2022 16:44:12
 
просто формируется из двумерного массива одномерный от первой ячейки до предыдущей в последовательности сверху в низ, справа на лево с шагом 2, что дает последовательность ранее заполненного , рассчитанного времени. Как и писал максимальное время- то что нужно.
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
просто формируется из двумерного массива одномерный от первой ячейки до предыдущей в последовательности сверху в низ, справа на лево с шагом 2, что дает последовательность ранее заполненного , рассчитанного времени. Как и писал максимальное время- то что нужно.
Не сочтите что я наглею и хочу сесть на шею, но у меня возникли сложности с реализацией этой формулы. Дело в том, что в текущем виде как оно сейчас есть всё работает отлично, но когда я добавляю или убираю строки (поскольку мне нужно будет сделать множество дубликатов этого листа в различных вариациях по количеству строк и столбцов) формулы последующих ячеек перестают работать, а привести их в рабочее состояние у меня не получается.
Например: когда я удаляю 2 строки 28,29 (11-график), то график 12 перестает отображать время, появляются ошибки ссылок на удаленные ячейки, но даже если привести эту формулу в полное соответствие с вышестоящими, то функциональность не восстанавливается.
Как восстанавливать работу формулы если я удаляю или добавляю строки или столбцы?  
 
В формуле используется количество строк в таблице это коэф 14. Его можно сделать рассчетным ну и ссылку на последнюю строку при из первой по условию тоже надо учесть.
Но я думаю все можно считать иначе.  Нужно  посчитать сумму минут и прибавить к самому первому времени. Это можно сделать в два приема. В двух прямоугольных диапазонах расположенных  левее и выше. Доберусь до компа посмотрю.

не уверен что проще, но , быстрее.
=IF(IF($C10>1;D9;IF(D$7>1;INDEX($D$8:$R$35;MAX($C$8:$C$35)*2;(D$7-1)*2-1)))>0;$D$8+(IF(D$7>1;SUM(INDEX($D$8:$R$35;N(INDEX(ROW($A$1:INDEX($A:$A;MAX($C$8:$C$35)))*2;));N(INDEX(TRANSPOSE((ROW($A$1:INDEX($A:$A;D$7-1))-1)*2+1);)))))+
IF($C10>1;SUM(INDEX(D$8:D9;N(INDEX(ROW($A$1:INDEX($A:$A;($C10-1)))*2;))))))/1440;"")
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
не уверен что проще, но , быстрее.
я сломал мозг, но так и не понял как этой формулой управлять ((
Если, например, мне нужна такая же страница, но на которой вместо 14 строк должно быть 13. Как это сделать? Если я просто удалю пару строк,  то все формулы в ячейках автоматически корректируются на измененный масштаб, но таблица перестаёт работать. Протягивать формулы или копировать толку не дает - они приобретают корректный вид, но по прежнему не работают. А если к таблице добавить строк и скопировать туда формулы, то получаются строки с дублированными значениями, хотя формулы на первый взгляд выглядят корректно.
Что мне делать чтобы менять количество строк и столбцов этой таблицы?  
Изменено: БМВ - 03.12.2022 09:20:50
 
Попрлбуйте не меняя таблиц заменить диапазон на строку и на столбец больше. Это проще сделать через замену. Фактически 35 на 36 или 37 поменять, а R на S или T. Я не у компа и проверить пока не могу.
=IF(IF($C10>1;INDEX($D$8:$S$36;$C10*2-2;D$7*2-1);IF(D$7>1;INDEX($D$8:$S$36;MAX($C$8:$C$36)*2;D$7*2-3)))>0;$D$8+(IF(D$7>1;SUM(INDEX($D$8:$S$36;N(INDEX(ROW($A$1:INDEX($A:$A;MAX($C$8:$C$36)))*2;));N(INDEX(TRANSPOSE((ROW($A$1:INDEX($A:$A;D$7-1))-1)*2+1);)))))+
IF($C10>1;SUM(INDEX(D$8:D9;N(INDEX(ROW($A$1:INDEX($A:$A;($C10-1)))*2;))))))/1440;"")
Изменено: БМВ - 01.12.2022 19:45:14
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Попробуйте не меняя таблиц заменить диапазон на строку и на столбец больше. Это проще сделать через замену.  
Последняя формула - просто бомба! )) всё теперь работает на ура. Спасибо вам огромное за труд и терпение 👍
Изменено: БМВ - 03.12.2022 09:20:28
Страницы: 1
Наверх