2

Почему следующая функция Excel возвращает ошибку? Ошибка возникает только тогда, когда возвращаемая ссылка больше 1 ячейки. В формуле возвращаемая ссылка имеет высоту 1 и 2 строки.

    =OFFSET($A$2,ROW(G6),0,1,2) 

1 ответ1

2

Есть два разных способа, которыми ваша формула может вернуть # ЗНАЧЕНИЕ! Ошибка здесь, в зависимости от того, как вы пытаетесь использовать его:

Во-первых, если у вас есть формула, которая возвращает массив значений, тогда будет важно, где вы поместите формулу (если не "массив введен").

Поместите эту формулу в A10 (не введенный в массив), и вы увидите значение из A8, поместите формулу в B10, и вы увидите значение из B8, поместите формулу куда-нибудь, кроме столбцов A и B, и вы получите #VALUE! Это стандартное поведение в Excel для таких функций.

Во-вторых, если вы попытаетесь "ввести массив" в формулу в горизонтальном диапазоне из 2 ячеек, чтобы увидеть оба значения (как предполагает chuff), то вы также получите #VALUE! ошибка , которая вызывается функция ROW.

Это происходит потому, что ROW() возвращает "массив" (даже если это одна строка, как здесь), который некоторые функции не обрабатывают должным образом - вы можете увидеть это, если выделить ROW(G6) и нажать клавишу F9 - вы увидите {6 } а не 6. Решение состоит в том, чтобы либо использовать только 6 в формуле, либо, предполагая, что вам нужна гибкость, обеспечиваемая ROW, вы можете заключить в другую функцию, например, SUM, например:

=OFFSET($A$2,SUM(ROW(G6)),0,1,2)

некоторые другие функции будут выполнять ту же работу, что и SUM, например, MAX, MIN..... или вы можете заменить ROW на ROWS, например

=OFFSET($A$2,ROWS(G$1:G6),0,1,2)

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