Excel: Формула массива, которая возвращает вектор {1;2;3;...;n} заданной длины (n)

Excel: Формула массива, которая возвращает вектор {1;2;3;...;n} заданной длины (n)

Я создаю сложную формулу массива и хочу избавиться от зависимости от области, которая представляет собой вектор, {1;2;3;...;n}где nесть то же число, что и номер строки в другой области, используемой в формуле.

По сути, у меня есть некоторая (длинная и сложная) формула массива ( AF) со ссылками на целые столбцы таблицы A, и Bя хочу избавиться от ссылки на столбец A.

Если нет возможности изменить количество строк в таблице, ссылку на строку Aможно заменить на {1;2;3;4}(для 4 строк в таблице). НО количество строк меняется время от времени.

+---+-----+--------------+
| A |  B  |      C       |
+---+-----+--------------+
| 1 | 105 | =AF([A],[B]) |
| 2 |  55 | =AF([A],[B]) |
| 3 |  80 | =AF([A],[B]) |
| 4 |  11 | =AF([A],[B]) |
+---+-----+--------------+

Можете ли вы построить эту формулу, имея только входные данные = строку B (без использования дополнительных таблиц)?

Большое спасибо!

PS: В текущих версиях Excel эта функция SEQUENCEдоступна, но в версии 2013 ее нет, и я прошу вашей помощи.

решение1

О, это было так просто... Мне стыдно. Я (ошибочно) предполагал, что ROWне может вернуть вектор. Но может.

Формула может выглядеть так:

  • Это решение относится только к столбцу B (диапазон данных):
    {=ROW([B])-ROW(INDEX([B]),1))+1}

  • Или моле элегантно (используя заголовок таблицы в качестве ссылки):
    {=ROW([B])-ROW(TableName[#Headers])}
    Где TableNameнаходится название таблицы.

  • Или без именованных диапазонов и таблиц:
    {=ROW($B$2:$B$#)-ROW($B$1)}
    Где A#находится последняя ячейка с данными в строкеB

  • Или очень простой пример (таблицы нет, а данные начинаются с B1):
    {=ROW($B$1:$B$#)}
    Где A# — последняя ячейка с данными в строкеB

PS: У меня нет английской версии Excel, поэтому перевод терминов может быть неточным. Не стесняйтесь меня поправлять.

Связанный контент