Мой диапазон данных L1:L26 , и его значения представляют собой смесь чисел и строк.

L5 , L8 , L11 , L14 , L20 , L23 и L26 содержат числа. Остальные содержат строки.

Я пытаюсь получить сумму первых 3 числовых значений. Эти значения 7, 45 и 11, поэтому результат, сохраненный в M2 , должен быть 63.

Я использую следующую формулу:

{=Sum(Sum(Offset(L1, Small(If(ISNUMBER (L2:L26), Row(L2:L26)))))} 

Формула выдает ошибку.

NB: это формула массива.

1 ответ1

0

Эта новая формула определенно * работает:

{=SUM(L2:INDEX(L:L,SMALL(IF(ISNUMBER(L2:L26),ROW(L2:L26)),3)))}

Просто помните, что на этот раз она вводится как формула массива.


Глядя на вашу формулу, в дополнение к ненужному второму SUM() есть четыре основных ошибки:

  1. Между R и ( в ISNUMBER () ;
  2. SMALL() отсутствует обязательный второй параметр, 3 ;
  3. OFFSET() отсутствует обязательный третий параметр, 0 ;
  4. Второй параметр OFFSET() отключен на +1 (должен быть SMALL()-1).

И еще есть критическая ошибка: нельзя сделать OFFSET() чтобы вернуть весь массив *. Он может использоваться только для заполнения диапазона, когда массив вводится в несколько ячеек.


* По крайней мере, в Excel 2007

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