Cálculo del primer martes (Microsoft Excel)
Christine necesita una forma de calcular el primer martes de cualquier mes.
Entonces, dado un mes y un año, necesita obtener la fecha de ese primer martes.
Hay bastantes fórmulas diferentes que puede utilizar para lograr el resultado deseado. La mayoría de los enfoques usan la función WEEKDAY de alguna manera porque puede devolver un valor numérico que representa el día de la semana para cualquier fecha determinada. Suponiendo que pone un mes en la celda A1 (1 a 12) y un año de cuatro dígitos en la celda A2, las siguientes fórmulas devolverán una fecha para el primer martes del mes. (He organizado las fórmulas en orden de longitud, de la más larga a la más corta.)
=DATE(A2,A1,1)+IF(WEEKDAY(DATE(A2,A1,1))=3,0,IF(WEEKDAY(DATE(A2,A1,1))>3,7-WEEKDAY(DATE(A2,A1,1))+3,3-WEEKDAY(DATE(A2,A1,1)))) =IF(3-WEEKDAY(DATE(A2,A1,1))>=0,DATE(A2,A1,1)+3-WEEKDAY(DATE(A2,A1,1)),DATE(A2,A1,1)+7+3-WEEKDAY(DATE(A2,A1,1))) =DATE(A2,A1,1)+IF(3-WEEKDAY(DATE(A2,A1,1))>=0,3-WEEKDAY(DATE(A2,A1,1)),10-WEEKDAY(DATE(A2,A1,1))) =DATE(A2,A1,1)-WEEKDAY(DATE(A2,A1,1),1)+3+IF(WEEKDAY(DATE(A2,A1,1),1)>3,7,0) =DATE(A2,A1,1)+8-DAY(DATE(A2,A1,1))-WEEKDAY(DATE(A2,A1,1)-DAY(DATE(A2,A1,1))-2) =DATE(A2,A1,1)+3-WEEKDAY(DATE(A2,A1,1))+(1-(3>=WEEKDAY(DATE(A2,A1,1))))*7 =DATEVALUE(A2&"/"&A1&"/1")+MOD(10-WEEKDAY(DATEVALUE(A2&"/"&A1&"/1")),7) =DATE(A2,A1,MATCH(TRUE,WEEKDAY(DATE(A2,A1,{1,2,3,4,5,6,7}))=3,0)) =DATE(A2,A1,MOD(10-WEEKDAY(DATE(A2,A1,1)),7)+1) =DATE(A2,A1,1)+MOD(3-WEEKDAY(DATE(A2,A1,1)),7) =DATE(A2,A1,1)+7-WEEKDAY(DATE(A2,A1,1),13) =DATE(A2,A1,8-WEEKDAY(DATE(A2,A1,1),13)) =DATE(A2,A1,7)-MOD(DATE(A2,A1,7)-3,7) =DATE(A2,A1,8-WEEKDAY(DATE(A2,A1,5))) =DATE(A2,A1,8)-WEEKDAY(DATE(A2,A1,5))
Si le resulta más conveniente especificar una fecha dentro del mes que desea evaluar, puede modificar las fórmulas para tenerlo en cuenta. Las siguientes son solo algunas fórmulas que podría usar si coloca una fecha real en la celda A1:
=DATE(YEAR(A1),MONTH(A1),MATCH(TRUE,WEEKDAY(DATE(YEAR(A1),MONTH(A1),{1,2,3,4,5,6,7}))=3,0)) =DATE(YEAR(A1),MONTH(A1),MOD(10-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1)),7)+1) =DATE(YEAR(A1),MONTH(A1),1)+MOD(3-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1)),7) =DATE(YEAR(A1),MONTH(A1),1)+7-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1),13) =DATE(YEAR(A1),MONTH(A1),8-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1),13)) =DATE(YEAR(A1),MONTH(A1),7)-MOD(DATE(YEAR(A1),MONTH(A1),7)-3,7) =DATE(YEAR(A1),MONTH(A1),8-WEEKDAY(DATE(YEAR(A1),MONTH(A1),5))) =DATE(YEAR(A1),MONTH(A1),8)-WEEKDAY(DATE(YEAR(A1),MONTH(A1),5)) =A1-DAY(A1)+7-WEEKDAY(A1-DAY(A1)-1,3)
Por último, es posible que desee considerar un enfoque basado en macros. La siguiente es una función definida por el usuario que se da cuenta rápidamente del primer martes:
Function FirstTuesday(M As Integer, Y As Integer) As Date Dim dResult As Date dResult = DateSerial(Y, M, 1) Do While Weekday(dResult) <> vbTuesday dResult = DateAdd("d", 1, dResult) Loop FirstTuesday = dResult End Function
Todo lo que necesita hacer en su hoja de trabajo es pasar a la función definida por el usuario el mes y año numérico deseado:
=FirstTuesday(6,2018)
Si lo prefiere, puede especificar que el mes y el año están en una celda:
=FirstTuesday(A2,A1)
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (13540) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.