Genyaa » 16 окт 2006, 19:28
Irbis писал(а):Разве в функцию не значения самих ячеек передаются?
В Excel на уровне формул в ячейках обычно передаются именно ссылки (адреса) на ячейки и области ячеек. Но в случае несоответствия типов передаваемых данных в аргументах, Excel преобразует данные, так, чтобы функция смогла работать. Именно поэтому, хотя в функциях, созданных пользователем, может быть указано значение переменной в качестве входящего аргумента функции, однако при вызове этой функции на входе ее может быть указана ссылка на ячейку - в этом случае Excel сопоставляет типы данных аргументов и сам решает, что вместо ссылки на ячейку нужно передать ее значение.
Точно так же, в качестве результата довольно многие встренные функции Excel возвращают не значение, а ссылку (адрес). Так функция ИНДЕКС возвращает именно ссылку, а не значение ячейки. Поэтому такую функцию можно использовать в качестве аргумента для передачи в другую функцию диапазона ячеек. Например, так:
=СУММ(A1:ИНДЕКС(A2:A500;B2))
- в этом случае область (размер диапазона) суммирования будет зависеть от того, какое значение в ячейке B2.
[quote="Irbis"]Разве в функцию не значения самих ячеек передаются?[/quote]
В Excel на уровне формул в ячейках обычно передаются именно ссылки (адреса) на ячейки и области ячеек. Но в случае несоответствия типов передаваемых данных в аргументах, Excel преобразует данные, так, чтобы функция смогла работать. Именно поэтому, хотя в функциях, созданных пользователем, может быть указано значение переменной в качестве входящего аргумента функции, однако при вызове этой функции на входе ее может быть указана ссылка на ячейку - в этом случае Excel сопоставляет типы данных аргументов и сам решает, что вместо ссылки на ячейку нужно передать ее значение.
Точно так же, в качестве результата довольно многие встренные функции Excel возвращают не значение, а ссылку (адрес). Так функция ИНДЕКС возвращает именно ссылку, а не значение ячейки. Поэтому такую функцию можно использовать в качестве аргумента для передачи в другую функцию диапазона ячеек. Например, так:
=СУММ(A1:ИНДЕКС(A2:A500;B2))
- в этом случае область (размер диапазона) суммирования будет зависеть от того, какое значение в ячейке B2.