Я ввожу цифры в строку 4 в разные моменты ночной смены. Однако числа не всегда будут соответствовать одному и тому же часу каждую ночь. Номер будет вводиться не реже одного раза в 4 часа.
На данный момент мне нужно вручную вычислить значение в строке 5. Я просмотрел различные операторы «если» и логику формул, но безуспешно.
Подводя итог, я хотел бы, чтобы значение в строке 8 складывалось с последним значением часа, введенным в строку 4. Т.е. 1000 было введено в «D4», и это дает «C8» и «D8» по 500 каждый, поскольку это 1000, разделенная на 2.
Я надеюсь в этом есть смысл? Любая поддержка решения приветствуется.
Большое спасибо, Алан.
Формула в ячейке C8: перетащите вправо.
=LET(rval,MIN(IF(ISNUMBER(C4:$K$4),C4:$K$4,MAX(C4:K4)+1)),
lval,MAX(IF(ISNUMBER($C$4:C4),$C$4:C4,0)),
lpos,MATCH(lval,$C$4:$K$4,0),
rpos,MATCH(rval,$C$4:$K$4,0),
empty,rpos-IFERROR(lpos,0),
percell,(rval-lval)/empty,
IFERROR(percell,OFFSET(C8,0,-1)))
УЛУЧШЕНО
Следующая формула учитывает вероятность того, что первая ячейка содержит значение, две соседние ячейки содержат значения, в ячейках встречаются одинаковые значения, а конец диапазона не содержит значения.
=LET(leftval,MAX($B$4:B4),
rightval,MIN(C4:$K$4),
left,COLUMN(XLOOKUP(leftval,$B$4:B4,$B$4:B4,$B$4,0,-1)),
right,COLUMN(XLOOKUP(rightval,C4:$K$4,C4:$K$4,$K$4,0)),
val,(rightval-leftval)/(right-left),
IF(val<0,0,val))
Я не знаю, какой из них лучше. Я уже встречался с обоими обходными путями. Теперь я добавляю улучшенную формулу с более подробными характеристиками.
Улучшенный раздел выглядит многообещающе. Только проснулся, сегодня утром проведу небольшое тестирование. Спасибо.
=LET(r,C4:K4,
a,MAP(r,LAMBDA(m,@IFERROR(TOCOL(m:K4,1),0))),
b,MAP(r,LAMBDA(m,MAX(IFERROR(TOCOL(DROP(C4:m,,-1),1),0)))),
(a-b>0)*(a-b)/BYCOL(a,LAMBDA(x,SUM(N(a=x)))))
Здравствуйте, я заметил одну проблему с вышеизложенным. Допустим, в приведенном выше примере не было 6000, и на все последующие часы останется значение 833,33. Рад добавить новый вопрос, лучший ли это способ сделать это?