Excel 2010 - mais de 1 cálculo dentro de uma instrução IF ()

2

Eu tenho uma situação em que preciso calcular os valores de envio com base no comprimento da cadeia de suprimentos. Fácil, no entanto, preciso ter instâncias em que um valor maior seja necessário com base em critérios de data específicos.

Meu exemplo é o seguinte:

  • Shipvalue = 100
  • Date1 = 1/1/2013 (Jan) - despachar 50% mais que o normal
  • Date2 = 2/1/2013 (Fev) - despachar 25% mais que o normal
  • Date3 = 3/1/2013 (Mar) - despachar 25% mais que o normal

    Supply chain length é:

  • de junho a outubro de 100 dias
  • novembro - março 140 dias
  • de abril a junho de 100 dias

A questão que tenho é que, como há um aumento no número de dias, minha fórmula:

IF( Date1-(Supply chain length + any extra days)=today's date,
    shipvalue+(shipvalue X 50%),
   IF( Date2-(Supply chain length + any extra days)=today's date,
       shipvalue+(shipvalue x 50%)
      IF( Date2-(Supply chain length + any extra days)=today's date,
           shipvalue+(shipvalue x 50%),
          IF( preceding cell<>0,shipvalue,
             0)
         )
      )
  )

Agora, o problema é que, se o comprimento da cadeia de suprimentos aumenta, a fórmula perde tudo, menos o primeiro aumento. Então, pensei em adicionar uma variável que seria incrementada e verificada toda vez que você aumentasse o valor do frete.

Então, como faço o cálculo para o valor de envio aumentado e defino a variável em uma parte da instrução IF?

    
por Da Bajan 06.07.2012 / 14:59

1 resposta

1

Você precisa procurar escrever uma instrução Select Case no VBA na faixa de opções do desenvolvedor. A partir de agora você tem 4 declarações se todas tentando trabalhar umas com as outras e como você está descobrindo, isso só leva a problemas. Se você começar a escrever este código dentro do VBA, você terá muito poder de codificação para realizar o que deseja fazer.

Private Function shippingvalue()
Select Case cell.value
    Case Date1-(Supply chain length + any extra days)
        today's date,shipvalue+(shipvalue X 50%)
    Case your next case
        your next assigned value
End Select
End Function
    
por 06.07.2012 / 17:03