Restar dos fechas

06/12/2004 - 23:07 por Lidia | Informe spam
Hola a todos. Quería que me cogiera los valores que tengo
en una celda y lo reste de otra. Pero son edades lo
contenidos en cada una de ellas. Os pongo un ejemplo:

A2 A3 A4
12-05-1875 29-08-1896 Poner la edad

Trabajo con Win XP y Oficce XP
¡Ah! en A2 son fechas menores que en A3
Había elegido el formato de fecha en las celdas.
Gracias
Lidia

Preguntas similare

Leer las respuestas

#6 KL
08/12/2004 - 00:14 | Informe spam
Raul,

Me has pillado:)) Si tienes razon es uno de los problemas conocidos de esta
funcion al menos en las versiones 97 y 2000 de Excel. Desgraciadamente
desconozco si se ha solucionado o no en las versiones posteriores.
De todas formas aqui se describen las soluciones alternativas:
http://www.google.com/groups?q=YEAR...amp;rnum=3

KL

"Raul Robles" wrote in
message news:%23Sc%
KL:

A raiz de la pregunta de Lidia tome conciencia que nunca habia hecho resta
de fechas anteriores a 1900.
Trate de hacerlas con la funcion Frac.Ano y el resultado es #!Valor!

Mi pregunta es como se trabaja en Excel con las fechas anteriores a 1900?

Desde ya gracias por tu respuesta

Raúl
"KL" <lapink2000(at)hotmail.com> escribió en el mensaje
news:%23ObfG4%
perdona me he despistado un pelin. es q YEARFRAC es el nombre ingles asi
q
deberias buscar la por el nombre FRAC.AÑO y debes tener instalado el
Analysis Toolpak q viene incluido en en el Office Pro.

KL


"Lidia" wrote in message
news:1b2201c4dbe4$f047f2d0$
He intentado incluso poner lo que venía en la ayuda, la
formula siguiente:
=año(A2)-año(a3) pero no consigo nada y la función
Yearfrac no se donde se encuentra pero desde luego no
esta por qué no funciona y en ayuda no encuentra nada que
decirme sobre ella.
Explicame algo más sobre todo esto.
Gracias
Lidia


>si tienes instalada la funcion YEARFRAC, entonces en la
A4 podrias poner lo
>siguiente:
>
>=YEARFRAC(A2,A3)
>
>Saludos,
>KL
>
>"Lidia" wrote in
message
>news:101601c4dbdf$fe7cfad0$
>Hola a todos. Quería que me cogiera los valores que tengo
>en una celda y lo reste de otra. Pero son edades lo
>contenidos en cada una de ellas. Os pongo un ejemplo:
>
>A2 A3 A4
>12-05-1875 29-08-1896 Poner la edad
>
>Trabajo con Win XP y Oficce XP
>¡Ah! en A2 son fechas menores que en A3
>Había elegido el formato de fecha en las celdas.
>Gracias
>Lidia
>
>
>.
>





Respuesta Responder a este mensaje
#7 KL
08/12/2004 - 00:28 | Informe spam
Despues de haber leido el articulo al q habia puesto el link, me decanto por
la UDF (funcion VBA personalizada) de Myrna Larsen (vease el codigo de
abajo). Para hacerlo funcionar:

1. Ir al VBA Editor
2. Crear un nuevo Modulo (p.ej.; Modulo1)
3. Copiar el codigo de abajo al modulo
4. Volver a la hoja de calculo e introducir en la celda deseada la formula
usando la funcion. P.ej.:
=YearDiff(A1, B1)
donde A1=FechaInicial y B1=FechaFinal

Saludos,
KL

'--Fin Codigo-
Function YearDiff(ByVal StartDate As Date, _
Optional ByVal EndDate As Date = #1/1/100#) As Double
'modified 02/01/2003
Dim AnnDay As Long
Dim AnnMonth As Long
Dim AnnYear As Long
Dim ltemp As Date
Dim NextAnn As Date
Dim PrevAnn As Date

If EndDate = #1/1/100# Then EndDate = Date

'put in right order if necessary
If StartDate > EndDate Then
ltemp = StartDate
StartDate = EndDate
EndDate = ltemp
End If

'get anniversary date in ending year
AnnYear = Year(EndDate)
AnnMonth = Month(StartDate)
AnnDay = Day(StartDate)

'assume it's already occurred
PrevAnn = DateSerial(AnnYear, AnnMonth, AnnDay)

If PrevAnn <= EndDate Then
'assumption that it's past was correct
'next anniversary is 1 year in the future
NextAnn = DateSerial(AnnYear + 1, AnnMonth, AnnDay)
Else
'wrong -- we calculated the *next* anniversary
NextAnn = PrevAnn
AnnYear = AnnYear - 1
PrevAnn = DateSerial(AnnYear, AnnMonth, AnnDay)
End If

YearDiff = AnnYear - Year(StartDate) + _
(EndDate - PrevAnn) / (NextAnn - PrevAnn)
End Function 'YearDiff
'--Fin Codigo-

"KL" <lapink2000(at)hotmail.com> wrote in message
news:%
Raul,

Me has pillado:)) Si tienes razon es uno de los problemas conocidos de
esta funcion al menos en las versiones 97 y 2000 de Excel.
Desgraciadamente desconozco si se ha solucionado o no en las versiones
posteriores.
De todas formas aqui se describen las soluciones alternativas:
http://www.google.com/groups?q=YEAR...amp;rnum=3

KL

"Raul Robles" wrote in
message news:%23Sc%
KL:

A raiz de la pregunta de Lidia tome conciencia que nunca habia hecho
resta
de fechas anteriores a 1900.
Trate de hacerlas con la funcion Frac.Ano y el resultado es #!Valor!

Mi pregunta es como se trabaja en Excel con las fechas anteriores a 1900?

Desde ya gracias por tu respuesta

Raúl
"KL" <lapink2000(at)hotmail.com> escribió en el mensaje
news:%23ObfG4%
perdona me he despistado un pelin. es q YEARFRAC es el nombre ingles asi
q
deberias buscar la por el nombre FRAC.AÑO y debes tener instalado el
Analysis Toolpak q viene incluido en en el Office Pro.

KL


"Lidia" wrote in message
news:1b2201c4dbe4$f047f2d0$
He intentado incluso poner lo que venía en la ayuda, la
formula siguiente:
=año(A2)-año(a3) pero no consigo nada y la función
Yearfrac no se donde se encuentra pero desde luego no
esta por qué no funciona y en ayuda no encuentra nada que
decirme sobre ella.
Explicame algo más sobre todo esto.
Gracias
Lidia


>si tienes instalada la funcion YEARFRAC, entonces en la
A4 podrias poner lo
>siguiente:
>
>=YEARFRAC(A2,A3)
>
>Saludos,
>KL
>
>"Lidia" wrote in
message
>news:101601c4dbdf$fe7cfad0$
>Hola a todos. Quería que me cogiera los valores que tengo
>en una celda y lo reste de otra. Pero son edades lo
>contenidos en cada una de ellas. Os pongo un ejemplo:
>
>A2 A3 A4
>12-05-1875 29-08-1896 Poner la edad
>
>Trabajo con Win XP y Oficce XP
>¡Ah! en A2 son fechas menores que en A3
>Había elegido el formato de fecha en las celdas.
>Gracias
>Lidia
>
>
>.
>









Respuesta Responder a este mensaje
#8 KL
08/12/2004 - 00:31 | Informe spam
Despues de haber leido el articulo al q habia puesto el link, me decanto por
la UDF (funcion VBA personalizada) de Myrna Larsen (vease el codigo de
abajo). Para hacerlo funcionar:

1. Ir al VBA Editor
2. Crear un nuevo Modulo (p.ej.; Modulo1)
3. Copiar el codigo de abajo al modulo
4. Volver a la hoja de calculo e introducir en la celda deseada la formula
usando la funcion. P.ej.:
=YearDiff(A1, B1)
donde A1=FechaInicial y B1=FechaFinal

Saludos,
KL

'--Inicio Codigo-
Function YearDiff(ByVal StartDate As Date, _
Optional ByVal EndDate As Date = #1/1/100#) As Double
'modified 02/01/2003
Dim AnnDay As Long
Dim AnnMonth As Long
Dim AnnYear As Long
Dim ltemp As Date
Dim NextAnn As Date
Dim PrevAnn As Date

If EndDate = #1/1/100# Then EndDate = Date

'put in right order if necessary
If StartDate > EndDate Then
ltemp = StartDate
StartDate = EndDate
EndDate = ltemp
End If

'get anniversary date in ending year
AnnYear = Year(EndDate)
AnnMonth = Month(StartDate)
AnnDay = Day(StartDate)

'assume it's already occurred
PrevAnn = DateSerial(AnnYear, AnnMonth, AnnDay)

If PrevAnn <= EndDate Then
'assumption that it's past was correct
'next anniversary is 1 year in the future
NextAnn = DateSerial(AnnYear + 1, AnnMonth, AnnDay)
Else
'wrong -- we calculated the *next* anniversary
NextAnn = PrevAnn
AnnYear = AnnYear - 1
PrevAnn = DateSerial(AnnYear, AnnMonth, AnnDay)
End If

YearDiff = AnnYear - Year(StartDate) + _
(EndDate - PrevAnn) / (NextAnn - PrevAnn)
End Function 'YearDiff
'--Fin Codigo-

"KL" <lapink2000(at)hotmail.com> wrote in message
news:%
Raul,

Me has pillado:)) Si tienes razon es uno de los problemas conocidos de
esta funcion al menos en las versiones 97 y 2000 de Excel.
Desgraciadamente desconozco si se ha solucionado o no en las versiones
posteriores.
De todas formas aqui se describen las soluciones alternativas:
http://www.google.com/groups?q=YEAR...amp;rnum=3

KL

"Raul Robles" wrote in
message news:%23Sc%
KL:

A raiz de la pregunta de Lidia tome conciencia que nunca habia hecho
resta
de fechas anteriores a 1900.
Trate de hacerlas con la funcion Frac.Ano y el resultado es #!Valor!

Mi pregunta es como se trabaja en Excel con las fechas anteriores a 1900?

Desde ya gracias por tu respuesta

Raúl
"KL" <lapink2000(at)hotmail.com> escribió en el mensaje
news:%23ObfG4%
perdona me he despistado un pelin. es q YEARFRAC es el nombre ingles asi
q
deberias buscar la por el nombre FRAC.AÑO y debes tener instalado el
Analysis Toolpak q viene incluido en en el Office Pro.

KL


"Lidia" wrote in message
news:1b2201c4dbe4$f047f2d0$
He intentado incluso poner lo que venía en la ayuda, la
formula siguiente:
=año(A2)-año(a3) pero no consigo nada y la función
Yearfrac no se donde se encuentra pero desde luego no
esta por qué no funciona y en ayuda no encuentra nada que
decirme sobre ella.
Explicame algo más sobre todo esto.
Gracias
Lidia


>si tienes instalada la funcion YEARFRAC, entonces en la
A4 podrias poner lo
>siguiente:
>
>=YEARFRAC(A2,A3)
>
>Saludos,
>KL
>
>"Lidia" wrote in
message
>news:101601c4dbdf$fe7cfad0$
>Hola a todos. Quería que me cogiera los valores que tengo
>en una celda y lo reste de otra. Pero son edades lo
>contenidos en cada una de ellas. Os pongo un ejemplo:
>
>A2 A3 A4
>12-05-1875 29-08-1896 Poner la edad
>
>Trabajo con Win XP y Oficce XP
>¡Ah! en A2 son fechas menores que en A3
>Había elegido el formato de fecha en las celdas.
>Gracias
>Lidia
>
>
>.
>









Respuesta Responder a este mensaje
#9 Raul Robles
08/12/2004 - 01:16 | Informe spam
KL:

A raiz de la pregunta de Lidia tome conciencia que nunca habia hecho resta
de fechas anteriores a 1900.
Trate de hacerlas con la funcion Frac.Ano y el resultado es #!Valor!

Mi pregunta es como se trabaja en Excel con las fechas anteriores a 1900?

Desde ya gracias por tu respuesta

Raúl
"KL" <lapink2000(at)hotmail.com> escribió en el mensaje
news:%23ObfG4%
perdona me he despistado un pelin. es q YEARFRAC es el nombre ingles asi q
deberias buscar la por el nombre FRAC.AÑO y debes tener instalado el
Analysis Toolpak q viene incluido en en el Office Pro.

KL


"Lidia" wrote in message
news:1b2201c4dbe4$f047f2d0$
He intentado incluso poner lo que venía en la ayuda, la
formula siguiente:
=año(A2)-año(a3) pero no consigo nada y la función
Yearfrac no se donde se encuentra pero desde luego no
esta por qué no funciona y en ayuda no encuentra nada que
decirme sobre ella.
Explicame algo más sobre todo esto.
Gracias
Lidia


>si tienes instalada la funcion YEARFRAC, entonces en la
A4 podrias poner lo
>siguiente:
>
>=YEARFRAC(A2,A3)
>
>Saludos,
>KL
>
>"Lidia" wrote in
message
>news:101601c4dbdf$fe7cfad0$
>Hola a todos. Quería que me cogiera los valores que tengo
>en una celda y lo reste de otra. Pero son edades lo
>contenidos en cada una de ellas. Os pongo un ejemplo:
>
>A2 A3 A4
>12-05-1875 29-08-1896 Poner la edad
>
>Trabajo con Win XP y Oficce XP
>¡Ah! en A2 son fechas menores que en A3
>Había elegido el formato de fecha en las celdas.
>Gracias
>Lidia
>
>
>.
>


Respuesta Responder a este mensaje
#10 Raul Robles
09/12/2004 - 03:50 | Informe spam
KL


Te agradezco las respuestas que me has dado. Tema resuelto.

Yo por mi parte me puse a intentar resolver el tema, y despues de renegar un
poco me di cuenta que le podia hacer "trampilla" a Excel y resolvia el
problema en un santiamen.
Cual es la trampilla? Sencilllamente en dos celdas apartes poner las mismas
fechas en cuestion pero sumandole a las dos 1000 anios mas, de esa manera
Excel las consideraba como numeros y la resta es sin error. Y despues con
una referencia a la celda del resultado, ponia el resultado en el lugar que
necesitaba,

Ej la resta de Lidia 12-05-1875 29-08-1896 es lo mismo que restar
12-05-2875 29-08-2896 y el
resultado lo tenemmos facilmente con la funcion si fecha
=SIFECHA(A1;B1;"y")&" Año(s) " &SIFECHA(A1;B1;"ym")&" Mes(es)
"&SIFECHA(A1;B1;"md")&" Día(s)"


Igualmente voy a guardar la macro que me diste y , por supuesto,
a usarla :-))


Saludso cordiales

Raul










Salu2

Raul Robles
Office 2000 9.0.6926 SP3
Win 98 SE 4.10.22228
O Express 6.00 2800 1123
"KL" <lapink2000(at)hotmail.com> escribió en el mensaje
news:
Despues de haber leido el articulo al q habia puesto el link, me decanto


por
la UDF (funcion VBA personalizada) de Myrna Larsen (vease el codigo de
abajo). Para hacerlo funcionar:

1. Ir al VBA Editor
2. Crear un nuevo Modulo (p.ej.; Modulo1)
3. Copiar el codigo de abajo al modulo
4. Volver a la hoja de calculo e introducir en la celda deseada la formula
usando la funcion. P.ej.:
=YearDiff(A1, B1)
donde A1=FechaInicial y B1=FechaFinal

Saludos,
KL

'--Inicio Codigo-
Function YearDiff(ByVal StartDate As Date, _
Optional ByVal EndDate As Date = #1/1/100#) As Double
'modified 02/01/2003
Dim AnnDay As Long
Dim AnnMonth As Long
Dim AnnYear As Long
Dim ltemp As Date
Dim NextAnn As Date
Dim PrevAnn As Date

If EndDate = #1/1/100# Then EndDate = Date

'put in right order if necessary
If StartDate > EndDate Then
ltemp = StartDate
StartDate = EndDate
EndDate = ltemp
End If

'get anniversary date in ending year
AnnYear = Year(EndDate)
AnnMonth = Month(StartDate)
AnnDay = Day(StartDate)

'assume it's already occurred
PrevAnn = DateSerial(AnnYear, AnnMonth, AnnDay)

If PrevAnn <= EndDate Then
'assumption that it's past was correct
'next anniversary is 1 year in the future
NextAnn = DateSerial(AnnYear + 1, AnnMonth, AnnDay)
Else
'wrong -- we calculated the *next* anniversary
NextAnn = PrevAnn
AnnYear = AnnYear - 1
PrevAnn = DateSerial(AnnYear, AnnMonth, AnnDay)
End If

YearDiff = AnnYear - Year(StartDate) + _
(EndDate - PrevAnn) / (NextAnn - PrevAnn)
End Function 'YearDiff
'--Fin Codigo-

"KL" <lapink2000(at)hotmail.com> wrote in message
news:%
> Raul,
>
> Me has pillado:)) Si tienes razon es uno de los problemas conocidos de
> esta funcion al menos en las versiones 97 y 2000 de Excel.
> Desgraciadamente desconozco si se ha solucionado o no en las versiones
> posteriores.
> De todas formas aqui se describen las soluciones alternativas:
>


http://www.google.com/groups?q=YEAR...amp;rnum=3
>
> KL
>
> "Raul Robles" wrote


in
> message news:%23Sc%
>> KL:
>>
>> A raiz de la pregunta de Lidia tome conciencia que nunca habia hecho
>> resta
>> de fechas anteriores a 1900.
>> Trate de hacerlas con la funcion Frac.Ano y el resultado es #!Valor!
>>
>> Mi pregunta es como se trabaja en Excel con las fechas anteriores a


1900?
>>
>> Desde ya gracias por tu respuesta
>>
>> Raúl
>> "KL" <lapink2000(at)hotmail.com> escribió en el mensaje
>> news:%23ObfG4%
>>> perdona me he despistado un pelin. es q YEARFRAC es el nombre ingles


asi
>>> q
>>> deberias buscar la por el nombre FRAC.AÑO y debes tener instalado el
>>> Analysis Toolpak q viene incluido en en el Office Pro.
>>>
>>> KL
>>>
>>>
>>> "Lidia" wrote in message
>>> news:1b2201c4dbe4$f047f2d0$
>>> He intentado incluso poner lo que venía en la ayuda, la
>>> formula siguiente:
>>> =año(A2)-año(a3) pero no consigo nada y la función
>>> Yearfrac no se donde se encuentra pero desde luego no
>>> esta por qué no funciona y en ayuda no encuentra nada que
>>> decirme sobre ella.
>>> Explicame algo más sobre todo esto.
>>> Gracias
>>> Lidia
>>>
>>>
>>> >si tienes instalada la funcion YEARFRAC, entonces en la
>>> A4 podrias poner lo
>>> >siguiente:
>>> >
>>> >=YEARFRAC(A2,A3)
>>> >
>>> >Saludos,
>>> >KL
>>> >
>>> >"Lidia" wrote in
>>> message
>>> >news:101601c4dbdf$fe7cfad0$
>>> >Hola a todos. Quería que me cogiera los valores que tengo
>>> >en una celda y lo reste de otra. Pero son edades lo
>>> >contenidos en cada una de ellas. Os pongo un ejemplo:
>>> >
>>> >A2 A3 A4
>>> >12-05-1875 29-08-1896 Poner la edad
>>> >
>>> >Trabajo con Win XP y Oficce XP
>>> >¡Ah! en A2 son fechas menores que en A3
>>> >Había elegido el formato de fecha en las celdas.
>>> >Gracias
>>> >Lidia
>>> >
>>> >
>>> >.
>>> >
>>>
>>>
>>
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida