lunes, julio 03, 2006

Traduccion de funciones Excel

En la entrada sobre los nombres de las funciones Excel en inglés, proponía una macro para traducir las funciones del idioma local al inglés.

Me llaman la atención sobre la existencia de dos complementos existentes para esta tarea.

Este complemento desarrollado por Eric Desart, se puede descargar del sitio de Ron de Bruin, que entre otras, tiene una función de traducción bi-direccional en 11 idiomas.




Otro complemento es el TranslateIt, con traducción bi-direccional en 12 idiomas.


Este complemento instala una barra de herramientas donde muestra las traducciones, ademas de un menú desplegable con las distintas opciones.


Categorías: Funciones&Formulas_




Technorati Tags:

sábado, julio 01, 2006

Nombre de la funciones Excel en inglés.

En las versiones locales de Excel, las funciones aparecen traducidas al idioma local. Así, por ejemplo, el usuario de la versión española usará SUMA en lugar de SUM, o PROMEDIO en lugar de AVERAGE.
No todos los casos son tan evidentes como estos que he mencionado. Por ejemplo, cómo se llama la función LARGE en español? Sería de esperar MAYOR, pero no, en la lengua de Cervantes la función se llama K.ESIMO.MAYOR.
Uno de los motivos para querer traducir el nombre de una función Excel al inglés podría ser realizar una búsqueda en la red, cuando usando el nombre en español no nos da los resultados deseados. Otra podría ser intercambiar información con un colega que usa una versión en inglés.
Yo personalmente me encuentro en esta situación cuando escribo entradas para este blog.
La solución que propongo se basa en el hecho que cuando grabamos una macro, Excel traduce las funciones al inglés. Esta macro permite traducir cualquier función de cualquier idioma local al inglés

Sub trad_func()
'escrita el 30/06/2006 por JLD

'probar si la seleccion incluye solo una celda
If Selection.Rows.Count <> 1 Then
MsgBox "por favor, seleccionar solo una celda"
Exit Sub
End If

If ActiveCell.HasFormula Then 'probar si la celda contiene o no formula
MsgBox Mid(ActiveCell.Formula, 2)
Else
MsgBox "la celda no contiene funciones"
End If

End Sub

La idea fue sugerida por Gali en el foro Exceluciones.
Esta macro se puede copiar al cuaderno Personal.xls, adjuntarle una combinación de teclas (por ejemplo, Ctrl+Mayúscula+T) y así tenerla a disposición en todo momento.



Categorías: Funciones&Formulas_

Technorati Tags:

viernes, junio 30, 2006

Simplificando la función SI (IF) combinando expresiones lógicas.

Una de las funciones más usadas en Excel es la función SI. La ayuda on-line de Excel la define así: "devuelve un valor si la condición especificada es VERDADERO y otro valor si dicho argumento es FALSO."
La sintaxis de esta función es:


=SI(prueba_lógica;valor_si_verdadero;valor_si_falso)

Para crear pruebas más elaboradas Excel nos permite anidar hasta siete funciones SI como argumentos valor_si_verdadero y valor_si_falso.
En entradas anteriores ya había comentado que crear formulas con varias funciones SI anidadas, suele resultar en fórmulas "chorizo" difíciles de entender y conllevan una nada despreciable inversión de tiempo.

Algunas de las alternativas, dependiendo del caso, pueden ser usar la función ELEGIR (CHOOSE) en lugar de SI o utilizar la función BUSCARV en lugar de anidar varias funciones SI.

Otra alternativa, en especial cuando tenemos varias condiciones que deben cumplirse, es crear fórmulas con expresiones lógicas combinadas con operadores "+".

Qué es una expresión lógica? Funciones (expresiones) en Excel pueden dar resultados numéricos o ser resueltas como expresión lógica con el valor VERDADERO o el valor FALSO. Si escribimos la fórmula "=A1=B1", Excel dará como resultado o FALSO o VERDADERO.
Esta característica puede ser aprovechada para crear una alternativa a la función SI. Veremos esto con un ejemplo. Supongamos un club de compras, donde los clientes reciben descuentos sobre las compras mensuales basados en las siguientes reglas







Nuestra tarea es determinar el descuento que le corresponde a cada cliente dados estos datos:



Para determinar el descuento de cada cliente no utilizaremos funciones SI, sino expresiones lógicas. Dado que tenemos que tener en cuenta dos condiciones (las compras del mes corriente y las del anterior) usaremos la función Y (AND en su versión inglesa) para armar la expresión lógica.
La fórmulas que expresan las condiciones de los descuentos son:



Por ejemplo, si la expresión =Y(B5<5000,c5<5000) es verdadera, la fórmula

=Y(B5<5000,c5<5000)*0.05

da como resultado 5%. Si la expresión no se cumple, el resultado de la fórmula será 0.

Combinamos las fórmulas para cada uno de los casos en una única formula con el operador "+"

=Y(B5<5000,C5<5000)*0.05+Y(B5<5000,c5>=5000)*0.07+Y(B5>=5000,C5<5000)*0.10+Y(B5>=5000,C5>=5000)*0.12

y la copiamos en el rango D5:D14



Esta fórmula es más explicita y manejable que la equivalente usando funciones SI anidadas.


Categorías: Funciones&Formulas_

Technorati Tags: