¿Cómo puedo introducir el nombre del día en una celda de Excel?
Dada una fecha, ¿cómo puedo obtener el día de la semana (por ejemplo, “lunes”) en una celda de Excel?
Dada una fecha, ¿cómo puedo obtener el día de la semana (por ejemplo, “lunes”) en una celda de Excel?
La respuesta dada arriba sólo funciona por casualidad porque Excel piensa que el 1/1/1900 fue un domingo* y por defecto Excel está usando el domingo como primer día de la semana para la función 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, y 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 utiliza la función WEEKDAY, el resultado es 7 (=sábado). Cuando se formatea como “dddd”, se obtiene el nombre 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 seleccionada la opción de usar el sistema de fechas basado en 1904, ya que el 1/1/1904 no fue un domingo, sino un viernes. (Sí, ya sé que casi nadie usa eso, pero no querrás construir una solución que se base en eso, ¿verdad?)
Puedes hacer la fórmula más corta, más rápida y más robusta simplemente usando
=TEXT(A1,"dddd")
Por supuesto, puedes formatear las celdas de fecha con un formato personalizado como ya se ha sugerido, dependiendo de si realmente necesitas esto en una columna separada o no. A menudo utilizo formatos de fecha como
ddd dd mmm yyyy
para dar, por ejemplo, sábado 01 de febrero de 2003, de modo que la fecha es explícita pero también muestra el nombre del día de la semana.
Utilizar una segunda columna y una función TEXTO es esencial si quiere utilizar el día de la semana explícitamente en algún lugar de una combinación de correspondencia (por ejemplo), de forma similar para cosas como monedas y demás en Excel > La combinación de Word pasa el valor real almacenado subyacente en lugar de la versión formateada en pantalla, por lo que independientemente del formato de la celda, Word ve algún número horrible. Un campo de texto real se pasa ‘tal cual’ y se muestra correctamente en Word.
\N - de hecho es un lunes, pero Excel fue escrito para que coincidiera con las fechas incorrectas de Lotus 1-2-3, que trataba 1900 como un año bisiesto cuando no lo es.
He comprobado que anidar las sentencias IF
puede ser engorroso, pero funciona. Sin embargo, si quieres ahorrarte un poco de tecleo, puedes probar esto:
=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
O, si necesitas 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 de lo que es hoy.
Celda A1: 1/8/2009 Celda B1: =A1 luego presione ctrl+1 (formato de celda) seleccione la pestaña de números, haga clic en personalizado y luego escriba “DDDD” en el cuadro de texto de tipo
también puedes localizar la respuesta usando [$nnn] antes del formato (así el código personalizado es: [$nnn]dddd;@). cambia nnn con el código de idioma apropiado. no tengo la lista, pero de alguna manera, el código inglés es -409 (y mi local es -421).
creo que puedes experimentar con el formato numérico, cambiar el campo de idioma, y luego volver a cambiarlo al formato personalizado.
Muestra la fecha actual
=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")
Muestra la fecha actual con el texto 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 utilizar en los 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 la fecha a la celda activa con el menú del botón derecho. La plantilla puede ser revisada aquí