Anita a une feuille de calcul avec plus de 10 000 lignes. Chaque ligne représente un contrat individuel. Chaque contrat a une date de début (colonne A) et une date de fin (colonne B). Elle a besoin d’un moyen de lister dans les colonnes C, D, E, etc.

les mois individuels couverts par le contrat. Par exemple, si la colonne A contient le 1er juillet 2009 et la colonne B le 30 septembre 2009, elle a besoin que la colonne C contienne le 09 juillet, la colonne D le 09 août et la colonne E le 09 septembre. Quelles que soient les formules utilisées, il faut tenir compte du contrat. longueurs qui peuvent être assez différentes.

Il existe plusieurs façons de mener à bien une telle tâche. Il est possible d’utiliser des colonnes intermédiaires qui spécifient des choses comme le mois de départ et le nombre de mois de chaque contrat, mais il s’avère que de telles colonnes intermédiaires ne sont pas nécessaires. Par exemple, en supposant que vos contrats commencent à la ligne 2, vous pouvez placer la formule suivante dans la cellule C2:

=TEXT(A2,"mmm yy")

Ensuite, en commençant dans la cellule D2, vous pouvez placer cette formule:

=IF(DATE(YEAR($A2),MONTH($A2)+COLUMNS($D2:D2), DAY($A2))>$B2,"",TEXT(DATE(YEAR($A2),MONTH($A2)

+COLUMNS($D2:D2),DAY($A2)),"mmm yy"))

Il s’agit d’une formule, et elle utilise la position des cellules contenant la formule, ainsi que la date de début du contrat, pour calculer, essentiellement, le mois de décalage à partir de ce mois de départ. La formule peut être copiée vers la droite (colonnes E, F, G, etc.) pour autant que nécessaire pour afficher tous les mois et années.

Le seul inconvénient de la formule est que si la date de fin du contrat est antérieure dans le mois à la date de début du contrat, le dernier mois n’est pas affiché. Ainsi, si le contrat débute le 12 juin 2012 et se termine le 05 février 2013, alors le dernier mois (février) ne sera pas affiché par la formule. Vous pouvez, à la place, utiliser la formule suivante dans la cellule C2 et la copier à droite autant que nécessaire:

=IF(DATE(YEAR($A2),MONTH($A2)+COLUMN()-2,0)

>DATE(YEAR($A2),MONTH($B2)+1,0),"",TEXT(DATE (YEAR($A2),MONTH($A2)+COLUMN()-2,0),"mmm yy"))

Cette formule s’appuie également sur les colonnes dans lesquelles elle réside, en les utilisant pour calculer un décalage à partir de la date de début du contrat. La formule fonctionnera parfaitement, quelle que soit la relation entre les dates de début et de fin du contrat.

Si vous ne souhaitez pas vous fier au positionnement des colonnes, vous pouvez adopter une autre approche. Placez la formule suivante dans la cellule C2:

=(A2)

Ensuite, dans la cellule D2, placez la formule suivante:

=IF($B2>C2,EOMONTH(C2,1),"")

Copiez la formule dans D2 vers la droite autant de cellules que nécessaire, puis formatez toutes ces cellules (y compris C2 et D2) en tant que dates qui affichent uniquement le mois et l’année. La formule examinera B2 (la date de fin du contrat) pour voir si elle est supérieure à C2. Si tel est le cas, la formule renvoie le numéro de série du dernier jour du mois suivant de la série. Si ce n’est pas le cas, un espace («  ») est renvoyé.

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (5406) ​​s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Determining_Month_Names_for_a_Range_of_Dates [Détermination des noms de mois pour une plage de dates].