Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Año bisiesto

112 views
Skip to first unread message

Jordi Bayé

unread,
Sep 13, 2008, 9:23:01 AM9/13/08
to
Hola a todos!

Como puedo controlar que un año es bisiesto?
Debo llenar una matriz con los dias de cada mes. Para ello debo conocer si
el año es bisiesto para poder añadir un dia al mes de febrero.

Muchas gracias por anticipado.

Saludos

Raúl Bajo Sanz

unread,
Sep 13, 2008, 11:11:00 AM9/13/08
to
Hola Jordi, a ver si esto te ayuda.

Imagina que en la columna A hay una lista de años, hacia abajo. La lista
empieza en A1. En B1 escribimos:

'=SI(VALOR("31/12/"&$A1)-VALOR("01/01/"&$A1)=365;"bisiesto";"normal")'

y arrastramos hacia abajo.

Un saludo.

"Jordi Bayé" wrote:

http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.es.excel&mid=54726b5f-e3b2-4f3e-9287-294ff448d9af

Xavier Budet Graco

unread,
Sep 13, 2008, 11:32:52 AM9/13/08
to
Hola, otra posibilidad es:
=SI(DIA(FECHA(A1;3;0))=29;"Bisiesto";"Normal")

En A1 el año.

--
Saludos,

Xavier
j.b...@MACcgac.es
Quitar MAC para contestar. Gracias.

"Raúl Bajo Sanz" <raulba...@discussions.microsoft.com> escribió en el mensaje news:68F68881-8830-4D64...@microsoft.com...

Ivan

unread,
Sep 13, 2008, 5:52:22 PM9/13/08
to
hola chicos

> Hola, otra posibilidad es:

y otra mas [aunque creo recordar que se podia simplificar
bastante...]=>

=SI(O(RESIDUO(A2;400)=0;Y(RESIDUO(A2;4)=0;RESIDUO(A2;100)<>0));VERDADERO;FALSO)

(en una sola linea) :-))

un saludo
Ivan

PD: con la excusa, encantado de leerte Xavier

Ivan

unread,
Sep 13, 2008, 6:03:27 PM9/13/08
to
>>[aunque creo recordar que se podia simplificar

una primera simplificacion podria ser esta=>

=O(RESIDUO(A2;400)=0;Y(RESIDUO(A2;4)=0;RESIDUO(A2;100)<>0))

un saludo
Ivan

Héctor Miguel

unread,
Sep 13, 2008, 6:56:49 PM9/13/08
to
hola, chicos !

> Ivan escribio en el mensaje ...


>>>[aunque creo recordar que se podia simplificar
>
> una primera simplificacion podria ser esta=>
> =O(RESIDUO(A2;400)=0;Y(RESIDUO(A2;4)=0;RESIDUO(A2;100)<>0))

tambien se puede evitar la suposicion de que en todo pc el formato de fecha sea dd/mm/aa -???-
(y de paso, se le da otra "adelgazadita") :))

=si(esnumero(--"2008/02/29"),"Bisiesto","Normal")
o...
=si(esnumero(--(a2&"/02/29")),"Bisiesto","Normal")

saludos,
hector.


Ivan

unread,
Sep 13, 2008, 8:15:05 PM9/13/08
to
hola de nuevo, chicos

> tambien se puede evitar la suposicion de que en todo pc el formato de fecha sea dd/mm/aa    -???-
> (y de paso, se le da otra "adelgazadita")    :))
>
> =si(esnumero(--"2008/02/29"),"Bisiesto","Normal")
> o...
> =si(esnumero(--(a2&"/02/29")),"Bisiesto","Normal")

o si solo quiere saber si es o no bisiesto, sin necesitar el
'enunciado', y aplicando a la formula de Hector la misma dieta que a
la anterior =>

=esnumero(--(a2&"/02/29"))

aunque, como me esta dando por pensar que lo que quiere Jordi pueda
ser via codigo, aqui va una adaptacion de la misma formula de Hector
(sorry) :-)

Function EsBisiesto(ByVal año As Integer) As Boolean
On Error Resume Next
EsBisiesto = Not IsError(CDate(año & "/02/29"))
End Function

un saludo
Ivan

Ivan

unread,
Sep 13, 2008, 8:45:12 PM9/13/08
to
hola chicos, para no perder mis [malas] costumbres, un comentario/
duda :-)))

aunque supongo que no sera el caso de OP( o a lo mejor si esta
haciendo algun archivo historico :-D)

si no recuerdo mal (creo que de alguna de tus 'enseñanzas', Hector) y
segun parecen corroborar mis pruebas, en Excel (Xp), aunque no en VBA,
=>

del 1900 para abajo la unica que funcionaria correctamente seria la
del 'residuo' (dichoso concilio de ¿Nicea??)

¿es asi, o estoy haciendo algo mal?¿en el 2007 ha cambiado?

un saludo
Ivan

Héctor Miguel

unread,
Sep 13, 2008, 9:14:11 PM9/13/08
to
hola, Ivan !

> si no recuerdo mal... y segun parecen corroborar mis pruebas, en Excel... aunque no en VBA
> del 1900 para abajo la unica que funcionaria correctamente seria la del 'residuo' ...


> es asi, o estoy haciendo algo mal? en el 2007 ha cambiado?

"hablando" solo como la parte de los años... sip :))
(hasta donde recuerdo) la fecha minima (como dato fecha) en las hojas de calculo es 01/01/1900
y sigue igual en la version 2007, pero... existe un complemento (de terceros)

para trabajar con fechas anteriores a 1900...
-> XDate: Extended Date Functions Add-In
http://www.j-walk.com/ss/excel/files/xdate.htm

saludos,
hector.


Héctor Miguel

unread,
Sep 13, 2008, 11:41:44 PM9/13/08
to
hola, chicos !

> Ivan escribio en el mensaje ...

> aunque supongo que no sera el caso de OP (o a lo mejor si esta haciendo algun archivo historico :-D) ...

a mi se me ocurre pensar que OP necesita una lista de los dias de cada mes
pero tiene que "controlar" cuando un mes deba contener 28, 29, 30 o 31 dias
y una alternariva para descatar la necesidad de saber si bisiesto o no es (p.e.)

- poner la fecha del primer dia del mes (p.e.) en la celda A2
- para los dias 2 a 28 (rango A3:A29) simplemente "correr" la formula [A3] =a2+1
- para los dias 29, 30 y 31 usar las siguientes formulas:
[A30] =si(mes(a29+1)=mes(a29),a29+1,"")
[A31] =si(mes(a29+2)=mes(a29),a29+2,"")
[A32] =si(mes(a29+3)=mes(a29),a29+3,"")

-> notar que los ultimos 3 dias (29, 30 y 31) en el rango A30:A32
hacen referencia todos al dia 28 (rango A29) para sumar 1, 2 o 3 dias

saludos,
hector.


Jordi Bayé

unread,
Sep 14, 2008, 3:41:01 AM9/14/08
to
Hola a todos,

Grácias por vuestra ayuda, tanto la opcion de Ivan como la de Héctor Miguel
me han solucionado el problema.

Saludos a todos y gracias de nuevo

Jordi

KL

unread,
Sep 14, 2008, 7:30:01 AM9/14/08
to
"HИctor Miguel" <NOhemio...@PLShotmail.com> wrote in message
news:OUuCSvhF...@TK2MSFTNGP05.phx.gbl...
> hola, chicos !

> - poner la fecha del primer dia del mes (p.e.) en la celda A2
> - para los dias 2 a 28 (rango A3:A29) simplemente "correr" la formula [A3]
> =a2+1
> - para los dias 29, 30 y 31 usar las siguientes formulas:
> [A30] =si(mes(a29+1)=mes(a29),a29+1,"")
> [A31] =si(mes(a29+2)=mes(a29),a29+2,"")
> [A32] =si(mes(a29+3)=mes(a29),a29+3,"")

O tambien:

- poner la fecha del primer dia del mes (p.e.) en la celda A2

- en la celda A3 poner: =SI(A2="";"";SI(DIA(A2)>DIA(A2+1);"";A2+1)) y copiar
hacia abajo

Saludos,
KL

Ivan

unread,
Sep 14, 2008, 12:09:33 PM9/14/08
to
hola Hector (y por supuesto resto de 'hilanderos')

> (hasta donde recuerdo) la fecha minima (como dato fecha) en las hojas de calculo es 01/01/1900
> y sigue igual en la version 2007, pero... existe un complemento (de terceros)
>
> para trabajar con fechas anteriores a 1900...
> -> XDate: Extended Date Functions Add-In
>    http://www.j-walk.com/ss/excel/files/xdate.htm

muchas gracias por las aclaraciones y/o recordatorios

bueno, parece que Jordi finalmente va a tener una amplia oferta con
que probar

un saludo
Ivan

0 new messages