У меня есть 3 листа, скажем, они "sheet1", "sheet2" и "datasheet". На "sheet2" есть «$ A $ 3» в ячейке B3 (это генерируется динамически), а на "sheet1" я хочу создать функцию (например, сумму или среднее) на основе данных из "таблицы данных", используя $ A $ 3 в качестве начальный ряд до последнего ряда. Как бы я это сделал? Слишком много вложенных функций, я постоянно получаю ошибки разбора:

=SUM('datasheet'!INDIRECT('sheet2'!B3 & ":" & 'datasheet'!A))

В основном, с точки зрения псевдокода:

=SUM(datasheet[cell ID written on B3 of "sheet2"]:[last row of "datasheet"])

1 ответ1

1

Если столбец статический, всегда A, тогда в B3 на sheet2 просто поместите начальный номер строки и используйте эту формулу:

=SUM(INDEX('datasheet'!A:A,Sheet2!$B$3):INDEX('datasheet'!A:A,MATCH(1E+99,'datasheet'!A:A)))

Он будет суммироваться от указанной строки до последней ячейки с номером в ней.


Другой вариант, так как SUM игнорирует любые нечисловые значения, которые формула может быть сокращена до:

=SUM(INDEX('datasheet'!A:A,Sheet2!$B$3):'datasheet'!A65000)

Измените 65000 на смехотворно большое число, которое никогда не будет достигнуто в вашем наборе данных.

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