none
Usar função com argumentos com células não adjacentes RRS feed

  • Pergunta

  • Caros,

    Tenho o seguinte problema, para qual não encontrei solução ao consultar algumas fontes na internet.

    Preciso aplicar uma função (SOMASE, no caso) sobre valores em células não adjacentes. A função leva um argumento. Tanto células não adjacentes como argumentos para a função são separados por ';'. Portanto, se eu preciso somar, por ex, A1, C1, E1 e G1 com condição de somente somar valores positivos, a função devia ser:

    = SOMASE(A1;C1;E1;G1;">0")

    Esse tipo de sintaxe produz um erro "Você inseriu número excessivo para esta função." - e realmente não sei como Excel poderia saber onde as referências às células a serem usadas termina e o argumento indicando a condição começa. Cada das células é tratada como se fosse um único argumento. Tentei usar parênteses e aspas para ver se isso ajudaria Excel a agrupar as referências para as células como um argumento só, mas só dá outros erros de sintaxe. Também tentei separar os argumentos para a função com vírgula, como vi em algumas páginas, mas isso não funciona nesta versão.

    Não vi nenhuma referência para este tipo de problema nas páginas de suporte de Office. A documentação diz, inclusive, que deve funcionar para células adjacentes e não adjacentes, mas não dá exemplo deste último caso. Há algo óbvio que não estou vendo?

    Obrigado

    segunda-feira, 15 de abril de 2019 17:38

Todas as Respostas

  • Caro PeterCla,

    A função SOMASE utiliza 3 argumentos e estes são separados por ponto e vírgula, sendo assim, ao introduzir ponto e virgula para separar intervalos não vai funcionar pois se entende que você introduziu o próximo argumento que seria o critério. O uso de virgulas é comum em foruns mas não são utilizados no Excel. O uso de dois-pontos separaria o intervalo, ainda que você delimitasse a separação adjcente como por exemplo A1:A1:C1:C1:E1:E1, a separação seria apenas a nível visual realçando as células, pois ao realizar o cálculo o Excel somaria tudo entre o intervalo inicial e final. Poderia, neste caso, usar a fórmula =SOMA(SE(A1>0;A1;0)+SE(C1>0;C1;0)+SE(E1>0;E1;0)+SE(G1>0;G1;0)).

    terça-feira, 16 de abril de 2019 19:43
  • Conforme já explicado na resposta acima, não é possível inserir mais argumentos do que o esperado para esta função. Duas alternativas simples para este caso são a utilização de condicionais manuais, conforme exposto na resposta acima, ou a utilização da função "SOMASES", que permite até 127 critérios agrupados.

    Filipe Magno

    sábado, 20 de abril de 2019 14:24
  • Agradeço pela resposta. É claro que, se a solução é simples ou não, depende do número de células não-adjacentes que devem ser condicionalmente somados. 

    Somente complementando. Estranho que a última vez que consultei a ajuda da função, afirmava: "Use a função SOMASE para somar os valores em um intervalo (intervalo: duas ou mais células em uma planilha. As células de um intervalo podem ser adjacentes ou não adjacentes.) " Agora, no suporte online, vejo que não há mais esta afirmação, só diz 'intervalo' sem especificar se é de células adjacentes ou não adjacentes. Na verdade, na documentação de excel, 'intervalo' é usado para referir tanto a grupos de valores adjacentes como não adjacentes. Além disso, na versão em inglês de Excel daria para usar a função com células adjacentes, já que lá os argumentos são separados por vírgulas e não ponto-vírgulas. Não dá para fazer isso em português porque a vírgula já é usada para separar decimais, mas a opção por usar ponto-vírgula para separar argumentos de funções tem como consequência adversa que não dá mais para usar células não adjacentes em um intervalo. Ou seja, SOMASE tem uma funcionalidade reduzida em comparação com SUMIF . Isso, para mim, é uma grande falha de desenho em Excel. 

    Novamente, obrigado pelo 'workaround'.

    quinta-feira, 25 de abril de 2019 18:56
  • SOMASES não ia adiantar, pela mesma razão que SOMASE falha. SOMASES leva argumentos nesta ordem: (1) intervalo de valores a serem somados; (2) intervalo correspondendo aos valores a serem testados contra uma condição; (3) condição para intervalo em (2); (4) outro intervalo com valores para testar; (5) condição para (4), etc. Com células não adjacentes, Excel não tem como saber onde o intervalo (1) termina e onde (2) começa. Se dá para passar diferentes intervalos, não são intervalos com valores a serem somados, mas com valores a serem testados.
    quinta-feira, 25 de abril de 2019 19:01