Dada una fecha, ¿cómo obtengo el día de la semana (por ejemplo, "lunes") en una celda en Excel?
Dada una fecha, ¿cómo obtengo el día de la semana (por ejemplo, "lunes") en una celda en Excel?
Respuestas:
Ejemplo simple:
Celda A1: 1/8/2009 Celda
B1: = TEXTO (DÍA DE LA SEMANA (A1), "dddd")
Esto, para la fecha dada, imprimirá el día correspondiente.
¿Es esto lo que deseaste?
La respuesta dada anteriormente solo funciona por casualidad porque Excel piensa que 1/1/1900 era un domingo * y, de forma predeterminada, Excel usa el domingo como primer día de la semana para la función de día de la semana.
Lo que realmente está calculando en ese método es el día de la semana como un número, luego formateando eso como un día basado en ese número interpretado como una fecha. Por ejemplo, si su fecha es 1/2/2003 y usa la función WEEKDAY, esto da como resultado 7 (= Sábado). Cuando formatea esto como "dddd", en realidad está obteniendo el nombre del día del séptimo día en Excel desde su "época", es decir, 7/1/1900, que resulta ser un sábado *. Esta fórmula se romperá si alguien la abre y tiene la opción seleccionada para usar el sistema de fechas basado en 1904, ya que el 1/1/1904 no era un domingo, sino un viernes. (sí, sé que casi nadie lo usa, pero no quieres crear una solución que se base en eso, ¿verdad?)
Puede hacer la fórmula más corta, más rápida y más robusta simplemente usando
=TEXT(A1,"dddd")
Por supuesto, puede formatear las celdas de fecha con un formato personalizado como ya se sugirió, dependiendo de si realmente necesita esto en una columna separada o no. A menudo uso formatos de fecha como
ddd dd mmm yyyy
dar, por ejemplo, el sábado 01 de febrero de 2003 para que la fecha sea explícita pero también muestre el nombre del día de la semana.
El uso de una segunda columna y una función TEXTO es esencial si desea usar el día de la semana explícitamente en algún lugar de una combinación de correspondencia (por ejemplo), de manera similar para cosas como monedas, etc. Excel> La combinación de palabras pasa el valor almacenado subyacente real en lugar de versión con formato de pantalla, por lo que independientemente del formato de la celda, Word ve un número horrible. Un campo de texto verdadero se pasa "tal cual" y se muestra correctamente en Word.
* de hecho es un lunes, pero Excel fue escrito para coincidir con las fechas incorrectas en Lotus 1-2-3, que trató a 1900 como un año bisiesto cuando no lo es.
Otra posibilidad, dependiendo de lo que desee hacer con la fecha posterior, es establecer el formato de la celda en Personalizado: dddd
=A1
en el ejemplo de la primera respuesta.
Descubrí que las IF
declaraciones de anidación pueden ser engorrosas, pero funciona. Sin embargo, si desea guardar un poco de mecanografía, puede intentar esto:
=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
O, si necesita nombres completos:
=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
En este ejemplo, "A2" puede ser cualquier celda (o fórmula) que contenga la fecha en cuestión. Por ejemplo:
=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
imprimiría la abreviatura de tres letras para lo que sea hoy.
También puede localizar la respuesta usando [$ nnn] antes del formato (por lo que el código personalizado es: [$ nnn] dddd; @). cambie nnn con el código de idioma apropiado. No tengo la lista, pero de alguna manera, el código en inglés es -409 (y mi local es -421).
Creo que puede experimentar con el formato de Número, cambiar el campo de idioma y luego volver a cambiarlo a formato personalizado.
Celda A1: 8/1/2009 Celda B1: = A1 luego presione ctrl + 1 (formatear celda) seleccione la pestaña de número, haga clic en personalizado y luego escriba "DDDD" en el cuadro de texto txt
Muestra la fecha actual
=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")
Muestra la fecha actual con el texto requerido requerido.
=CHOOSE(WEEKDAY(MONTH(TODAY())), "S-U-N-D-A-Y","M-O-N-D-A-Y","T-U-E-S-D-A-Y","W-E-D-N-E-S-D-A-Y","T-H-R-S-D-A-Y","F-R-I-D-A-Y","S-A-T-U-R-D-A-Y")
La función WEEKDAY se puede usar en códigos Vba. Por ejemplo :
Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)
El nombre del día se obtiene de TextBox1 en el ejemplo anterior. El resultado es "lunes" .
Utilicé esta función cuando creé el formulario de usuario sobre la entrada de fecha en la celda activa con el menú contextual.