Разность двух ячеек.

Автор Alexx, 31 октября 2023, 14:01

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

Alexx

Добрый день. В LibreOffice Calc как можно более просто вычислить разность двух ячеек, если они не всегда лежат на одной строке. Уже при A1 B3 получается астрономическое нагромождение ЕСЛИ(ЕПУСТО()). Подозреваю, нужно использовать ПОИСПОЗ вверх для An, но обосновать немогу.

mikekaganski

С уважением,
Михаил Каганский

bigor

Добрый день.
Непонятен смысл всего нарисованного. В столбце С, я понимаю, формулы должны быть. Их протягивать или в конкретную ячейку вбиваить нужно
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

Alexx

#3
mikekaganski нет, это было бы слишком элементарно.
bigor да, похоже несовсем подробно объяснил. В столбце С должна быть формула.
Например ввели в А1 число и в В5 число, тогда в С5=B5-A1, т.е. при вводе в Bn, в Cn=Bn-A(ближайшая вверх начиная с Аn), иначе в Cn="" пусто.

bigor

Alexx, в С1, если в B не результат вычисления формулы
=IF(B1<>"";B1-LOOKUP(99999;$A$1:A1;$A$1:A1);"")
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

Alexx

#5
bigor да, спасибо, всё работает, переключился на английские имена функции.

4_3

Цитата: bigor от 31 октября 2023, 15:50Alexx, в С1, если в B не результат вычисления формулы
=IF(B1<>"";B1-LOOKUP(99999;$A$1:A1;$A$1:A1);"")
Могли бы Вы разъяснить?
1. что значат пустые треуг. скобки,
2. пустые ковычки - это пусто?
3. я думал, "if" работает через точку с запятой (одну). прочтите логику этой сроки пожалуйста.
4. правильно я понял, что обращение к первой ячейке, которая будет после B1 записывается как B1-LOOKUP?
5. что написано в аргументе B1-LOOKUP (в скобках)

bigor

#7
Цитата: 4_3 от  6 ноября 2023, 22:42Могли бы Вы разъяснить?
1,2. <> это два знака меньше больше означают не равно. Т.е. я проверяю, что B1 не равно "" (не пустая).
3. if проверяет условие и если оно истина, то выводит второй параметр (после первой ;), если ложно третий (после второй ;).
4. не понял вопроса. Формула проверяет B1? если не пустая, то выводит результат вычисления (B1-LOOKUP(99999;$A$1:A1;$A$1:A1)), если пустая - выводит пусто ("")
5. в скобках в столбце от А1 до А(текущая строка) ищется последнее число, которое меньше 99999, и соответственно выводится. В итоге имеем, что если ячейка В не пустая, то формула возвращает значение ячейки В - последнее число в столбце А 
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут