Usuário com melhor resposta
Somar Produto com Vetor de Intervalor x Vetor de Critério

Pergunta
-
A função abaixo, realiza quase que idealmente o calculo que necessito porém tenho o seguinte problema:
Onde se lê "A4" na célula é o código de um item porém de b4 à z4 tenho códigos equivalentes para o mesmo item, gostaria de algo como "A4:Z4" no lugar porém dá erro.
=SOMARPRODUTO((MOV_SALD_TERC!$A:$A=A4)*((MOV_SALD_TERC!$F:$F="Rem")+(MOV_SALD_TERC!$F:$F="Rem S/M"))*(MOV_SALD_TERC!$B:B<=$AF$1);MOV_SALD_TERC!$D:$D)
Tentei incluir no cálculo a condição ou através do caracter "+" na fórmula (que ficou gigante e esta abaixo). Tenho 100 células que recebem a fórmula, ou seja, 100 itens e na planilha de relatório de onde puxo os dados e realizo a soma tem cerca de 80000 linhas. Ficou lento d+!!!! Tenho como agilizar o cálculo otimizando a fórmula abaixo?
=SOMARPRODUTO(((MOV_SALD_TERC!$A:$A=A4)+(MOV_SALD_TERC!$A:A=B4)+(MOV_SALD_TERC!$A:A=C4)+(MOV_SALD_TERC!$A:A=D4)+(MOV_SALD_TERC!$A:A=E4)+(MOV_SALD_TERC!$A:A=F4)+(MOV_SALD_TERC!$A:A=G4)+(MOV_SALD_TERC!$A:A=H4)+(MOV_SALD_TERC!$A:A=I4)+(MOV_SALD_TERC!$A:A=J4)+(MOV_SALD_TERC!$A:A=K4)+(MOV_SALD_TERC!$A:A=L4)+(MOV_SALD_TERC!$A:A=M4)+(MOV_SALD_TERC!$A:A=N4)+(MOV_SALD_TERC!$A:A=O4)+(MOV_SALD_TERC!$A:A=P4)+(MOV_SALD_TERC!$A:A=Q4)+(MOV_SALD_TERC!$A:A=R4)+(MOV_SALD_TERC!$A:A=S4)+(MOV_SALD_TERC!$A:A=T4)+(MOV_SALD_TERC!$A:A=U4)+(MOV_SALD_TERC!$A:A=V4)+(MOV_SALD_TERC!$A:A=W4)+(MOV_SALD_TERC!$A:A=X4)+(MOV_SALD_TERC!$A:A=Y4)+(MOV_SALD_TERC!$A:A=Z4))*((MOV_SALD_TERC!$F:$F="Rem")+(MOV_SALD_TERC!$F:$F="Rem S/M"))*(MOV_SALD_TERC!$B:B<=$AF$1);MOV_SALD_TERC!$D:$D
Socorro! ...rs
Respostas
-
Olá Felipe,
Desculpe pela demora, acabei me sobrecarregando de atividades.
Resolvi o problema trocando as equivalências dos códigos com um procv na origem dos dados com uma tabela auxiliar. Assim o tempo de cálculo da planilha foi otimizado para menos de 1 min.
De qualquer forma obrigado pela atenção e ajuda.
Att,
Cristiano
- Marcado como Resposta Tomadon quarta-feira, 22 de janeiro de 2014 11:06
Todas as Respostas
-
-
A fórmula abaixo é matricial, portanto, deve ser entrada com Ctrl+Shift+Enter:
=SE(SOMA(CONT.SE(MOV_SALD_TERC!$A:$A;A4:Z4));1;0)*...(colunas que multiplicarão a condição)
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
Olá Felipe, obrigado pelo retorno e atenção.
Não deu certo, pois me retornou o valor 1.
Minha Fórmula ficou assim, os valores que quero somar estão na coluna D, porém quero valores onde na coluna B sejam menorores do que a data em AF1 com mais 1 critério de que sejam valores que também tenham na coluna F ou "Rem" ou Rem S/M".
=SE(SOMA(CONT.SE(MOV_SALD_TERC!$A:$A;A4:Z4));1;0)*((MOV_SALD_TERC!$F:$F="Rem")+(MOV_SALD_TERC!$F:$F="Rem S/M"))*(MOV_SALD_TERC!$B:B<=$AF$1)*(MOV_SALD_TERC!$D:$D)
Onde posso estar errando?
Att, Cristiano
-
Pensei em algo como
=SOMASES(MOV_SALD_TERC!$D:$D;MOV_SALD_TERC!$A:$A;$A4;MOV_SALD_TERC!$B:$B;"<="&$AF$1;MOV_SALD_TERC!$F:$F;"Rem*")
resulta em 1012
Só que quando Substituo $A4 por $A4:$Z4
resulta em 0 (Incorreto, pois se acrescentei o intevalo o valor de 1012 deveria ser incrementado)
Seria satisfatório porém não ideal se você possivel inserir um ou =SOMASES(MOV_SALD_TERC!$D:$D;MOV_SALD_TERC!$A:$A;OU($A4;$B4:$C4... e asism por diante.
mas também resultaria em 0.
-
Experimente:
=SE(SOMA(CONT.SE(MOV_SALD_TERC!$A:$A;A4:Z4)*((MOV_SALD_TERC!$F:$F="Rem")+(MOV_SALD_TERC!$F:$F="Rem S/M"))*(MOV_SALD_TERC!$B:B<=$AF$1));1;0)*(MOV_SALD_TERC!$D:$D)
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
-
-
-
Olá Felipe,
Desculpe pela demora, acabei me sobrecarregando de atividades.
Resolvi o problema trocando as equivalências dos códigos com um procv na origem dos dados com uma tabela auxiliar. Assim o tempo de cálculo da planilha foi otimizado para menos de 1 min.
De qualquer forma obrigado pela atenção e ajuda.
Att,
Cristiano
- Marcado como Resposta Tomadon quarta-feira, 22 de janeiro de 2014 11:06