martes, diciembre 16, 2014

Otra forma de crear Hipervínculos en Excel

Los hipervinculos son una excelente herramienta para crear vínculos a celdas u objetos en hojas o cuadernos y también a archivos y páginas Web. Pero también tienen sus bemoles y una visita a los foros de Excel en la red revela que uno de los problemas es que cada tanto los hipervínculos desaparecen o dejan de apuntar adonde deberían.

Pero en esta nota no vamos a hablar de la desaparición de los hipervínculos, sino mostrar otra forma de crearlos, casi instantánea.

Hace unos años atrás mostré una técnica que implica el uso de macros. Hoy vamos a mostrar otra técnica que usa el "drag and drop". Esta técnica es muy útil cuando no tenemos una gran cantidad de hojas.

Uno de los usos más prácticos de los hipervínculos en Excel es crear un índice del contenido del cuaderno. Supongamos que tenemos un cuadernos con datos de cuatro sucursales de un empresa y queremos crear una hoja con hipervínculos que apunten a cada una de las hojas.



En la hoja "indice" queremos crear los hipervínculos a cada una de las hoja de las sucursales.

Seleccionamos la hoja Norte, por ejemplo, y en ella la celda B3 que contiene el texto "Sucursal Norte"


Ahora arrastramos la celda usando el botón derecho del mouse y apretando simultáneamente la tecla Alt. Arrastramos la celda hasta apuntar a la pestaña de la hoja "indice", lo que la activará.
Una vez en la hoja "indice", dejamos de apretar la tecla Alt y posicionamos el mouse en la celda indicada. Al soltar el botón del mouse aparecerá en menú contextual donde elgimos la opción "Crear hipervínculo aquí"


Excel crea automáticamente el hipervínculo, ahorrándonos la molestia de tener que definir el texto.

Esta técnica funciona solamente en cuadernos que han sido previamente guardados.

Este video demuestra la técnica


viernes, diciembre 12, 2014

La última actualización de Excel deshabilita los controles ActiveX

A los usuarios de Excel que hayan instalado la actualización del Office del 09/dec/2014 les espera una desagradable sorpresa: Excel no permite incrustar controles ActiveX en las hojas


Al intentarlo recibimos este aviso: No se puede insertar el objeto


Para quien, como yo, use estos controles en sus modelos (por ejemplo, en gráficos animados o en dashboards), esta situación es un verdadero dolor de cabeza.

Para nuestra fortuna el MVP RoryA publicó esta solución en su sitio :
  • Cerrar todos los programas del Office;
  • usando el Windows Explorer o cualquier otra aplicación (personalmente prefiero el Total Commander) buscar todos los archivos *.exd (no confundir con *.exe) y borrarlos o, preferentemente, cambiarles el nombre.


  • Volver a abrir Excel y probar si todo funciona ahora normalmente. También se puede realizar reboot del computador.
En mi caso, ésto solucionó el problema, pero de acuerdo a las conversaciones el foro Technet en ciertos casos el problema persiste. De acuerdo a Rory, los técnicos de Microsoft conocen el problema y es de esperar una corrección en breve.

Señalemos que el problema no se limita a la incapacidad de incrustar controles ActiveX en una hoja de Excel. Controles existentes dejar de funcionar y son convertidos en imágenes.

sábado, diciembre 06, 2014

Distribución normal de pagos

Hace ya algún tiempo una lectora publicó este comentario en el post sobre como crear una distribución normal con Excel
Estoy tratando de hacer un flujo de caja donde tengo montos de dinero que debo distribuir en el tiempo y que se debe distribuir en forma normal (Gauss). Los datos que tengo son: el monto y el número de meses. Entonces, lo que quiero obtener es, el monto parcial para cada mes con una distribución normal. Es decir, el mes 1 y el mes final tendrán montos bajos y el mes del medio tendrá el mayor valor. La suma total debe los montos parciales debe ser igual al monto total.
Es decir, tenemos que crear primero una distribución normal (Gauss) y luego distribuir el monto total del dinero de acuerdo a esta distribución. Las variables son el monto y el número de meses.

Empecemos por crear la distribución normal para lo cual necesitamos una serie de  12 valores (los doce meses que requiere nuestra lectora) distribuidos normalmente.

Ponemos los datos tal como figuran en la imagen abajo


Seleccionamos la celda A5 (más adelante explicaré por qué su valor es -11) y abrimos el menú Inicio-Modificar-Rellenar-Series; marcamos la opción Columnas, Lineal, en Incremento ponemos el valor 2 (será explicado más adelante) y en límite 11 (ídem)


Apretamos "Aceptar" y Excel crea esta serie

La regla que usamos para crear esta serie simétrica de datos es:

  • valor inicial: número de cuotas menos 1 por -1 (en nuestro ejemplo: (12 - 1) x (-1) = 11)
  • incremento: 2
  • valor final (límite): valor inicial positivo

Ahora usamos la función DIST.NORM para calcular la distribución normal de acuerdo a la media y a la desviación estándar. En la celda B5 ponemos la fórmula =DISTR.NORM(A5,$B$1,$B$2,FALSO) y la copiamos al resto del rango


Ahora podemos usar los valores de la columna B para distribuir los pagos; en la celda C5 ponemos esta fórmula

=$B$3*(B5/SUMA($B$5:$B$16))

que copiamos al resto del rango


Como podemos ver, hemos dividido el monto a pagar en cuotas distribuidas aproximadamente según una distribución normal


Para variar la distribución de las cuotas, podemos cambiar el valor de la desviación estándar (la celda B2) o generar una serie de índices (el rango A6:A17) con un incremento más pequeño.

En esta animación podemos ver como va cambiando la distribución de los pagos a medida que cambiamos el valor del desvío estándar


Para generar una serie de índices con un incremento de 1, empezamos del valor -5.5 (la mitad del número de cuotas menos 1)