lunes, marzo 02, 2015

Funciones Excel raramente usadas

En un comentario sobre la función N() un lector me preguntaba sobre las funciones más usadas y las menos usadas. No creo que existan estadísticas al respecto, pero antes de argumentar sobre las funciones menos usadas en Excel, tema de esta nota, debemos descartar de la lista las funciones "profesionalmente específicas".
Con esto me refiero a funciones que realizan cálculos relevantes a un área específica de la actividad profesional. Por ejemplo, sólo profesionales en el área financiera utilizarán la función LETRA.DE.TEST.EQV.A.BONO()  ; o matemáticos interesados en soluciones canónicas y(x) de la ecuación diferencial de Bessel considerarán usar la función BESSELY().

Considerando, entonces, las funciones de "uso general", parece más que razonable que SUMA(), SI() y BUSCARV() se encuentren entre las más usadas.

¿Cuáles son las menos usadas? Algunas de las que integran mi colección de funciones Excel infrecuentes ya han sido mencionadas en este blog, como la función N() (ver el enlace al principio de esta nota). Otras funciones de uso poco frecuente pueden ser:

ELEGIR(): función poco apreciada que puede sustituir con ventaja a la función SI() en fórmulas con SI() anidada e inclusive permitir hacer búsquedas con BUSCARV() de derecha a izquierda.


REPETIR(): tras la inocua descripción "repite un texto un número determinada de veces" se esconde una herramienta que nos permite crear gráficos gráficos en celdas (minigráficos).


TIPO(): útil para crear fórmulas condicionales dependiente del tipo de dato de la celda evaluada.


SIGNO(): permite establecer si un número es positivo, negativo o cero.


RESIDUO(): calcula el residuo de una división; muy útil en cálculos de tiempos, para realizar cálculos tomando en cuenta cada n-ésimo valor de una serie o cálculos condicionales, entre otros usos.


SIFECHA(): la más indocumentada de las funciones Excel.


¿Qué funciones agregarían ustedes a la lista?




viernes, febrero 27, 2015

La función N de Excel

Pregunta: ¿cuándo fue la última vez que utilizaron la función N() de Excel? Supongo que las respuestas se podrán reducir a dos:

  1. Nunca
  2. ¿qué función?

No es casual. La ayuda en línea de Excel nos informa que por lo general no es necesario usar esta función y que existe solamente por cuestiones de compatibilidad con otros programas.

Sin embargo podemos señalar algunos usos más o menos prácticos de esta función. Veamos qué nos dice Excel al respecto




La función N() utiliza un único argumento (Valor) y los resultados posible son los siguientes:

  • Si el valor es un número, el resultado será ese número.
  • Si el valor es una fecha, la función N la convierte en su número de serie.
  • Si el valor es VERDADERO, la función N dará 1.
  • Si el valor es FALSO, la función N dará 0.
  • Si el valor es un error, se devuelve el valor de error.
  • Para todos los demás valores, la función N dará 0.

Uno de los posibles usos de esta función es agregar comentarios a nuestras fórmulas sin utilizar los comentarios de celda. Esto es posible ya que todo valor textual será convertido a 0, es decir que si lo sumamos a nuestra fórmula el resultado no se verá afectado. Por ejemplo


Como puede apreciarse, sumar la función N() en nuestra fórmula no afecta el resultado pero si nos permite ver el comentario en la barra de las fórmulas.


lunes, febrero 23, 2015

Diagrama Gantt con tablas dinámicas

Reconozco que no hay nada novedoso en crear diagramas Gantt con Excel. Este blog aloja varias notas sobre el tema. Las técnicas más comunes para crear un diagrama de Gantt en Excel se basan en formato condicional o en gráficos de barras.

Todos los modelos que he visto hasta ahora, incluyendo los míos, tienen dos inconvenientes:
  • por lo general tienen un solo nivel de actividad, es decir, no se puede descomponer una actividad central en varias sub-tareas;
  • falta de flexibilidad a la hora de agregar o quitar alguna actividad.

El modelo sencillo que muestro en esta nota soluciona estos dos problemas usando tablas dinámicas.

Supongamos que queremos crear un diagrama de Gantt para un proyecto que se compone de 3 etapas. Cada etapa comprende varias actividades.
Empezamos por organizar los datos en una matriz de datos que convertimos en Tabla. Por ejemplo


A partir de esta tabla creamos esta tabla dinámica


Como puede apreciarse los campos de valores están resumidos con distintas funciones (Suma, Max.). Dado que cada registro aparece una única vez en la tabla de valores (existe una única línea para Etapa 1 - Actividad 1), podemos usar cualquier función que resuma valores excepto Contar.

También establecemos formato de fecha para el campo de fechas (Principio).

La ventaja de usar tablas dinámicas es que no necesitamos guardar ningún orden preestablecido al agregar o quitar filas de la tabla de datos. La tabla dinámica siempre estará agrupada jerárquicamente y también tenemos control total del orden.

Ahora tenemos que crear un gráfico dinámico. Los gráficos dinámicos reflejan la tabla dinámica en la cual se basan, no la base de datos de la tabla dinámica


Eligimos el tipo Barra Apilada y obtenemos este resultado


en el cual introduciremos, obviamente, algunas modificaciones. Empezamos por modificar las definiciones de la serie Principio para volverla "invisible" (ver mi prehistórica nota sobre el tema). Luego quitamos los botones y la leyenda. Este video muestra el proceso




A esta altura de los acontecimientos tenemos que corregir dos aspectos del gráfico: el orden de los valores en el eje de las X y el rango de los valores en el eje de las Y (recordemos que estamos usando un gráfico de barras de manera que el eje de las X es el eje vertical y el de las Y es el horizontal)


Si a pesar de las definiciones de Microsoft, el mínimo del eje de valores no es el mínimo del cuadro de valores, tendremos que hacer la corrección manualmente


En cuanto al eje de las categorías, usamos el menú de formato del eje


El último detalle es actualizar la tabla dinámica cada vez que introduzcamos un cambio en la tabla de datos (el gráfico dinámico que la refleja se actualiza junto con la tabla dinámica).
Si queremos evitar tener que hacer la actualización manualmente con cada cambio, podemos crear un evento usando la técnica que muestro en esta nota.