Trivia que me ha queda'o grande!

25/10/2006 - 19:39 por ElAlumno | Informe spam
Amigos, por favor su ayuda para la siguiente formulación (bueno, yo la
tengo con =SI anidados, pero puede ser de otra manera):

En E8 tengo una fecha de retiro
En E9 tengo una fecha de ingreso, y
en E20 debo colocar una formula que evalue y liquida lo siguiente:

1) Si la fecha de retiro está comprendida en el segundo semestre DE
CUALQUIER AÑO y el ingreso se produjo tambien dentro del segundo
semestre de ese mismo año, debe tomar la fecha de ingreso que figura
en E9.
2) Si la fecha de retiro está comprendida en el segundo semestre DE
CUALQUIER AÑO y el ingreso se produjo en el primer semestre de ese
mismo año o antes, debe tomar como fecha el 01-jul-AñoActual(2006)
3) Si la fecha de retiro está comprendida en primer semestre DE
CUALQUIER AÑO y el ingreso se produjo tambien dentro del primer
semestre de ese mismo año, debe tomar la fecha de ingreso que figura
en E9.
4) Si la fecha de retiro está comprendida en el primer semestre DE
CUALQUIER AÑO y el ingreso se produjo antes del primer semestre de ese
mismo año, debe tomar como fecha el 01-ene-AñoActual

Estoy empleando la siguiente fórmula:
=SI(Y(_FRetiro<=FSdoS,_FIngreso>=FeIn2S),FeIn1S,SI(Y(_FRetiro<=FPerS,_FIngreso>=FeIn1S),_FIngreso,FeIn1S))
Donde:
_FRetiro = Fecha de Retiro
FSdoS = 31-Dic-AñoActual
_FIngreso = Fecha de Ingreso
FeIn2S = Fecha Inicio 2do Semestre (01-jul-AñoActual)
FeIn1S = Fecha Inicio 1er Semestre (01-ene-AñoActual)
FPerS = Fecha finalización Periodo (30-jun-AnoActual)

Gracias por su atención y tambien por ayudarmen a salir de esta (y de
otras tantas!)

Saludos,

Manuel

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
26/10/2006 - 05:08 | Informe spam
hola, Manuel !

1) si entiendo bien... y manteniendo un 'estricto apego' a las condicionantes que expones en la consulta...
[y tratando de 'evadir' el uso constante de la funcion si-condicional por si la formula va a ser 'repetitiva'] -?-
resultaria en una formula +/- como la siguiente: [toma nota que debe ser en una sola linea y el separador de argumentos]

=o(y(mes(e8)>5,e9>fecha(año(e8),6,30)),y(mes(e8)<6,y(año(e8)=año(e9),mes(e9)<6)))*e9+y(mes(e8)>5,e9<fecha(año(e8),7,1))*fecha(año(hoy()),7,1)+y(mes(e8)<6,e9<fecha(año(e8),1,1))*fecha(año(hoy()),1,1)

2) si te sientes mas 'comodo' con el uso de la funcion si-condicional, [creo que] la siguiente formula seria mas facil de 'leer'...

=si(mes(e8)>5,si(e9<fecha(año(e8),7,1),fecha(año(hoy()),7,1),e9),si(e9<fecha(año(e8),1,1),fecha(año(hoy()),1,1),e9))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
... para la siguiente formulación (bueno, yo la tengo con =SI anidados, pero puede ser de otra manera):
En E8 tengo una fecha de retiro
En E9 tengo una fecha de ingreso, y
en E20 debo colocar una formula que evalue y liquida lo siguiente:
1) Si la fecha de retiro esta comprendida en el segundo semestre DE CUALQUIER A#O
y el ingreso se produjo tambien dentro del segundo semestre de ese mismo a#o
debe tomar la fecha de ingreso que figura en E9.
2) Si la fecha de retiro esta comprendida en el segundo semestre DE CUALQUIER A#O
y el ingreso se produjo en el primer semestre de ese mismo a#o o antes
debe tomar como fecha el 01-jul-A#oActual(2006)
3) Si la fecha de retiro esta comprendida en primer semestre DE CUALQUIER A#O
y el ingreso se produjo tambien dentro del primer semestre de ese mismo a#o
debe tomar la fecha de ingreso que figura en E9.
4) Si la fecha de retiro esta comprendida en el primer semestre DE CUALQUIER A#O
y el ingreso se produjo antes del primer semestre de ese mismo a#o
debe tomar como fecha el 01-ene-A#oActual
Estoy empleando la siguiente formula:
=SI(Y(_FRetiro<=FSdoS,_FIngreso>=FeIn2S),FeIn1S,SI(Y(_FRetiro<=FPerS,_FIngreso>=FeIn1S),_FIngreso,FeIn1S))
Donde:
_FRetiro = Fecha de Retiro
FSdoS = 31-Dic-A#oActual
_FIngreso = Fecha de Ingreso
FeIn2S = Fecha Inicio 2do Semestre (01-jul-A#oActual)
FeIn1S = Fecha Inicio 1er Semestre (01-ene-A#oActual)
FPerS = Fecha finalizacion Periodo (30-jun-A#oActual)
Respuesta Responder a este mensaje
#2 ElAlumno
26/10/2006 - 18:24 | Informe spam
Héctor Miguel:

Gracias por tus solución! me quedé con la primera opción y funcionó
perfectamente!

Eres muy amable. Mis reiterados agradecimientos.

Manuel
Respuesta Responder a este mensaje
#3 ElAlumno
29/10/2006 - 16:10 | Informe spam
Hola Héctor Miguel:

Como ya te comenté anteriormente, tome la formulación que
sugeriste...

=o(y(mes(e8)>5,e9>fecha(año(e8),6,30)),y(mes(e8)<6,y(año(e8)=año(e9),mes(e9)<6)))*e9+y(mes(e8)>5,e9<fecha(año(e8),7,1))*fecha(año(hoy()),7,1)+y(mes(e8)<6,e9<fecha(año(e8),1,1))*fecha(año(hoy()),1,1)

...que traducida a sus equivalencias sería algo así como...

=o(y(MesRetiro > Mayo, MesIngreso > 30-junio-AñoRetiro, y(MesRetiro <
Junio, y(AñoRetiro = AñoIngreso, MesIngreso < Junio))) * FechaIngreso
+ y(MesRetiro > Mayo, FechaIngreso < 1º-Julio-AñoRetiro) *
01-Julio-AñoActual + y(MesRetiro < Junio, MesIngreso <
01-Enero-AñoRetiro) * 01-Enero-AñoActual)

Pués bien, al respecto quiero molestarte de nuevo por dos conceptos
expresados en tu fórmula y que logro entender (mi sentido de la
lógica se fue a vacacionar).

1) Que papel juega el mes de Mayo en la fórmula, que es utilizado dos
veces?
2) Algo totalmente novedoso para mi, es el uso del operador matemático
para multiplicación (*) dentro de tu fórmula y en combinación conlos
operadores lógicos (y) y (o); no logro captar su alcance o efecto, a
pesar de que veo que se obtiene el resultado adeucado (conocía su uso
solo en formulacion matricial).

Relacionado con el mismo tema y mientra recibía tu fórmula, elaboré
la siguiente "tarea", que tambien soluciona el problema pero que yo
mismo tengo que aceptar que resulta demasiado compleja (aunque algo
seguro frente a posibles alteraciones accidentales) y me gustaría
mucho que le dieras una miraday desde luego tus comentarios para
sintetizarla:

1) Como buena parte de los parámetros giran en torno a la fecha de
retiro (_FRetiro), y básicamente en relacion con sus dos semestres,
creé las formulas que definen tanto el inicio, como el final de cada
semestre, así:
a) Fecha Inicio 1er Semestre ==>> FeIni1S þCHA(AÑO(_FRetiro),1,1)
b) Fecha Finalización 1er Semestre ==>> FeFin1S
þCHA(AÑO(_FRetiro),6,30)
c) Fecha Inicio 2do Semestre ==>> FeIni2S þCHA(AÑO(_FRetiro),7,1)
d) Fecha Finalización 2do Semestre ==>> FeFin2S
þCHA(AÑO(_FRetiro),12,31)

2) Como son 4 situasiones a evaluar, hice uso de las anteriores
formumulas, creando 4 "Condicionamientos" (una para cada situación
(Condición01, Condición02, Condición03 y Condición04), así:
a) Condi01
=Y(_FRetiro>þCHA(AÑO(_FRetiro),1,1),_FRetiro<þCHA(AÑO(_FRetiro),6,30),_FIngreso>þCHA(AÑO(_FRetiro),1,1),_FIngreso<þCHA(AÑO(_FRetiro),6,30))
b) Condi02
=Y(_FRetiro>þCHA(AÑO(_FRetiro),7,1),_FRetiro<þCHA(AÑO(_FRetiro),12,31),_FIngreso>þCHA(AÑO(_FRetiro),7,1),_FIngreso<þCHA(AÑO(_FRetiro),12,31))
c) Condi03
=Y(_FRetiro>þCHA(AÑO(_FRetiro),1,1),_FRetiro<þCHA(AÑO(_FRetiro),6,30),_FIngreso<þCHA(AÑO(_FRetiro),12,31))
d) Condi04
=Y(_FRetiro>þCHA(AÑO(_FRetiro),7,1),_FRetiro<þCHA(AÑO(_FRetiro),12,31),_FIngreso<þCHA(AÑO(_FRetiro),6,30))

3) Como se trata de establecer la "Fecha de Compensación Semestral",
resumí las fórmulas del numeral anterior, así:
FeComSem
=SI(O(Condi01,Condi02),_FIngreso,SI(Condi03,FECHA(AÑO(_FRetiro),1,1),SI(Condi04,FECHA(AÑO(_FRetiro),7,1),"")))

4) Con "TODO" lo anterior, solo me basta colocar en la celda objeto la
última formula (o sea =FeComSem), pero veo que "TODO" lo anterior tu
lo "condensas" en solo dos líneas! ¡ ¡ ¡ Eso me gustaría
aprenderlo ! ! !

(hasta ahora empiezo a entender para que sirve la factorización
matemática - je je je)

Nuevamente gracias por tu valiosa ayuda.

Cordial saludo,

Manuel



hola, Manuel !

1) si entiendo bien... y manteniendo un 'estricto apego' a las condicionantes que expones en la consulta...
[y tratando de 'evadir' el uso constante de la funcion si-condicional por si la formula va a ser 'repetitiva'] -?-
resultaria en una formula +/- como la siguiente: [toma nota que debe ser en una sola linea y el separador de argumentos]

=o(y(mes(e8)>5,e9>fecha(año(e8),6,30)),y(mes(e8)<6,y(año(e8)=año(e9),mes(e9)<6)))*e9+y(mes(e8)>5,e9<fecha(año(e8),7,1))*fecha(año(hoy()),7,1)+y(mes(e8)<6,e9<fecha(año(e8),1,1))*fecha(año(hoy()),1,1)

2) si te sientes mas 'comodo' con el uso de la funcion si-condicional, [creo que] la siguiente formula seria mas facil de 'leer'...

=si(mes(e8)>5,si(e9<fecha(año(e8),7,1),fecha(año(hoy()),7,1),e9),si(e9<fecha(año(e8),1,1),fecha(año(hoy()),1,1),e9))

si cualquier duda [o informacion adicional]... comentas ?
saludos, hector.
Respuesta Responder a este mensaje
#4 ElAlumno
29/10/2006 - 16:24 | Informe spam
Hola Héctor:

De nuevo yo!

En mi anterior mensaje, justo en el parráfo inmediato a la
"traducción", por un "lapsus embarrandus" olvidé colocar una
negación (que es lo mas importante allí), y el verdadero sentido de
la frase sería:
...
"Pués bien, al respecto quiero molestarte de nuevo por dos conceptos
expresados en tu fórmula y que "NO" logro entender (mi sentido de la
lógica se fue a vacacionar)."

Gracias por tu tiempo y por tu ayuda.

Saludos,

Manuel
Respuesta Responder a este mensaje
#5 Héctor Miguel
29/10/2006 - 23:43 | Informe spam
hola. Manuel !

1) olvidate del mes de mayo... lo confundi con el 'parte-aguas' de semestres junio-julio por un proyecto que tenia mayo como 'clave' :D
[es como si te dijera que: 'los 4 puntos cardinales... son 3: norte y sur] :))

2) modifica en las formulas sugeridas de:... >5 [mayo] a >6 [junio] y de <6 [junio] a <7 [julio]
y solo se trata de comparar si es el primero o segundo semestre [tratando de 'ahorrarme' UN caracter, es decir]...
si es segundo semestre [a partir de julio] lo 'usual' seria comparar si el mes es >=7 [o lo que es lo mismo... >6]
y de manera similar para el primer semestre :)) por lo que las formulas corregidas serian como sigue:
__ 1a __
=o(y(mes(e8)>6,e9>fecha(año(e8),6,30)),y(mes(e8)<7,y(año(e8)=año(e9),mes(e9)<7)))*e9
+y(mes(e8)>6,e9<fecha(año(e8),7,1))*fecha(año(hoy()),7,1)
+y(mes(e8)<7,e9<fecha(año(e8),1,1))*fecha(año(hoy()),1,1)
__ 2a __
=si(mes(e8)>6,si(e9<fecha(año(e8),7,1),fecha(año(hoy()),7,1),e9),si(e9<fecha(año(e8),1,1),fecha(año(hoy()),1,1),e9))

3) en la primera formula, son evaluadas las 4 condicionantes 'en estricto apego' a la formulacion de tu consulta
la que se cumpla, 'devuelve' su mulrplicacion, por lo que las otras [las no cumplidas] estarian sumando un 0 [cero]

4) en la segunda formula, se 'da por sentado' que de no cumplirse una condicionante... se estaria cumpliendo 'la otra' :))
por eso es que resulta mas 'corta' y [probablemente] mas 'facil de leer' -?-

5) si analizas 'la logica' de la 'factorizacion' [ahora que le has encontrado 'el gusto']... podras aprecias algunas 'ventajas' :D

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
... la formulacion que sugeriste... que traducida a sus equivalencias sería algo asi como...
=o(y(MesRetiro > Mayo, MesIngreso > 30-junio-AñoRetiro, y(MesRetiro < Junio, y(AñoRetiro = AñoIngreso, MesIngreso < Junio)))


* FechaIngreso + y(MesRetiro > Mayo, FechaIngreso < 1º-Julio-AñoRetiro) * 01-Julio-AñoActual
+ y(MesRetiro < Junio, MesIngreso < 01-Enero-AñoRetiro) * 01-Enero-AñoActual)

... dos conceptos expresados en tu formula y que *NO* logro entender (mi sentido de la logica se fue a vacacionar).
1) Que papel juega el mes de Mayo en la formula, que es utilizado dos veces?
2) ... novedoso para mi, es el uso del operador matematico para multiplicacion (*)
... en combinacion con los operadores logicos (y) y (o); no logro captar su alcance o efecto
a pesar de que veo que se obtiene el resultado adeucado (conocia su uso solo en formulacion matricial).

... elabore la siguiente "tarea", que tambien soluciona el problema pero... tengo que aceptar que resulta demasiado compleja
(aunque algo seguro frente a posibles alteraciones accidentales)... que le dieras una mirada y... comentarios para sintetizarla:

1) Como buena parte de los parámetros giran en torno a la fecha de retiro (_FRetiro), y basicamente en relacion con sus dos semestres
cree las formulas que definen tanto el inicio, como el final de cada semestre, asi:
a) Fecha Inicio 1er Semestre ==>> FeIni1S þCHA(AÑO(_FRetiro),1,1)
b) Fecha Finalizacion 1er Semestre ==>> FeFin1S þCHA(AÑO(_FRetiro),6,30)
c) Fecha Inicio 2do Semestre ==>> FeIni2S þCHA(AÑO(_FRetiro),7,1)
d) Fecha Finalización 2do Semestre ==>> FeFin2S


þCHA(AÑO(_FRetiro),12,31)

2) Como son 4 situasiones a evaluar, hice uso de las anteriores formumulas, creando 4 "Condicionamientos"
(una para cada situacion (Condicion01, Condicion02, Condicion03 y Condicion04), asi:
a) Condi01=Y(_FRetiro>þCHA(AÑO(_FRetiro),1,1),_FRetiro<þCHA(AÑO(_FRetiro),6,30),_FIngreso>þCHA(AÑO(_FRetiro),1,1),_FIngreso<þCHA(AÑO(_FRetiro),6,30))
b) Condi02 =Y(_FRetiro>þCHA(AÑO(_FRetiro),7,1),_FRetiro<þCHA(AÑO(_FRetiro),12,31),_FIngreso>þCHA(AÑO(_FRetiro),7,1),_FIngreso<þCHA(AÑO(_FRetiro),12,31))
c) Condi03 =Y(_FRetiro>þCHA(AÑO(_FRetiro),1,1),_FRetiro<þCHA(AÑO(_FRetiro),6,30),_FIngreso<þCHA(AÑO(_FRetiro),12,31))
d) Condi04 =Y(_FRetiro>þCHA(AÑO(_FRetiro),7,1),_FRetiro<þCHA(AÑO(_FRetiro),12,31),_FIngreso<þCHA(AÑO(_FRetiro),6,30))

3) Como se trata de establecer la "Fecha de Compensacion Semestral", resumi las firmulas del numeral anterior, asi:
FeComSem =SI(O(Condi01,Condi02),_FIngreso,SI(Condi03,FECHA(AÑO(_FRetiro),1,1),SI(Condi04,FECHA(AÑO(_FRetiro),7,1),"")))

4) Con "TODO" lo anterior, solo me basta colocar en la celda objeto la ultima formula (o sea =FeComSem)
pero veo que "TODO" lo anterior tu lo "condensas" en solo dos lineas! Eso me gustaria aprenderlo ! ! !

(hasta ahora empiezo a entender para que sirve la factorizacion matematica - je je je)
Cordial saludo,
Manuel
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida