Question

Je crée une "période unique". modèle financier dans Excel, c’est-à-dire un modèle dans lequel les formules sont cohérentes dans chaque colonne, vous pouvez donc les copier / coller / les étendre à votre guise.

Je décompose les hypothèses du modèle dans une feuille séparée. Par exemple, j'ai une cellule nommée mensuel_sales ; c'est le nombre de nouveaux clients que j'ajoute chaque mois. Les formules ressemblent alors à ceci:

Feuille d’hypothèses 1.0

      A             B                  
1 | Monthly sales | 6                 |

Fiche de projections 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

Donc en août, j'aurai 6 clients; en septembre, 12 clients; en octobre, 18 clients. Jusqu'ici tout va bien. Mais mes premiers clients auront besoin de davantage de ressources de développement, non? Je ferais mieux d'ajouter quelques limites.

Feuille d’hypothèses 2.0

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

En anglais: Les 3 premiers clients prendront chacun 2 mois de temps de développement. D'août à novembre, j'ai 1 client. En décembre, j'ajoute un deuxième client et en avril un troisième. En août 2010, je suis passé à early_customers , puis je peux commencer à augmenter de 6 par mois.

Je sais comment faire cela avec VBA; Je peux écrire une fonction définie par l'utilisateur qui vérifie les mois précédents et je modifie la formule # Clients à quelque chose comme

=B2+min(max_customers_this_month(),monthly_sales)

Mais je soupçonne qu’il est possible de représenter ce concept de manière déclarative dans une formule Excel appropriée. Y a-t-il?

Était-ce utile?

La solution

Il existe probablement un moyen plus concis de procéder, mais voici une solution. Entrez 1 dans B2 et le suivant dans C2 (et copiez-le dans les colonnes suivantes):

=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
              )
      )
   )

Notez que cette solution suppose que la ligne 1 contient des nombres pour les mois plutôt que des dates. Pour utiliser les dates, vous devez utiliser quelque chose de plus sophistiqué que la simple soustraction pour les deux soustractions de la clause OR qui impliquent $ B1.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top