6 Replies Latest reply: Aug 10, 2018 1:46 PM by Thiago Justen Teixeira RSS

    Somar período anterior

    Carlito Costa

      Boa tarde pessoal!

       

      Fiz uma formula para somar o periodo anterior, conforme abaixo:

       

      >>>Mes anterior

      =SUM({1<MonthYear={"$(=MonthName(addmonths(Date(max(EMISSAO)),-1)))"},TIPO_MOVTO={'V','E'},ITEM=p(ITEM),PARCEIRO=p(PARCEIRO),MEDICO=p(MEDICO),NOME_CLI=P(NOME_CLI),FABRICANTE=p(FABRICANTE),CONVENIO=p(CONVENIO),NOMEVEND=p(NOMEVEND),MUNICIPIO=p(MUNICIPIO)>}[BRUTO - DCOM - DFIN])

       

      Gostaria de saber se existe alguma forma de não precisar incluir todos os campos, passível de seleção (CAMPO=p(CAMPO)), pois fazendo assim, se eu mudar/acrescentar qualquer campo na aplicação eu preciso ajustar a formula.

        • Re: Somar período anterior
          Thiago Justen Teixeira

          Carlito,

           

          Talvez assim sirva:


          Sum({<EMISSAO={">=$(=MonthStart(today (),-1))<=$(=MonthEnd(today (),-1))"},TIPO_MOVTO={'V','E'},>}[BRUTO - DCOM - DFIN])

            • Re: Somar período anterior
              Carlito Costa

              Obrigado pelo retorno, Thiago!

              Mas assim não funciona porque eu preciso selecionar um mês e terá que vir a soma deste, que já estava ok e do mês anterior. Eu busquei outras soluções aqui na comunidade e resolvi da seguinte forma:

              =SUM({<ANO=,Month=,MonthYear={"$(=MonthName(addmonths(Date(max(EMISSAO)),-1)))"},TIPO_MOVTO={'V','E'}>}[BRUTO - DCOM - DFIN])

              • Re: Somar período anterior
                Eduardo DImperio

                Thiago, tudo bem?

                Pode me explicar seu codigo pq set analysis é meu fraco.

                Sum({<EMISSAO={">=$(=MonthStart(today (),-1)) //Pelo que eu entendi aqui voce esta fazendo uma comparação de tudo o que for menor ou igual a  $(=MonthStart(today (),-1), tambem não entendo o motivo do $


                <= // o que faz essa parte é um simples menor igual tambem? Se for o caso ele entra como AND ou OR?

                 

                Sum({<EMISSAO={">=$(=MonthStart(today (),-1))<=$(=MonthEnd(today (),-1))"},TIPO_MOVTO={'V','E'},>}[BRUTO - DCOM - DFIN])

                // porque essa ultima virgula? Só erro de digitação?



                Obrigado



                  • Re: Somar período anterior
                    Thiago Justen Teixeira

                    Vamos por partes Eduardo,

                     

                    >=$(=MonthStart(today (),-1)) >> considerando a data de hoje, esse pedaço retorna 01/07/2018

                    (MonthStart de today() - 1 mês)


                    <=$(=MonthEnd(today (),-1)) >> considerando a data de hoje, esse pedaço retorna 31/07/2018

                    (MonthEnd de today() - 1 mês)


                    O dollar expansion ($) se faz necessário pois estamos querendo o resultado da função MonthStart, por exemplo. Assim, o $ retorna o valor calculado...


                    Ou seja, aqui eu defino um intervalo para a EMISSAO: 01/07/2018 até 31/07/2018. Por isso uso >= E <=.


                    Quanto a última vírgula, é erro meu mesmo hehe...não deveria estar ali. Culpa do Ctrl+C e Ctrl+V. Quis aproveitar a expressão do Carlito e só editei com a minha ideia, daí esqueci dessa bendita vírgula aí.


                      • Re: Somar período anterior
                        Eduardo DImperio

                        Essa era minha duvida, porque na minha cabeça estava que voce queria esse intervalo, mas como não vi um AND ou OR fiquei confuso. Entao sempre que não tiver um operador entre um intervalo sera considerado E? e se eu quisesse Ou como ficaria?

                         

                        O dollar sempre vai preceder uma função?

                          • Re: Somar período anterior
                            Thiago Justen Teixeira

                            Eduardo,

                             

                            Veja, o dollar sign precede uma função dentro do set...mas não necessariamente precisaria aparecer num intervalo numérico. Exemplo: Quero somar vendas cujo dia de venda (independente de mês ou ano) seja entre 5 e 10:

                             

                            Sum({<DiaVenda={">=5<=10"}>}ValorVenda)

                             

                            Nesse caso, basta setar o intervalo e pronto (considerando que a utilização de aspas simples e duplas já seja fácil pra você, é isso).