jueves, 29 de agosto de 2013

Agrupar fechas en Autofiltro.

Muchas de las acciones más habituales que realizamos en Excel tienen un trasfondo que no vemos, o ni siquiera conocemos, simplemente lo damos como normal y no nos preguntamos más al respecto.
En la entrada de hoy explicaré una opción muy práctica cuando trabajamos con fechas y los autofiltros: Agrupar fechas en Autofiltro.

Veamos en la imagen a qué me refiero. Partimos de un origen de datos, por ejemplo una sencilla tabla con tres campos: Fecha, Comercial e Importe de ventas. Si desplegamos sobre el campo 'Fecha' esto será lo que nos aparecerá:

Agrupar fechas en Autofiltro.


Por supuesto tal cual nos aparecen las fechas agrupadas por mes y año nos resulta muy cómodo para nuestro trabajo de análisis... ya que además, expandiendo cada mes veríamos el detalle por día.

Sin embargo, podríamos preferir ver por defecto el listado de todas las fechas, sin agrupar. Y ¿cómo consigo tal cosa?. Sencillo y rápido, buscaremos las Opciones de Excel, desde la ficha Archivo > botón Opciones y ya en la ventana de Opciones de Excel, buscaremos el menú Avanzadas, y su sección Mostrar opciones para este libro:


Bastará con desmarcar la opción comentada Agrupar fechas en Autofiltro. El efecto es fácil de intuir, lo vemos en la imagen resultante:

martes, 27 de agosto de 2013

Aplazar actualización del diseño de las Tablas dinámicas en Excel.

En bastantes consultas me llegan preguntas sobre la manera de agilizar o acelerar (o al menos no ralentizar) el proceso de cálculo en nuestras Tablas dinámicas, sobre todo motivado por los cambios en el diseño de la estructura de la misma.
Y es que es habitual en Tablas dinámicas de grandes dimensiones que el proceso de resideño, moviendo los diferentes campos que componen nuestro origen dentro de las diferentes áreas de la tabla dinámica (área de filas, columnas, valores, etc), provoque una demora en su 'refresco'.

Hoy veremos una manera muy sencilla de evitar esa demora, activando o desactivando la opción de Aplazar actualización del diseño que se encuentra en la ventana de Lista de campos.
Partamos de un ejemplo sencillo para ver su funcionamiento. A partir de nuestro origen de datos hemos construido la siguiente tabla dinámica:

Aplazar actualización del diseño de las Tablas dinámicas en Excel.



Veremos en la imagen siguiente como teniendo desactivada esta opción de Aplazar actualización del diseño, cada cambio en el diseño de nuestra Tabla dinámica afecta inmediatamente en el refresco de ésta:

Aplazar actualización del diseño de las Tablas dinámicas en Excel.



En la imagen siguiente observamos el efecto de activar nuestra opción Aplazar actualización del diseño, y cómo ahora la tabla dinámica permanece estática hasta que nos decidamos a Actualizar:

Aplazar actualización del diseño de las Tablas dinámicas en Excel.



La ventaja de esta herramienta cobra importancia en Tablas dinámicas de grandes dimensiones, cuando debemos realzar varias modificaciones, y cada una de ellas consume mucho de nuestro tiempo...

jueves, 22 de agosto de 2013

VBA: La propiedad CodeName de las hojas de trabajo en Excel.

Muy probablemente habrás creado alguna vez una macro o procedimiento en VBA haciendo mención al nombre de la hoja de trabajo, y con el tiempo, al pasar diferentes usuarios por el Libro, finalmente nuestra macro generaba un error motivado por el cambio del nombre de la hoja (propiedad .Name).
En el post de hoy aprenderemos que existe otra propiedad (sólo de lectura) que nos permite trabajar, no sobre el Nombre de la hoja (.Name), sino sobre el Nombre en codigo de la hoja (.CodeName).

Si te estás preguntado de que estoy hablando, en la imagen siguiente lo verás mucho más claro:

VBA: La propiedad CodeName de las hojas de trabajo en Excel.


El asunto está claro, la propiedad Name nos mostraría o permitiría cambiar el nombre visible de la hoja de trabajo:

Sub CambioNombreHoja()
'cambia el nombre de la hoja activa
ActiveSheet.Name = "NombreCambiado"
End Sub
''''''''''''''''''''''''''''''''''''''''''''
Sub MuestraNombreHoja()
'muestra en un cuadro mensaje el nombre de la hoja activa
MsgBox ActiveSheet.Name
End Sub


Esta propiedad es la que vemos reflejada en la hoja de cálculo como nombre de las diferentes hojas:

VBA: La propiedad CodeName de las hojas de trabajo en Excel.



El problema de trabajar en nuestros procedimientos mencionando o haciendo referencia a las hojas de trabajo, empleando estos nombres, es que si cambian, nuestros procedimientos fallarán.
Por ejemplo, tenemos nuestras tres hojas:
HojaRoja, HojaVerde y HojaAzul
y un sencillo procedimiento que suma el rango A1:A3 de la hoja 'HojaVerde' en la 'HojaRoja':

Sub RefNameHoja()
'sumamos en HojaRoja valores de la HojaVerde
Sheets("HojaRoja").Range("B1").Formula = _
    Application.WorksheetFunction.Sum(Sheets("HojaVerde").Range("A1:A3"))
End Sub


Obviamente nuestra macro funcionará siempre que dichas hojas 'HojaVerde' y 'HojaRoja' existan con esos nombres exactamente.
Si cambiamos uno de los nombres, bien directamente sobre la hoja de cálculo bien con algún procedimiento (por ejemplo el anterior CambioNombreHoja), el resultado que obtendremos al ejecutar nuestra macro RefNameHoja será un error del tipo 9:

VBA: La propiedad CodeName de las hojas de trabajo en Excel.



Y en este momento es donde cobra sentido emplear la propiedad de lectura .CodeName, ya que referirnos a las hojas de trabajo a través de esta propiedad, evitará que cambios 'accidentales' en los nombres de las hojas fuercen fallos en nuestros procedimientos.
Si nuestro procedimiento de suma se cambia por este:

Sub RefCodeNameHoja()
'sumamos en HojaRoja valores de la HojaVerde
'sean cuales sean sus nombres .Name
Hoja1.Range("B1").Formula = _
    Application.WorksheetFunction.Sum(Hoja2.Range("A1:A3"))
End Sub


Fijémosnos como nos referimos a las hojas directamente por su CodeName, sin necesidad de emplear el objeto WorkSheet, en nuestro ejemplo Hoja1 y Hoja2:
Hoja1.Range("B1")
Hoja2.Range("A1:A3")


Recordemos que esta propiedad .CodeName es sólo de lectura. Por ejemplo:
ActiveSheet.CodeName
nos mostraría el nombre en código de nuestra hoja activa.

martes, 20 de agosto de 2013

La herramienta Buscar y Reemplazar: Buscar Todos en Excel.

Hoy explicaré una funcionalidad, creo, poco conocida: la de Buscar todos.
Sabemos que hay diferentes formas de buscar y encontrar valores en nuestras hojas de cálculo, muchas de ellas con funciones y otras con el recurrido Buscar y Reemplazar.
En esta entrada profundizaremos un poco más en esta sencilla y potente herramienta.


Para acceder a ella fácilmente bastará con presionar Ctrl+B, aunque también lo podemos hacer desde la ficha Inicio > grupo Modificar > botón Buscar y Reemplazar.
Si llamamos a la herramienta se abrirá la característica ventana de búsqueda:

La herramienta Buscar y Reemplazar: Buscar Todos en Excel.



Lo primero que vemos es sencillo de interpretar, se nos pide escribamos qué queremos buscar:

La herramienta Buscar y Reemplazar: Buscar Todos en Excel.



El efecto tras presionar Enter es fácil de suponer, la herramienta buscará el texto indicado entre las diferentes celdas, entrando en bucle en su búsqueda...:

La herramienta Buscar y Reemplazar: Buscar Todos en Excel.


Lo que quizá no nos haya llamado nunca la atención es el botón de Mostrar todos. Si lo presionamos tendremos un listado con todas las celdas donde coincida el valor buscado:

jueves, 8 de agosto de 2013

Mostrar detalle de una Tabla dinámica en Excel.

Veremos hoy una característica muy práctica, y creo poco empleada, de las Tablas dinámicas en Excel. Hablo en particular de la posibilidad de Mostrar detalle de un dato dentro de la Tabla dinámica.
Ojo!!, no confunidir con Expandir o Contraer todo el campo.
Lo que hace especial esta funcionalidad de Mostrar detalle, es que genera una nueva hoja donde lista, en forma de tabla, los registros del origen de datos que componen aquel dato que hemos seleccionado para Mostrar el detalle (Tabla segmentada). Esta hoja además no guardará ninguna relación de conectividad con la tabla dinámica o el origen de datos de partida; lo que nos proporciona la posibilidad de realizar todo tipo de pruebas sobre dicha Tabla 'segmentada'.


Pongamos un ejemplo de cómo trabajar con esta opción. Partiremos del siguiente origen de datos y su correspondiente Tabla dinámica ya construida:



Sabemos que si dejamos un instante el cursor sobre algún dato de la tabla dinámica, aparecerá una etiqueta informativa de en qué área de la tabla dinámica estamos, del valor y del cruce de filas y/o columnas...

Mostrar detalle de una Tabla dinámica en Excel.

pero nosotros necesitamos más. ¿Qué registros son los que componen ese valor resumido?.


Aquí es donde entra en juego 'Mostrar detalles'. Podemos llamar a esta funcionalidad al menos de dos maneras. Situándonos en la celda que represente el valor del que queremos conocer su detalle:
1- haciendo doble clic izquierdo con nuestro ratón.
2- clicando el botón derecho del ratón (Menú contextual) y luego presionando la opción Mostrar detalles

Mostrar detalle de una Tabla dinámica en Excel.



De ambas maneras, lo que se crea es una nueva hoja en nuestro libro de trabajo, donde se lista en forma de Tabla, los registros que componían ese valor. En nuestro ejemplo, aquellos registros que cumplían las condiciones de filtro sobre los campos de la Tabla dinámica (Zona Norte y Comercial BBB) cuyas 'Ventas' en conjunto sumaban 11.987,00:

lunes, 5 de agosto de 2013

Un gráfico de Burbujas en Excel.

En el ejemplo de hoy aprenderemos a trabajar con un gráfico de burbujas en nuestra hoja de Excel. Este tipo de gráfico es algo especial ya que en la serie que lo conforma se necesita aportar tres valores, los cuales pueden estar en las filas o columnas de la hoja de cálculo, pero siempre deben aparecer en el orden siguiente: valor x, valor y y valor z.
Será por tanto obligatorio organizar nuestros datos de origen en filas o columnas de una hoja de cálculo de modo que los 'valores x' aparezcan en la primera fila o columna, los 'valores y' correspondientes y 'los valores z' de tamaño de la burbuja aparezcan en las filas o columnas contiguas.

Es habitual emplear estos gráficos de burbujas para presentar datos financieros o económicos, resultando realmente útiles los diferentes tamaños de las burbujas para resaltar visualmente valores específicos.


En el ejercicio que planteo representaremos (con datos aleatorios) el PIB (producto interior bruto) de cinco paises diferentes. Veamos los datos y cómo están estructurados:

Un gráfico de Burbujas en Excel.



Observemos que la primera columna corresponde a los 'valores x', normalmente sería un valor numérico representando alguna medida (años por ejemplo), pero también admite sin problemas valores de texto (como en nuestro ejemplo).
La segunda columna se reflejará en el eje Y (eje vertical), representando el 'valor y'; en nuestro ejemplo la medida del PIB de cada país.
La tercera y última columna es la importante y diferenciadora con otros tipo de gráficos en Excel, ya que esta tercera columna 'valor z' representará el tamaño de la burbuja. En mi ejemplo he optado por un porcentaje, pero funcionaría igual con valores de cualquier tipo.


Para construir el gráfico de burbujas, entonces seleccionamos el rango A1:C5 y desde la ficha Insertar > grupo Gráficos > botón Otros > del desplegable Burbuja o Burbuja con efecto 3D, con lo que nos aparecerá nuestro gráfico:

Un gráfico de Burbujas en Excel.


Para una mejor representación, al trabajar con una sola serie, podemos Variar colores entre puntos (ver como).
El aspecto final de nuestro gráfico, tras algún retoque estético, quedaría así: