1

Я пытаюсь заменить ссылки E13:E15 жестко закодированными ссылками:

=+SUM(LN(INDIRECT("E13:E15")))

Я пробовал варианты ниже, в ячейке е16, но, похоже, ничего не работает:

=+SUM(LN(INDIRECT(ADDRESS(ROW()-3,COLUMN())&":"&ADDRESS(ROW()-1,COLUMN()))))

Я получаю # ЗНАЧЕНИЕ! ошибки. Я предполагаю, что это потому, что ссылка на массив не совсем верна, но я не уверен, что это должно быть.

Да, я использую Ctrl-Shift-Enter.

3 ответа3

1

Я нашел решение; оберните содержимое функции LN внутри INDEX.

=SUM(LN(INDEX(INDIRECT(ADDRESS(ROW()-3,COLUMN())&":"&ADDRESS(ROW()-1,COLUMN())),0,0)))

Прекрасно работает с control-shift-enter.

Может кто-нибудь объяснить, почему требуется ИНДЕКС? Это требуется, потому что это ссылка на массив?

1

Функции ROW и COLUMN возвращают "массивы", даже когда они являются отдельными значениями, например, {3}, а не просто 3, и некоторые другие функции не могут это обработать - вы можете проверить это, обернув каждую функцию ROW и COLUMN в функцию SUM, Формула должна работать (хотя ваше предложение INDEX, вероятно, проще)

Вы можете упростить использование INDIRECT с нотацией R1C1 для относительных ссылок, например

=SUMPRODUCT(LN(INDIRECT("R[-3]C:R[-1]C",0)))

Использование SUMPRODUCT вместо SUM просто исключает "запись массива".

0

Ссылка на массив верна, учитывая ваши координаты.

Вы пытаетесь найти сумму натурального логарифма диапазона ячеек. Разве вы не должны пытаться получить натуральный логарифм суммы диапазона ячеек?

Поменяйте SUM и LN в вашей формуле.

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