jueves, febrero 22, 2007

Excel – Mostrar hojas ocultas, segunda nota

En la nota anterior sobre hojas ocultas en Excel, mostramos una pequeña macro que nos permite mostrar de un golpe todas las hojas ocultas de un cuaderno Excel.
El próximo paso es desarrollar una macro que nos permite escoger qué hojas del cuaderno descubrir y cuales ocultar, sin necesidad de abrir y cerrar cada vez el menú Formato.

En realidad no hace falta desarrollar la macro porque la gente de GR Bussines Process ya lo han hecho y lo ofrecen, gratis, en su página.
Una vez instalado el complemento con la macro, podemos ocultar y mostrar las hojas de un cuaderno a través de un formulario.
Por ejemplo, en este cuaderno he ocultado las hojas Hoja2 y Hoja3. Al activar la macro se abre este formulario




La ventana de la izquierda muestra las hojas visibles; la ventana de la derecha las ocultas. Los botones ubicados entre las ventanas permiten pasar cada hoja de un estado al otro con facilidad.

En el sitio hay un enlace que permite descargar la documentación de la macro.

Recomendado!

Technorati Tags:

domingo, febrero 18, 2007

Excel – Mostrar hojas ocultas

Excel permite ocultar hojas de un cuaderno usando el menú Formato—Hojas—Ocultar. Si queremos ocultar varias hojas de una vez, sencillamente seleccionamos las hojas (seleccionado la pestaña de la hoja junto con la tecla Ctrl).

Pero si queremos mostrar hojas ocultas, solo podemos hacerlo de una a la vez. Cada vez que abrimos el menú Formato—Hojas—Mostrar, Excel nos presentará una lista de hojas ocultas, pero sólo podremos elegir de una a la vez.

Para mostrar todas las hojas ocultas de un golpe podemos escribir una macro sencilla. Abrimos el editor de Vb (Alt+F11). Si existe el Personal.xls, le agregamos un módulo y en él escribimos

Sub mostrar_hojas()
  Dim sh As Worksheet

    For Each sh In Worksheets
     sh .Visible = True
    Next

End Sub

Luego podemos agregarle una combinación de teclas, por ejemplo Ctrl+Mayúsculas+M.

Si el Personal.xls no existe, podemos crearlo fácilmente. Abrimos la grabadora de macros, seleccionamos la opción libro Personal para guardarlo y grabamos algo.



Al hacer esto, Excel crea el cuaderno Personal.xls.




Technorati Tags:

Redondear por múltiplos en Excel

Excel tiene varias funciones para redondear, como ya vimos en notas anteriores. Pero a veces queremos redondear por múltiplos. Es decir, por saltos de un número determinado. Por ejemplo, redondear números por múltiplos de 0.25.

Si tenemos instalado el
Análisis Toolpak, podemos usar la función MROUND de la siguiente manera:
si N el número que queremos redondear y m el factor de redondeo (en nuestro caso, 0.25)

La fórmula es =MROUND(N;m)

Si no tenemos instalado el Análisis ToolPak, podemos usar esta fórmula

=REDONDEAR(N/m;0)*m

El truco consiste en dividir el número a redondear por el múltiplo, el resultado redondearlo a 0 decimales y finalmente multiplicar este resultado por el múltiplo.

En esta tabla usamos ambas funciones para redondear números aleatorios con dos decimales




La fórmula en la celda B2 es =REDONDEAR(A2/m,0)*m (m es nombre que contiene el valor del múltiplo, en nuestro caso 0.25)
La fórmula en la celda C2 es =MROUND(A2,m)

La forma de la fórmula =REDONDEAR(N/m;0)*m podemos usarla con otras funciones de redondeo y obtener resultados interesantes.

Hace unos días preguntaban en uno de los foros en castellano qué fórmula permite redondear un número por múltiplos de 0.05, de la siguiente manera:

dado el número 123.4x, donde 4x es la parte decimal, si x es menor que 5, redondear a 0; si x es igual o mayor a 5, redondear a 5. Por ejemplo,:

123.42 redondear a 123.40
123.46 redondear a 123.45

La solución es usar la fórmula =REDONDEAR.MENOS(N/m,0)*m. En esta tabla vemos los resultados (m = 0.05)


De la misma manera podemos usar =REDONDEAR.MAS, =MULTIPLO.SUPERIOR y =MULTIPLO.INFERIOR.

Los resultados pueden compararse en esta tabla (m = 0.05)


El archivo con el ejemplo se puede descargar aqui
mult_frac
mult_frac.xls
Hosted by eSnips


El sitio XLDynamics tiene una
excelente nota (en inglés) sobre el tema.


Technorati Tags: