Anita tiene una hoja de trabajo con más de 10,000 filas. Cada fila representa un contrato individual. Cada contrato tiene una fecha de inicio (columna A) y una fecha de finalización (columna B). Necesita una forma de enumerar en las columnas C, D, E, etc.

los meses individuales cubiertos por el contrato. Por ejemplo, si la columna A contiene el 1 de julio de 2009 y la columna B contiene el 30 de septiembre de 2009, necesita que la columna C contenga el 09 de julio, la columna D contenga el 09 de agosto y la columna E contenga el 09 de septiembre. Las fórmulas que se utilicen deben adaptarse al contrato. longitudes que pueden ser bastante diferentes.

Hay varias formas de realizar esta tarea. Es posible usar algunas columnas intermedias que especifican cosas como el mes de inicio y la cantidad de meses de cada contrato, pero resulta que tales columnas intermedias no son necesarias. Por ejemplo, suponiendo que sus contratos comiencen en la fila 2, podría colocar la siguiente fórmula en la celda C2:

=TEXT(A2,"mmm yy")

Luego, comenzando en la celda D2, podría colocar esta fórmula:

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

Esta es una fórmula y usa la posición de las celdas que contienen la fórmula, junto con la fecha de inicio del contrato, para calcular, básicamente, el mes de compensación desde ese mes de inicio. La fórmula se puede copiar hacia la derecha (columnas E, F, G, etc.) hasta donde sea necesario para mostrar todos los meses y años.

El único inconveniente de la fórmula es que si la fecha de finalización del contrato es anterior en el mes a la fecha de inicio del contrato, no se muestra el último mes. Por lo tanto, si el contrato comienza el 12 de junio de 2012 y finaliza el 5 de febrero de 2013, la fórmula no mostrará el último mes (febrero). En su lugar, podría usar la siguiente fórmula en la celda C2 y copiarla a la derecha tanto como sea necesario:

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

Esta fórmula también se basa en las columnas en las que reside, usándolas para calcular una compensación desde la fecha de inicio del contrato. La fórmula funcionará bien, independientemente de la relación entre las fechas de inicio y finalización del contrato.

Si no desea depender del posicionamiento de las columnas, existe otro enfoque que puede adoptar. Coloque la siguiente fórmula en la celda C2:

=(A2)

Luego, en la celda D2 coloque la siguiente fórmula:

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

Copie la fórmula en D2 a la derecha tantas celdas como sea necesario y luego formatee todas esas celdas (incluidas C2 y D2) como fechas que muestren solo el mes y el año. La fórmula buscará en B2 (la fecha de finalización del contrato) para ver si es mayor que C2. Si es así, la fórmula devuelve el número de serie del último día del mes siguiente en serie. Si no es así, se devuelve un espacio en blanco («»).

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (5406) ​​se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

link: / excelribbon-Determining_Month_Names_for_a_Range_of_Dates [Determinación de los nombres de los meses para un rango de fechas].