¿Cómo obtengo la cantidad de meses que se superponen entre un par de fechas y cualquier período de junio a noviembre de cualquier año?

¿Cómo obtengo la cantidad de meses que se superponen entre un par de fechas y cualquier período de junio a noviembre de cualquier año?

El rango1 es del 1/6/2021 al 30/11/2021 y el rango2 es del 15/8/2021 al 1/3/2022 (el rango2 podría ser cualquier otro rango de fechas). Quiero ver cuántos meses de Range2 se cruzan con Range1. La respuesta debería ser 4 porque noviembre, octubre, septiembre y parte de agosto se cruzan con Range2. Y en mi problema aunque fueran 3 meses y 3 días diría 4 meses completos. Sin embargo, no cuento el primer día del mes como un mes completo.

Por ejemplo, Rango1 es 1/6/2021 - 1/11/2021 y Rango2 es 1/2/2021 - 1/10/2021, entonces la respuesta debe ser 4 porque junio, julio, agosto y septiembre se cruzan con Rang1. Tenga en cuenta que no estoy contando el 1/10/2021, por lo que la respuesta no podría ser 5.

Esto ya fue resuelto por un usuario útil.Scott Craner

La fórmula que utilizamos es =COUNT(UNIQUE(FILTER(MES(SEQUENCE(P60-P59,,P59)),ISNUMBER(MATCH(SEQUENCE(P60-P59,,P59),SEQUENCE(E81-E80,,E80),0 )),""))))

Funciona perfectamente, pero necesito que funcione ahora para comparar un conjunto de fechas como 1/2/2021 - 1/10/2021 y CUALQUIER período de junio a noviembre de CUALQUIER año. En la fórmula utilizada en este momento, no funciona para encontrar meses superpuestos del 1/2/2022 al 1/7/2022 ya que del 1/2/2022 al 1/7/2022 no se superpone con el 1/6/2021. - 30/11/2021. ¿Puedo encontrar el número de meses coincidentes entre cualquier conjunto de fechas y cualquier período del 1/6/## al 30/11/## de cualquier año?

Respuesta1

Lo intentaré... mi enfoque para encontrar la superposición de cualquier conjunto de dos rangos de fechas:

  1. Convierta los rangos de fechas a - b y c - d al número de meses desde 1900
  2. Llamemos a estos recuentos de meses a' - b' y c' - d'
  3. Entonces a' =(YEAR(a)-1900)*12 + MONTH(a), por ejemplo, con a=1/1/2020 entonces a'=1441
  4. Para ignorar el primer día de cada mes, agregue -(DAY(a)<2)a la fórmula anterior
  5. Suponiendo b' > a' y d' > c', entonces la superposición es MIN(d',b')-MAX(c',a')+1
  6. Si lo anterior es negativo, no hay superposición

Tenga en cuenta que estoy usando variables de álgebra en lugar de direcciones de celda para simplificar las matemáticas.

PD. Si desea ser un nerd en Excel, use el operador de intersección (un carácter de espacio) para intersectar rangos de columnas (que representan los meses desde 1900) en una columna en blanco, luego cuente el número de espacios en blanco, por ejemplo, =COUNTBLANK(Z1441:Z1446 Z1443:Z1447)daría 4. Esto podría ser realmente útil. para múltiples rangos de fechas, ya que puede intersectar cualquier número de rangos de Excel. Para convertir el rango de fechas del recuento de meses (a' a b') en un rango de filas, utilice =INDEX(Z:Z,a'):INDEX(Z:Z,b')para que finalmente el recuento de superposición sea =COUNTBLANK(INDEX(Z:Z,a'):INDEX(Z:Z,b') INDEX(Z:Z,c'):INDEX(Z:Z,d')).

información relacionada