Como somar as primeiras n ocorrências de valores numéricos?


0

Meu intervalo de dados é L1:L26e seus valores são uma mistura de números e seqüências de caracteres.

L5, L8, L11, L14, L20, L23E L26contêm números. O resto contém seqüências de caracteres.

Estou tentando obter a soma dos 3 primeiros valores numéricos. Esses valores são 7, 45 e 11; portanto, o resultado, armazenado em M2, deve ser 63.

Estou usando a seguinte fórmula:

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

A fórmula produz um erro.

NB: É uma fórmula de matriz.


Você também pode marcar esta pergunta (e quaisquer outras que você postar) com a versão do Excel que você está usando? Algumas funções parecem funcionar de maneira diferente nas fórmulas de matriz em diferentes versões do Excel.
precisa saber é o seguinte

Atualmente estou usando o Excel versão 2016.☺
Rajesh S

Respostas:


0

Esta nova fórmula definitivamente * funciona:

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

Lembre-se, desta vez é inserido como uma fórmula de matriz.


Olhando para a sua fórmula, além do segundo desnecessário, SUM()existem quatro erros principais:

  1. Há um espaço entre o Re (dentro ISNUMBER ();
  2. SMALL()está faltando o segundo parâmetro necessário 3;
  3. OFFSET()está faltando o terceiro parâmetro necessário 0;
  4. O segundo parâmetro de OFFSET()está desativado em +1 (deve ser SMALL()-1).

E há o erro crítico: OFFSET()não pode ser feito para retornar uma matriz inteira *. Ele só pode ser usado para preencher um intervalo quando inserido na matriz em várias células.


* Pelo menos no Excel 2007


Desculpe Robin sua fórmula não variedade gerou resposta inesperada 212.864,7 em vez de 63. E se eu estou usando-o como uma fórmula de matriz, a resposta é 7.
Rajesh S

@RajeshS Oops! Me desculpe por isso. Eu testei com L14, L20, L23e L26definido como 0 (palma face) e desde a minha fórmula foi realmente soma todos os valores numéricos eu estava recebendo o resultado correto! Atualizando minha resposta com uma nova fórmula de trabalho.
precisa saber é o seguinte

Finalmente, eu tenho a solução e, com as correções, a seguinte fórmula está funcionando perfeitamente. {= Sum (Sum (Deslocamento (L1, Pequeno (If (ISNUMBER (L2: L26), Linha (L2: L26)), {1,2,3}) - 1,)))) @Robin se eu usar apenas a fórmula de uma soma considera apenas o 1º valor. 2nd Sum & -1 gerencia a ocorrência com sucesso. Raj
Rajesh S

@RajeshS Foi por isso que perguntei se você poderia marcar qual versão do Excel você estava usando. Sua solução não funciona no Excel 2007. Suspeito de ambos OFFSET()e me SUM()comporte de maneira diferente em 2007 e 2016. Por curiosidade, minha solução funciona no Excel 2016?
robinCTS

,, sua sugestão não funciona com 2013 e 2016 também. O software do aplicativo pode diferir no caso da Função, especialmente nos Códigos VBA. ☺
Rajesh S
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.