FUNCION SI CON MAS DE 7 ANIDACIONES

05/12/2005 - 21:48 por NAMOR | Informe spam
COMO DEBO DE HACERLE PARA PODER ANIDAD MAS DE 7 FUNCIONES DE SI, O QUE DEBO DE HACER SI

EN LA COLUMNA "A" TENGO VALORES NUMERICOS Y EN LA COLUMNA "B" DEBO DE OBTENER LO SIGUIENTE

SI EL VALOR DE LA COLUMNA A ES >=.01 Y <000 DEBE TOMAR VALORA "A
SI EL VALOR DE LA COLUMNA A ES >000.01 Y <P00 DEBE TMAR VALOR "C
SI EL VALOR DE LA COLUMNA A ES >P00.01 Y <0000 DEBE TOMAR VALOR "D
SI EL VALOR DE LA COLUMNA A ES >0000.01 Y <%0000 DEBE TOMAR VALOR "E
SI EL VALOR DE LA COLUMNA A ES >%0000.01 Y <P0000 DEBE TOMAR VALOR "F
SI EL VALOR DE LA COLUMNA A ES >P0000.01 Y <u0000 DEBE TOMAR EL VALOR "G

NAMOR

Ver este tema: http://www.softwaremix.net/viewtopic-462503.htm

Enviado desde http://www.softwaremix.net

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
06/12/2005 - 22:12 | Informe spam
hola, jose !

... esta formula... la he puesto en practica para entenderla.
=caracter(64+coincidir(a1,{0\3\5\100\250\500\750}*1000+0.01))
Pero porque hay que poner el "64" ?, con otros no funciona.



1) todos los caracteres tienen un codigo [ascii] correspondiente p.e.
-> =codigo("A") devuelve 65 =caracter(65) devuelve "A"
=codigo("B") devuelve 66 =caracter(66) devuelve "B"
=codigo("a") devuelve 97 =caracter(97) devuelve "a" [etc. etc. etc.]
2) la funcion coincidir(...) devuelve la posicion [#] donde 'encaja' el elemento buscado -> 1, 2, 3, etc.
entonces... si el numero 1 [2, 3,etc.] ya lo 'obtuviste'... solo hace falta 'completar' con +64 :)

si cualquier duda... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#7 KL
06/12/2005 - 23:18 | Informe spam
Hola Gabriel,

Sin animo de ofender, antes de perder la cabeza por las funciones personalizadas en VBA (UDF), te sugiero que consideres los
siguientes factores (segun la situacion concreta mas o menos relevantes) que pueden incidir en la toma de decision sobre la opcion
mas apropiada:

1) COMPLEJIDAD: eso de "yo me iria por la mas facil" obviamente es relativo ya que para ti a lo mejor VBA es mas facil, pero que yo
sepa la mayoria de los usuarios encuntran las formulas como mas asequibles :-)
2) DISPONIBILIDAD/UNIVERSALIDAD: las funciones nativas de Excel siempre estan disponibles para todos los archivos abiertos desde la
aplicacion, mientras que las UDF deben copiarse a cada uno de ellos o instalarse por ej. en forma de complemento
3) PORTABILIDAD: si necesitas distribuir tu UDF deberas tener en cuenta los siguientes factores: derechos del usuario para usar
macros, confianza por parte del usuario en tu codigo, version de excel que se usa (tanto el idioma como la antiguedad), ayuda para
el uso o tratamiento de errores, etc. Lo de la version es tambien importante para el uso de las funciones nativas, pero en bastante
menor grado.
4) VELOCIDAD: un 99.9% de UDF por definicion son abismalmente mas lentas que las funciones nativas y pueden hacer el archivo
imposible de manejar si se usan en muchas formulas o rangos muy extensos. Me es muy facil imaginar que la formula en cuestion se
podria usar en varios miles de filas. Haz si quieres pruebas con las formulas de HM y la mia y la UDF tuya sobre 10.000 (o menos)
filas y nos cuentas.
5) MEMORIA: mas o menos lo mismo que el punto anterior. Tu funcion es un clasico - no has declarado los tipos de la variable Ventas
ni del resultado de la funcion por lo que se reserva la mayor cantidad de memoria posible para el tipo Variant.
6) FLEXIBILIDAD: es mucho mas facil/obvio/rapido/seguro (a mi ver) para un usuario que no ha creado el fichero cambiar los
parametros en la formula que en el codigo. Ahora imaginate que tu no estas disponible, y el usuario final que no tiene ni idea de
VBA tiene un problema con el fichero (digamos que no le cuadran los calculos) y necesita encontrarlo urgentemente. ?Podrias predecir
su reaccion cuando tropiece con tu funcion y no encuentre nada que la explique?
7) COMODIDAD: los hay quienes encuentran el dialogo de Habilitar/Deshabilitar Macros bastante irritante.
8) NUMERO DE CARACTERES EN CELDA: aqui probablemente es donde tu solucion por UDF gane a las soluciones que usan las funciones de
hoja, pero creo que es la unica ventaja mientras que las desventajas son los 6 (o 7) puntos mas arriba.

Por tanto, yo me atreveria a afirmar que las UDF's en su mayoria son buenas a falta de una solucion viable por medio de funciones de
hoja de calculo y es que en este caso creo que las hay de sobra.

Saludos,
KL



"Gabriel Raigosa" wrote in message news:uycgiah%
Saludos:

Te explico, yo prefiero las funciones por que parte de mi ejercicio es
trabajar con excel (No soy el que mas sabe Excel, pero estoy calificado como
docente y enseño excel), es por esa razón, que trato en lo posible de
emplear funciones, para buscar formas de lograr la solución de los problemas
que me permita estar trabajando con la mayor cantidad de recursos que
disponga el excel.

Les pongo a su disposición un archivo de Excel que requiere del uso de "if"
anidados, con varias soluciones posible y también esta la solución con
macros.

La sintaxis con macros es particularmente simple, la sintaxis con funciones
lógicas es extensa, pero igual también esta resuelto el problema de
diferentes maneras.

Este ejemplo le puede dar una idea a "NAMOR" sobre las diferentes
posibilidades que podría emplear para resolver su problema con funciones.

Gabriel Raigosa


"Héctor Miguel" escribió en el mensaje
news:%23D4I0Eh%
hola, Gabriel !

Yo me iria por la mas facil, crear una estructura con Case en VBA,
soporta todas las opciones que se quieran [...]



1) [creo que] esto que dices... se 'contra-viene' con lo que comentas en
el post de: 'Error en excel...' donde 'aseguras' que:
'Me gusta el VBA... pero me gusta mas tratar de resolver los problemas
tratando... alguna de las funciones que ya existen' -???-



2) tienes mucha razon en el sentido de que en excel... lo que NO 'trae'...
se lo puedes incluir [a traves de codigos] :)
[aunque no siempre lo que 'parece' mas facil... resulta ser... 'lo mas
conveniente'] :-(
-> revisa la pagina de Charles Williams con relacion a los 'secretos'
de usar funciones persinalizadas en...
-> http://www.decisionmodels.com/calcsecretsj.htm

3) con relacion el ejemplo que provees al respecto de calcular porcentajes
de comision...
otra alternativa [que incluso no es 'dificil de leer'] seria +/- como
la siguiente formula [suponiendo la 'venta' en A1]:
¡*elegir(coincidir(a1,{0\0.1\2\4}*10000),8,10.5,12,14)%

[reitero]: buena propuesta, NAMOR tiene ahora mas opciones 'de donde echar
mano' :D
saludos,
hector.
=>>> Yo se que no es la respuesta esperada, pero le dejo la inquietud pues su
caso se resuelve en forma mas simple de esta manera.
Una forma de calcular las comisiones es mediante el uso e la función Si,
para un caso donde se presentan varias opciones seria:
=si(Y(A1>00,A1<™99,99),A1*0,08, si(Y(A1>000,A1>999,99),A1*0,105,
si(Y(A1> 000,A1<9999,99),A1*0,12, si(A1>@000,A1*0,14,0))))
Este es un mal planteamiento por varias razones. Primera, la formula es
demasiado compleja y muy difícil de entender.
Segunda, los valores son codigos cerrados dentro de la formula haciendo
la modificacion de la formula muy dificil.
Un planteamiento mejor es crear una funcion personalizada como la
siguiente:
Function Comision(Ventas)
Const porcentaje1 = 0.08
Const porcentaje2 = 0.105
Const porcentaje3 = 0.12
Const porcentaje4 = 0.14
Select Case Ventas
Case 0 To 9999.9: Comision = Ventas * porcentaje1
Case 1000 To 19999.9: Comision = Ventas * porcentaje2
Case 20000 To 39999.9: Comision = Ventas * porcentaje3
Case Is >= 40000: Comision = Ventas * porcentaje4
End Select
End Function
Si las constantes no son números se puede usar String es decir texto
** ejemplo tomado de alguna pagina de Internet.
Gabriel Raigosa










Respuesta Responder a este mensaje
#8 Gabriel Raigosa
07/12/2005 - 03:38 | Informe spam
Saludos:

Agradezco mucho tus comentarios, tienes razon en 7 de 8, y por ningun motivo
me ofenderia, las funciones propias del Excel resuelven la gran mayoria de
las necesidades del usuario promedio, que son la grama mayoria de los
usuarios.

Solo un comentario, no defini variables por una de las mismas razones que
anotaste, hacer una funcion mas segura la empieza a poner mas complicada y
para la mayoria es un rollo que no entienden.

He intentado con el ejemplo que envie, que el usuario intente probar
diferentes alternativas usando funciones logicas.

Muchas personas me dicen en algun momento que tienen dificultades con sus
hojas de calculo, y que creen que haciendo un programa en Excel pueden
resolver todos sus problemas, ellos me dicen que necesitan macros para
arreglar sus hojas y hacerlas mas eficientes, luego de analizar sus hojas de
calculo encuentro que muchas veces los problemas se arreglan con tablas
dinamicas, funciones de busqueda y referencia, funciones logicas, etc.,
aclarando que en ultima instancia el problema es el desconocimiento de
muchas funciones propias que el Excel tiene disponibles para resolver un
problema particular, en estos dias encontre a alguien que maneja la
matematica financiera y el Excel lo emplea para resolver problemas
financieros, hasta hace muy poco, un mes o menos, aprendio que el Excel
tenia la funcion =PAGO, y que no tenia necesidad de escribir las ecuaciones.

Es decir que la mayoria de las veces encuentro que es problema de
desconocimiento de las funciones del Excel y de algunos comandos, uno muy
tipico, ctrl+I F5 ir a.. especial, he encontrado centenares de usuarios,
y digo centenares, por que enseno Excel, y nunca han pasado por el menu
edicion, o formato condicional, otro clasico.

?? Me gusta este foro !!

Personas abiertas al dialogo, con argumentos solidos y con ganas de
compartir conocimientos y experiencias.


Gabriel Raigosa


"KL" escribio en el mensaje
news:%239cu$Lr%
Hola Gabriel,

Sin animo de ofender, antes de perder la cabeza por las funciones
personalizadas en VBA (UDF), te sugiero que consideres los siguientes
factores (segun la situacion concreta mas o menos relevantes) que pueden
incidir en la toma de decision sobre la opcion mas apropiada:

1) COMPLEJIDAD: eso de "yo me iria por la mas facil" obviamente es
relativo ya que para ti a lo mejor VBA es mas facil, pero que yo sepa la
mayoria de los usuarios encuntran las formulas como mas asequibles :-)
2) DISPONIBILIDAD/UNIVERSALIDAD: las funciones nativas de Excel siempre
estan disponibles para todos los archivos abiertos desde la aplicacion,
mientras que las UDF deben copiarse a cada uno de ellos o instalarse por
ej. en forma de complemento
3) PORTABILIDAD: si necesitas distribuir tu UDF deberas tener en cuenta
los siguientes factores: derechos del usuario para usar macros, confianza
por parte del usuario en tu codigo, version de excel que se usa (tanto el
idioma como la antiguedad), ayuda para el uso o tratamiento de errores,
etc. Lo de la version es tambien importante para el uso de las funciones
nativas, pero en bastante menor grado.
4) VELOCIDAD: un 99.9% de UDF por definicion son abismalmente mas lentas
que las funciones nativas y pueden hacer el archivo imposible de manejar
si se usan en muchas formulas o rangos muy extensos. Me es muy facil
imaginar que la formula en cuestion se podria usar en varios miles de
filas. Haz si quieres pruebas con las formulas de HM y la mia y la UDF
tuya sobre 10.000 (o menos) filas y nos cuentas.
5) MEMORIA: mas o menos lo mismo que el punto anterior. Tu funcion es un
clasico - no has declarado los tipos de la variable Ventas ni del
resultado de la funcion por lo que se reserva la mayor cantidad de memoria
posible para el tipo Variant.
6) FLEXIBILIDAD: es mucho mas facil/obvio/rapido/seguro (a mi ver) para un
usuario que no ha creado el fichero cambiar los parametros en la formula
que en el codigo. Ahora imaginate que tu no estas disponible, y el usuario
final que no tiene ni idea de VBA tiene un problema con el fichero
(digamos que no le cuadran los calculos) y necesita encontrarlo
urgentemente. ?Podrias predecir su reaccion cuando tropiece con tu funcion
y no encuentre nada que la explique?
7) COMODIDAD: los hay quienes encuentran el dialogo de
Habilitar/Deshabilitar Macros bastante irritante.
8) NUMERO DE CARACTERES EN CELDA: aqui probablemente es donde tu solucion
por UDF gane a las soluciones que usan las funciones de hoja, pero creo
que es la unica ventaja mientras que las desventajas son los 6 (o 7)
puntos mas arriba.

Por tanto, yo me atreveria a afirmar que las UDF's en su mayoria son
buenas a falta de una solucion viable por medio de funciones de hoja de
calculo y es que en este caso creo que las hay de sobra.

Saludos,
KL



"Gabriel Raigosa" wrote in message
news:uycgiah%
Saludos:

Te explico, yo prefiero las funciones por que parte de mi ejercicio es
trabajar con excel (No soy el que mas sabe Excel, pero estoy calificado
como
docente y enseño excel), es por esa razón, que trato en lo posible de
emplear funciones, para buscar formas de lograr la solución de los
problemas
que me permita estar trabajando con la mayor cantidad de recursos que
disponga el excel.

Les pongo a su disposición un archivo de Excel que requiere del uso de
"if"
anidados, con varias soluciones posible y también esta la solución con
macros.

La sintaxis con macros es particularmente simple, la sintaxis con
funciones
lógicas es extensa, pero igual también esta resuelto el problema de
diferentes maneras.

Este ejemplo le puede dar una idea a "NAMOR" sobre las diferentes
posibilidades que podría emplear para resolver su problema con funciones.

Gabriel Raigosa


"Héctor Miguel" escribió en el mensaje
news:%23D4I0Eh%
hola, Gabriel !

Yo me iria por la mas facil, crear una estructura con Case en VBA,
soporta todas las opciones que se quieran [...]



1) [creo que] esto que dices... se 'contra-viene' con lo que comentas en
el post de: 'Error en excel...' donde 'aseguras' que:
'Me gusta el VBA... pero me gusta mas tratar de resolver los problemas
tratando... alguna de las funciones que ya existen' -???-



2) tienes mucha razon en el sentido de que en excel... lo que NO
'trae'...
se lo puedes incluir [a traves de codigos] :)
[aunque no siempre lo que 'parece' mas facil... resulta ser... 'lo
mas
conveniente'] :-(
-> revisa la pagina de Charles Williams con relacion a los 'secretos'
de usar funciones persinalizadas en...
-> http://www.decisionmodels.com/calcsecretsj.htm

3) con relacion el ejemplo que provees al respecto de calcular
porcentajes
de comision...
otra alternativa [que incluso no es 'dificil de leer'] seria +/- como
la siguiente formula [suponiendo la 'venta' en A1]:
¡*elegir(coincidir(a1,{0\0.1\2\4}*10000),8,10.5,12,14)%

[reitero]: buena propuesta, NAMOR tiene ahora mas opciones 'de donde
echar
mano' :D
saludos,
hector.
=>>>> Yo se que no es la respuesta esperada, pero le dejo la inquietud pues
su
caso se resuelve en forma mas simple de esta manera.
Una forma de calcular las comisiones es mediante el uso e la función
Si,
para un caso donde se presentan varias opciones seria:
=si(Y(A1>00,A1<™99,99),A1*0,08,
si(Y(A1>000,A1>999,99),A1*0,105,
si(Y(A1> 000,A1<9999,99),A1*0,12, si(A1>@000,A1*0,14,0))))
Este es un mal planteamiento por varias razones. Primera, la formula es
demasiado compleja y muy difícil de entender.
Segunda, los valores son codigos cerrados dentro de la formula haciendo
la modificacion de la formula muy dificil.
Un planteamiento mejor es crear una funcion personalizada como la
siguiente:
Function Comision(Ventas)
Const porcentaje1 = 0.08
Const porcentaje2 = 0.105
Const porcentaje3 = 0.12
Const porcentaje4 = 0.14
Select Case Ventas
Case 0 To 9999.9: Comision = Ventas * porcentaje1
Case 1000 To 19999.9: Comision = Ventas * porcentaje2
Case 20000 To 39999.9: Comision = Ventas * porcentaje3
Case Is >= 40000: Comision = Ventas * porcentaje4
End Select
End Function
Si las constantes no son números se puede usar String es decir texto
** ejemplo tomado de alguna pagina de Internet.
Gabriel Raigosa













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