2

Я пытаюсь получить значение смежных столбцов в OpenOffice.org Calc.

У меня есть несколько строк, каждая из которых имеет столбец, значение которого должно увеличиваться на единицу, когда столбец справа от него имеет значение.

Так что я надеюсь получить что-то подобное.

1 Some content $50
2 More content $320
3 Even More    $70
4              $110

В приведенном выше примере 1, 2, 3 и 4 получены путем увеличения на 1, так как было значение справа по крайней мере в одном из двух столбцов.

2 ответа2

1

В чем проблема? Это вопрос ссылки на соседние ячейки или условного расчета значений? Относительно относительных ссылок смотрите ответ Евгения. Чтобы условно вставить содержимое, вы можете объединить функцию IF вместе с функцией CONCATENATE:

=IF(CONCATENATE(B1;C1) <> "";1;"")

Объединение результатов в строку, если одна из сцепленных ячеек содержит значение.

Если содержимое для вставки зависит от строки выше, вам нужно будет либо запустить таблицу во второй строке, либо использовать функцию, отличную от второй строки:

=IF(CONCATENATE(B2;C2) <> "";SUM(A1;1);"")

Следующий момент - что делать, если, например, в восьмой строке нет значений в B8:C8. Просто увеличение значения вышеупомянутой ячейки в A9 начнется снова с 1:

условный подсчет

Если вы хотите продолжить подсчет, вам нужно будет посчитать ячейки выше от текущей, которые не являются пустыми или 0. Есть функция COUNTIF, которая делает именно это. Итак, ваша функция может выглядеть так (снова начиная со строки 2):

=IF(CONCATENATE(B2;C2) <> "";SUM(COUNTIF($A$1:A1;">0");1);"")

или разделить на разные строки и с комментариями:

=IF(
    CONCATENATE(B2;C2) <> ""; # Condition to check
    SUM(                      # output if condition matches
        COUNTIF($A$1:A1;">0");# count cells from $A$1 to cell above if not 0
        1                     # augment value by 1
    );
    ""                        # output if condition doesn't match
)

Это функция для второго ряда; просто скопируйте ячейку в следующие строки. Это должно дать следующий результат:

условный отсчет 2

1

Ищите "относительные ссылки" в файле справки OpenOffice. Что вам нужно, это относительная ссылка.

В первом столбце первой строки у вас есть 1 в $ A $ 1. Таким образом, во второй строке ($ A $ 2) вы можете написать «= A1+1». A1 является относительной ссылкой - если вы скопируете ячейку (не формулу, а саму ячейку) из $ A $ 2 в $ A $ 3, новая ячейка автоматически получит формулу "= A2+1".

Также могут быть абсолютные ссылки, которые "блокируют" строку или столбец части ссылки. Они достигнуты, помещая знак доллара перед частью. Таким образом, чтобы заблокировать ссылку на столбец A, вы должны написать формулу в виде «= $ A1+1», а для блокировки формулы в первой строке вы должны написать «= A $ 1+1».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .