Pergunta

Estou criando um "one-período" modelo financeiro em Excel -. Ou seja, um modelo onde as fórmulas são consistentes em cada coluna, assim você pode copiar / colar / estendê-los conforme desejado

Estou saindo pressupostos do modelo em uma folha separada. Por exemplo, eu tenho um monthly_sales célula nomeada; isso é quantos novos clientes eu adicionar a cada mês. As fórmulas em seguida, parecido com este:

Pressupostos folha 1.0

      A             B                  
1 | Monthly sales | 6                 |

Projeções folha 1.0

     A               B     C                   D                   E                  
1 |               |     | August 2009       | September 2009    | October 2009
2 | # Customers   |     | =B2+monthly_sales | =C2+monthly_sales | =D2+monthly_sales

Assim, em agosto, eu vou ter 6 clientes; em setembro, 12 clientes; em outubro, 18 clientes. Por enquanto, tudo bem. Mas meus primeiros clientes vão precisar de mais recursos para o desenvolvimento, certo? Eu gostaria de acrescentar mais alguns limites.

Pressupostos folha 2.0

      A                       B                  
1 | Monthly sales           | 6                 |
2 | Early customers         | 3                 |
3 | Early dev cycle, months | 2                 |

Em Inglês: Os 3 primeiros clientes vão tomar cada 2 meses de tempo de desenvolvimento. De agosto a novembro, eu tenho um cliente. Em dezembro, eu adicionar um segundo cliente, e em abril, um terço. Em agosto de 2010, eu sou através do early_customers, e então eu posso começar a crescer 6 por mês.

Eu sei como fazer isso com VBA; Eu posso escrever uma função definida pelo usuário que verifica meses anteriores, e eu alterar a fórmula # Customers para algo como

=B2+min(max_customers_this_month(),monthly_sales)

Mas eu suspeito que há alguma maneira de representar este conceito de forma declarativa em uma fórmula adequada Excel. Existe?

Foi útil?

Solução

Há provavelmente uma maneira mais concisa de fazer isso, mas aqui está uma solução. Digite 1 para B2 e o seguinte em C2 (e copiar para as seguintes colunas):

=IF(
    B2 > Early_customers,
    B2 + Monthly_sales,
    IF(
       OR(
          C1 - $B1 < Early_dev_cycle,
          OFFSET(B2, 0, MAX(-Early_dev_cycle + 1, $B1 - B1)) <> B2 
         ),
       B2,
       B2 + IF(
               B2 < Early_customers,
               1,
               Monthly_sales
              )
      )
   )

Note que esta solução assume que linha 1 é preenchida com números para os meses em vez de com datas. Para usar datas, você vai ter que usar algo mais sofisticado do que a subtração simples para as duas subtrações na cláusula OR que envolvem $ B1.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top