Суммируйте столько столбцов, сколько указано на другом листе в Excel

Я создаю книгу Excel с финансами для компании. В этой рабочей тетради есть лист с декларацией о прибылях и убытках и лист с параметрами.

В листе с параметрами есть ячейка с количеством кварталов, на сколько предполагается срок действия контракта на обслуживание продукта компании.

В листе с отчетом о прибылях и убытках я хочу суммировать столько ячеек, сколько указано в листе параметров.

например Ячейка листа «Параметр» B7 имеет номер 4. Теперь на листе «Отчет о прибылях и убытках» я хочу получить сумму из ячеек C8 в 4 столбцах справа (потому что Параметры! B7 = 4). Но если я изменю число в параметрах на 5, оно должно автоматически занимать 5 столбцов справа в отчете о прибылях и убытках.

Я попытался изменить свой Excel на R1C1, но я понятия не имею, как это создать. С или (если возможно) без VB.

Должно быть что-то вроде этого: =SUM(R8C3:R8C[+Paramaters!R7C2])


person L. Starmans    schedule 23.05.2016    source источник
comment
Это возможно с помощью функции Indirect().   -  person J Brazier    schedule 23.05.2016


Ответы (1)


Есть несколько способов сделать это. Первый будет смещен. Ваша формула смещения основана на этом формате.

OFFSET(REFERENCE CELL, NUMBER OF ROWS TO MOVE, NUMBER OF COLUMNS TO MOVE, HOW MANY ROWS TO RETURN FROM THE NEW POINT, HOW MANY COLUMNS TO RETURN FROM THE NEW POINT)

Позитив перемещает вас вниз или вправо. Отрицательные значения перемещают вас влево или вверх.

Итак, в вашем случае вы будете смотреть на что-то вроде:

=SUM(OFFSET($C8,0,0,1,'Parameters'!B7))

Теперь я не блокировал 8 на тот случай, если вы планировали копировать и хотели новую строку для каждой скопированной строки и не хотели, чтобы C8 всегда была одной и той же контрольной точкой. Однако есть способы обойти это и оставить $C$8, если хотите.

Теперь, сказав это, если вы просто используете смещение несколько раз, во что бы то ни стало, продолжайте, это не замедлит работу. Однако, если вы используете его довольно часто, это замедлит работу, поскольку это изменчивая функция, которая будет пересчитывать каждый раз, когда какая-либо информация изменяется на листе.

Теперь, чтобы обойти это, у нас есть варианты!

Вы также можете использовать опцию INDEX. Опцию index, поскольку она возвращает адрес ячейки за кулисами, можно использовать следующим образом:

=SUM(C8:INDEX(8:8,COLUMN(C8)+'Parameters'!B7))
person Forward Ed    schedule 23.05.2016
comment
ИЗВИНИТЕ, вам нужно будет вернуться к стилю R1C1 или вам нужно будет соответствующим образом настроить ссылки на ячейки. - person Forward Ed; 23.05.2016
comment
Спасибо за Ваш ответ. Первая вещь не заработала, но опция INDEX помогла. - person L. Starmans; 25.05.2016