Quantcast
Channel: témporaExcel
Viewing all 65 articles
Browse latest View live

Las funciones INDICE y COINCIDIR combinadas para busquedas en Excel

$
0
0
Los que conocen la función BUSCARV (o su homóloga BUSCARH) saben que tiene una limitación (a pesar de ser de las más utilizadas en Excel). Ésta estriba en la incapacidad de obtener valores en una columna que esté más a la izquierda que la columna donde está el valor buscado. Es decir, no podemos poner un numero negativo en su tercer argumento núm_columna.

Esta contrariedad es salvable a costa de tener que anidar la función COINCIDIR dentro de la función INDICE, pero nos puede sacar de muchos apuros.

Tengamos esta tabla como referencia:




Supongamos que necesitamos buscar el nombre de un trabajador a partir de su fecha de nacimiento. Esto es, introducir la fecha en una celda y que en otra, nos apareciera el nombre de forma automática. Si bien con BUSCARV no sería posible hacerlo al estar la columna de búsqueda (Fecha nacimiento) más a la derecha de la columna objetivo (ID Nombre trabajador), si sería posible combinando INDICE y COINCIDIR de la forma que vemos en la imagen de la derecha.

En la barra de formulas hemos escrito las funciones anidadas, donde el resultado lo proporciona la función INDICE, eligiendo entre la columna "ID Nombre trabajador", aquel que está situado en la 6ª fila.

Para no tener que editar constantemente la fórmula para modificar el segundo argumento de la función INDICE con un nuevo nº de fila cada vez que queramos buscar otro trabajador con otra fecha de nacimiento, en su lugar hemos introducido la función COINCIDIR... que nos proporciona ese nº de fila que ocupa la fecha de nacimiento que introducimos de forma más cómoda y sostenible en la celda C13.


La función COINCIDIR tiene tres argumentos:

=COINCIDIR (valor_buscado;matriz_buscada;[tipo_de_coincidencia])

Valor_buscado = es la celda C13 porque allí escribiremos la fecha que debe buscar la función COINCIDIR.
Matriz_buscada = es la matriz donde se buscará la fecha introducida en C13
[Tipo_de_coincidencia] = Es opcional (por eso no lo vemos en la imagen anterior). Si se pone el número 1 o se omite, al buscar la fecha, si no encontrara una coincidencia exacta, tomaría la más cercana por abajo. Si se pone un 0, obligamos a que haya una coincidencia exacta. Si se pone el número -1 tomaría la fecha más cercana por arriba.

Por todo ello, si pusiéramos de forma aislada la función COINCIDIR:  =COINCIDIR (C13;C3:C10) , nos devolvería el número 6 en el ejemplo anterior (que es el número que utiliza INDICE en su segundo argumento para buscar el nombre del trabajador).

Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:










La función INDICE en Excel

$
0
0
La función INDICE proporciona un valor elegido de una matriz. Dicho valor será el que ocupe un nº de fila especificado y se encuentre en un número de columna también especificado. Podemos decir que la sintaxis más corriente de la función INDICE es:


=INDICE (matriz ; núm_fila ; [núm_columna])




Por ejemplo, en la siguiente imagen, vemos a la función INDICE eligiendo el país que ocupa la 4ª fila de la matriz (ver barra de fórmulas):


...como se puede observar, se puede omitir el 3er argumento cuando la matriz sólo tiene una columna.

Así pues, siempre que sepamos el número de fila que ocupa, podemos obtener el valor de una celda de una matriz.

Otra de las aplicaciones de la función INDICE, es trabajar en combinación con la función COINCIDIR. Con ello, conseguimos una utilidad similar e incluso superior a la que nos ofrecen las funciones BUSCARV Y BUSCARH, puesto que el valor que obtenemos (anidando las funciones INDICE y COINCIDIR) puede estar a la izquierda o por encima del valor buscado (a diferencia de lo que ocurre con las funciones BUSCARV y BUSCARH ). Podemos ver todo esto en artículo ("Las funciones INDICE y COINCIDIR combinadas para búsquedas en Excel") de este mismo Blog.


Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:








Ordenar una tabla de Excel por varios campos a la vez

$
0
0

Muy pocos conocen este truco o "rincón" de Excel y sin embargo estamos hablando de una herramienta que es utilizable en uno de los ámbitos más populares dentro de la utilización de Excel:  el manejo de grandes cantidades de datos en forma de tabla.

Se trata de la posibilidad de ordenar una tabla aplicando criterios a varios campos simultáneamente. Casi todos los usuarios de Excel conocen los autofiltros que se pueden aplicar a una serie de datos dispuestos en forma de tabla (y también a lo que se llama formalmente una "Tabla de Excel")...



pero sólo es posible aplicar un filtro a la vez y sobre un campo. Al intentar aplicar un segundo filtro, el primero desaparece.

No es muy conocido que es posible aplicar varios filtros simultáneamente y que esto se puede conseguir seleccionando la opción Ordenar por color / Orden personalizado... que hay en los autofiltros. 


Esta ópción de los menús de autofiltros nos llevan a obtener el siguiente cuadro:


...en el que podemos hacer uso de distintos niveles de filtros de forma simultánea seleccionando  las columnas por las que queremos ordenar, el objeto que será ordenado (valores, colores, etc.) y el criterio  de ordenación. Cada vez que queramos agregar un nivel de ordenación, lo hacemos desde el botón de arriba a la izquierda "Agregar nivel".

Por ejemplo, quedaría así el cuadro para ordenar 2 campos distintos simultáneamente con criterios distintos:


... y así quedaría la tabla ordenada:


Es entendible que no sea muy conocida esta opción, puesto que no es muy intuitiva la forma de acceder a ella. Recordemos que el menú del autofiltro era... Ordenar por color / Orden personalizado...  y lo de "Ordenar por color" despista bastante.


Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:










Buenas prácticas: Estructura y tipos de hojas en Excel

$
0
0
Nos disponemos a diseñar desde el principio una hoja de cálculo. Hacemos doble click en el icono de Microsoft Excel. Aparecen en pantalla las tres hojas vacías que por defecto proporciona la aplicación. Tenemos todo un mundo por delante. Todo por hacer. Hay que poner los cimientos.


Es imprescindible que no vayamos improvisando la forma de estructurar nuestro libro de Excel (la cantidad, orden y función de cada una de las hojas), sino que debemos ceñirnos en alguna medida, a una estructura óptima que está probada y que nos beneficiará a largo plazo en nuestro trabajo con Excel.

Es decir, con una buena estructura de hojas en nuestro libro, conseguiremos...

  • Que nuestro libro de Excel sea escalable sin necesidad de copiar y pegar hojas para añadir datos del próximo mes, año, etc.
  • Que no sea necesario editar y modificar fórmulas durante la utilización de nuestro libro de Excel. Una vez terminado el diseño de nuestro libro nunca se debe editar o modificar una fórmula.
  • Que otros usuarios puedan utilizar nuestro libro de Excel de forma intuitiva y rápida. Es decir, no perdiéndose en una maraña de hojas sin orden ni objetivo claro.
  • Que nosotros mismos, como desarrolladores del libro de Excel, podamos mantenerlo o ampliarlo  en un futuro en caso de ser necesario. Si no hay una estructura clara, no seremos capaces de entender nuestro propio trabajo.
  • Que nuestro libro de Excel sea seguro y exento de errores y sorpresas
  • Que nuestro libro de Excel aporte el máximo valor con los mínimos recursos

Basándonos en los consejos del apartado BPMS 1-3 Sheet content, del libro Best Practice Spreadsheet Modelling Standards & Conventions (Version 6.1) de la Spreadsheet Standards Review Board (SSRB), pasamos a orientar al lector de cuál sería la estructura y los tipos de hojas que deben estar presentes en cualquier libro de Excel que pretenda gestionar datos, información y conocimiento de forma eficiente.


Tipos de hojas en una aplicación basada en Excel

1. HOJA DE CONFIGURACIONES, TABLAS AUXILIARES Y TABLAS DE BÚSQUEDA
Llamadas "Lookup Sheets" por la SSBR, pueden ser hojas que contienen:
  • Datos y supuestos que se asumen de partida y no son modificables por el usuario ("Non-Assumptions"). Por ejemplo, una serie de meses que será utilizada como títulos para la realización de gráficos posteriormente o como origen de datos para otras hojas.
  • Datos y supuestos que pueden ser modificados ("Assumptions") . Por ejemplo, un dato que debe ser posible modificar por el usuario sería el beneficio exigido en un Plan de Viabilidad Económico-Financiero.

2. HOJA DE PORTADA

Como su nombre indica, debemos dotar al libro de una hoja al principio en la que se exprese:
  • El nombre de la aplicación
  • Notas sobre la aplicación:
    • Descripción del contenido de la aplicación
    • Instrucciones generales de uso: ¿por dónde empezar?
    • Advertencias y peligros de uso
3. MENÚ GENERAL, TABLA DE CONTENIDOS O ÍNDICE
Debe haber una hoja que facilite al usuario ir adonde lo necesita. La hoja debe contener botones o bien enlaces mediante hipervínculos y estos deben contener iconos o texto descriptivo en cada opción.

4. PORTADA DE SECCIÓN O SUBMENÚ
Si bien decíamos que es conveniente la existencia de un menú general, éste no debe contener demasiados items, sino que es conveniente estén presentes los más generales. Cada uno de ellos, dirigirá al usuario a otros SUBMENÚS o  PORTADAS DE SECCIÓN.

5. HOJA CON UN ESQUEMA VISUAL DEL MODELO
Siendo fieles a las recomendaciones de la SSBR, es conveniente tener una hoja donde de forma esquemática y visual podamos, desde un principio, ver cuál es el flujo de datos e información a lo largo de las distintas hojas. Esto ayudará al diseñador de la aplicación, pero también se puede poner a disposición del usuario mediante algún botón o enlace.

6. HOJAS EN BLANCO
La SSBR, concibe que los libros de Excel pueden imprimirse de forma íntegra posteriormente (algo que, sinceramente, pienso que es muy dudoso) y que cada hoja tendrá una salida por impresora en determinado orden. Por ello, y al modo de algunos libros que dejan hojas en blanco entre secciones o capítulos, tiene justificación esta recomendación. El lector decidirá si esto es conveniente para su libro de Excel.

7. HOJAS DE INTRODUCCIÓN O IMPORTACIÓN DE DATOS
Llamadas "Time Series Assumptions sheets" por la SSBR, son las hojas donde recibimos los datos de un ERP u otro programa (en el caso de que los datos ya estén generados y sean importados), o bien las hojas donde vamos introduciendo los datos (en al caso de que se generen día a día)


8. HOJAS DE ANÁLISIS E INFORMES
Llamadas "Time Series Output Sheets" por la SSBR, son las hojas que combinan los datos de las "Time Series Assumptions sheets" para ofrecerlos de forma comprensible al usuario como informes para ver o imprimir, pero NO para introducir o importar ningún dato.

9. HOJAS DE GRÁFICOS O CUADROS DE MANDO
Llamadas "Chart Sheets" por la SSBR, son hojas que transmiten conocimiento e información de alto valor mediante gráficos y cuadros de mando intuitivos. Están orientadas a la toma de decisiones y a personal que no necesariamente tiene conocimientos especializados, por lo tanto deben tener la cualidad de transmitir bien lo que se quiere expresar. En este tipo de hojas, el usuario nunca debe tener la posibilidad de introducir datos, aunque SI deberían ser hojas interactivas mediante controles especiales (botones de opción, listas desplegables, cuadros de lista, etc.)


Si ordenamos todo esto en una pirámide que exprese el flujo de información de forma correcta, podría resultar una imagen como la mostrada al principio de este artículo.


Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:






Extraer una parte del texto de una celda, con VBA

$
0
0
Hace unos días recibí un e-mail de una lectora del Blog, preguntando cómo podría conseguir mediante código VBA (una macro) extraer una parte del texto de un rango de celdas en una columna. En su mensaje, me proponía un código que ya estaba utilizando, pero quería perfeccionarlo para tener una mayor utilidad.


El código aportado por mi lectora era:


Sub Extraer()
Final = Range("A65536").End(xlUp).Row
For x = 2 To Final
Cells(x, 2) = Mid(Cells(x, 1), 5, 4)
Next


Lo que hacía cada una de las líneas era:
  1. Determinar a cuantas celdas se le debe aplicar la "Extracción" (2ª línea del código)
  2. Iniciar un bucle con un número de repeticiones igual al número de celdas hallado en el punto anterior, asignando en la primera vuelta del bucle, el valor x = 2
  3. Insertar en la celda B2 un texto que se extraerá del texto de la celda A2 (Cells (x,2), empezando por el 5º caracter (contando desde la izquierda)  y tomando para la extracción los siguientes 4 caracteres.
  4. Comienza otra vuelta de bucle en el que inserta en la celda B3 un texto que se extraerá del texto de la celda A3, empezando por el 5º caracter (contando desde la izquierda)  y tomando para la extracción los siguientes 4 caracteres.
  5. ...y así sucesivamente...
En definitiva, que del texto  FRANCISCO-01   extraería la cadena de texto   CISC

Pero mi lectora quería algo diferente. Lo que pretendía era tener la posibilidad de "extraer" un cierto número de caracteres contando desde la derecha. Ese "cierto número de caracteres" debería ser elegido previamente por el usuario, mediante un cuadro de diálogo que se obtendría en pantalla al presionar un botón (por ejemplo). 

Pues bien, le ofrecí la siguiente solución:

Sub RecortarDerecha()
NCaracteres = InputBox(Chr(13) & Chr(13) & Chr(13) & Chr(13) & "Introduce el número de caracteres a recortar", "Nº caracteres a recortar", "Nº caracteres a recortar", 1000, 1000)
Final = Range("A65536").End(xlUp).Row
For x = 2 To Final
Cells(x, 2) = Right(Cells(x, 1), NCaracteres)
Next
End Sub


Respetando parte del código que teníamos en la propuesta inicial, una de las soluciones posibles se trata de:
  1. Introducir la variable NCaracteres, que representaría a lo introducido por el usuario en un "Inputbox" (2ª línea del código). Podemos recordar cómo se introduce un cuadro de introducción de datos o "Inputbox" en el siguiente artículo: "Introducción de datos en Excel con un cuadro de diálogo"
  2. Cambiar la función MID por RIGHT  (recordemos que ahora se pretende extraer desde el primer caracter de la derecha siempre).
  3. Cambiar los dos últimos argumentos que tenía la función MID, por un sólo argumento: el número de caracteres que queremos recortar desde el primer caracter de la derecha (NCaracteres).
Podemos comprobar el funcionamiento de todo ello, descargando el siguiente archivo Excel:


Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:






Detectar diferencias entre 2 columnas en Excel

$
0
0
Es muy frecuente que los usuarios de Excel necesiten detectar diferencias entre dos columnas o tablas de Excel. Esto se puede hacer de varias formas, pero en este caso, vamos a hacer que la detección se haga mediante "formato condicional" y que las diferencias encontradas en una columna B respecto de una columna A se marquen con un color de fondo distinto.


Nos podemos encontrar con varios casos o varias necesidades distintas:

Detectar diferencias entre pares de celdas de una misma fila


En primer lugar, debemos seleccionar el rango de celdas al cual queremos aplicar la detección de diferencias. Es decir, seleccionamos el rango C3:C9 porque queremos saber si en esa columna ha cambiado algún valor comparado con su pareja en la columna 1. ¡¡Atención, se debe seleccionar con el ratón de arriba hacia abajo, para que quede activa la celda de arriba y después funcione el formato condicional!!


Vamos a la ficha Inicio / Formato condicional.../Nueva regla... / Utilice una fórmula que determine... y escribimos en el campo "Dar formato a los valores donde esta fórmula sea verdadera" la siguiente fórmula:  


El siguiente paso es dar el formato deseado desde el botón que encontraremos más abajo y presionamos "Aceptar". El resultado será similar al siguiente:


...viendo que han quedado resaltadas las celdas de la columna 2 que suponen una diferencia respecto de sus parejas en la columna 1.

Detectar diferencias en cualquier parte de las columnas

En al caso anterior, sólo se detectaban diferencias entre parejas de celdas. Aunque en la columna 2 hubiesen los mismos valores que en la columna 1, tan sólo con cambiarlos de orden, ya se detectaban diferencias.

Ahora necesitamos detectar si en la columna 2 aparece algún valor que no esta en la columna 1, no importándonos la coincidencia de orden de los demas valores. Dicho sobre un ejemplo, en la siguiente tabla, necesitamos que aparezcan resaltados los valores "S" y "P" de la columna  2, puesto que no existían en la columna 1. Los demás valores de la columna 2, aunque en distinto orden, sí existían en la columna 1:


Para conseguir que los valores "S" y "P" de la columna  2 queden resaltados, debemos seleccionar los datos de la columna 2 de la misma forma que lo hicimos en el otro ejercicio y vamos al mismo cuadro de diálogo. Posteriormente, la fórmula a introducir sería:


...y el resultado...



Explicación para la función BUSCARV:

El primer argumento de la función BUSCARV es la primera celda de la columna 2 donde se van a resaltar las diferencias (¡¡NO debe ser una referencia absoluta. Es decir, no debe tener los sígnos de dólar!!). El segundo argumento es el rango de celdas donde se buscarán las diferencias en la columna 1. El tercer argumento es un 1 porque necesitamos que se busque en la única columna del rango (la B). El cuarto argumento indica que se buscará una coincidencia exacta aunque no esté la columna B ordenada.

Explicación para la función SI.ERROR:

El primer argumento de la función SI:ERROR es la propia función BUSCARV. Esto es, SI:ERROR evaluará lo que se obtenga con BUSCARV. El segundo argumento de la función SI:ERROR es un valor lógico (VERDADERO = 1) que obtendremos si BUSCARV da un error (si NO encuentra lo que busca y por lo tanto hay una diferencia).



Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:







Detectar valores duplicados en una columna de Excel

$
0
0

De forma distinta al artículo anterior, en el que se trataba de "Detectar diferencias entre 2 columnas en Excel", vamos en esta ocasión a aprender un "truco" para detectar valores repetidos más de una vez, dentro de una misma columna.

Insistimos en que vamos a "detectar", no a eliminar duplicados. Para esto último, Excel tiene una herramienta que podemos encontrar en la ficha Datos / grupo Herramientas de Datos / Quitar duplicados


Además, y de la misma forma que lo hacíamos en el artículo anterior, lo vamos a hacer con una utilización avanzada de "Formato condicional". Es decir, sin necesidad que crear una columna auxiliar con fórmulas, sino que incluiremos una función "dentro" del formato condicional.


Detectar un valor repetido más de una vez en una columna (forma sencilla)

Si sólo queremos saber los valores que están repetidos (independientemente del nº de veces), se puede conseguir directamente utilizando una de las opciones de Formato Condicional (después de seleccionar el rango donde suponemos que habrá valores repetidos):

Ficha Inicio / Formato condicional / Resaltar reglas de celdas / duplicar valores

Detectar un valor repetido x veces en una columna (forma avanzada)

Vamos a aprender a conseguir lo mismo que antes, pero de una forma algo más avanzada, lo que nos permitirá tener más control en algunos casos. Este mayor control consiste en que, no sólo podremos saber  los valores que están repetidos más de una vez, sino que podemos discriminar aquellos que están repetidos más de x veces sólamente.... o bien aquellos que están repetidos exactamente x veces.

En primer lugar, debemos seleccionar el rango de celdas al cual queremos aplicar la detección de diferencias. Elegimos, por ejemplo, la columna 2 (el rango C3:C9) porque queremos saber si en esa columna ha hay algún valor repetido más de una vez. ¡¡Atención, se debe seleccionar con el ratón de arriba hacia abajo, para que quede activa la celda de arriba y después funcione el formato condicional!!


Vamos a la ficha Inicio / Formato condicional.../Nueva regla... / Utilice una fórmula que determine... y escribimos en el campo "Dar formato a los valores donde esta fórmula sea verdadera" la siguiente fórmula: 


El siguiente paso es dar el formato deseado desde el botón que encontraremos más abajo y presionamos "Aceptar". El resultado será similar al siguiente:


El motivo de utilizar la función =CONTAR.SI ($C$3:$C$9;C3)>1 es que conseguimos que el formato condicional reconozca en cada celda si el valor contenido en ella está repetido más de una vez (por ello se escribe > 1 al final) en todo el rango C3:C9.

Vemos que el rango C3:C9 se escribe con forma de referencia absoluta: $C$3:$C$9;C3 , sin embargo, la referencia C3 NO se debe escribir entre "signos dólar". El motivo de que la celda C3 deba ser una referencia relativa es posibilitar al formato condicional que se aplique a todo el rango (el formato condicional, aunque no lo hayamos puesto, va leyendo celda a celda aumentando un nº de fila: C3, C4, C5, C6...etc.).

Es muy fácil intuir que si queremos detectar sólo los valores que están repetidos más de dos veces, deberíamos cambiar >1  por  >2 ..... y las demás posibilidades son fáciles de imaginar. Por ejemplo, podríamos marcar aquellos valores que estén repetidos exactamente 3 veces, tan sólo cambiando > por =3.


Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:









Cómo hacer un Dashboard económico-financiero con Excel (1)

$
0
0
Quizá el lector ha llegado a este artículo ávido de formación e información sobre un tema que ya conocía de su existencia como es el de los Dashboards o Cuadros de Mando económico - financieros. Quizá el lector ha llegado hasta aquí por la curiosidad que le genera un tema que no conocía, pero que cree que puede ayudarle en su desempeño profesional en el área eco-fin de la empresa donde trabaja... o de su propia empresa.

Parte de un Dashboard creado en Excel

En cualquier caso, vamos a intentar construir esta serie como corresponde... desde el principio.

¿Que es un "Dashboard"?

En el ámbito empresarial, un "Dashboard" (traducido de forma literal sería "Tablero de a bordo" por su parecido a un salpicadero con velocímetros y otros indicadores gráficos) es un informe que proporciona indicadores de ciertos procesos de negocio y que cumple las siguientes condiciones:
  1. Muestra gráficamente los datos, ayudando al destinatario del informe a enfocar su atención en posibles desviaciones, tendencias, comparaciones y otros comportamientos de algunas métricas de carácter económico y financiero (por ejemplo).
  2. Muestra sólo los datos relevantes con respecto a un objetivo general establecido en un Plan de Empresa o en un Plan Estratégico.
  3. Muestra conclusiones objetivas para inferir en el lector la construcción de su propio análisis ponderado por matices y factores que van más allá de la frialdad de los números.

Dashboard creado en Excel

Si bien lo que acabamos de ver es la cara visible, tenemos que señalar que detrás de esta página o "tablero de a bordo" debe haber toda una organización o estructura de hojas con distintas funciones. Aprenderemos la forma de desarrollar todo ello más adelante, pero un adelanto de esa estructura se puede ver en el artículo de este mismo Blog: "Buenas prácticas: Estructura y tipos de hojas en Excel"

Así pues, en adelante, cuando hagamos referencia a "Dashboard", se supone que estamos teniendo en cuenta también la estructura que lo soporta y no sólo la página que contiene los KPI's.

¿Cómo empezar?

Se dice que lo ideal cuando nos disponemos a desarrollar una aplicación en Excel es intentar aplicar el principio de Pareto de la siguiente forma:
  • 80% del tiempo planificando bolígrafo en mano
  • 20% del tiempo desarrollando en Excel
A mi me parece algo exagerado, pero quizá sí sería ajustado considerar una relación de 60% - 40%  o incluso de 70%-30%.

Vamos a ocuparnos de esa planificación que debería ocuparnos entre el 60% y el 80%. Para ello y, de forma contraria a lo que mucho usuarios hacen, DEBEMOS EMPEZAR POR EL FINAL. Es decir, lo primero que debemos decidir al abordar el desarrollo de un cuadro de mando, son todas aquellas cosas que tienen que ver con el final. Estas cosas son:

Planificación
  1. Definir elobjetivo general que a final queremos conseguir.
  2. Definir quienes serán los destinatarios finales de nuestro trabajo, cómo lo utilizarán, el nivel de detalle requerido, etc.
  3. Definir los indicadores que al final son los que nos guiarán en la toma de decisiones.
  4. Definir las fuentes de datos que "alimentarán" a nuestro Dashboard cuando ya esté terminado.
  5. Definir las dimensiones (criterios por los que la información se mostrará) y los filtros (formas de segmentar o acotar los datos y la información.
Es absolutamente necesario tener TODOS estos puntos bien definidos y expresados por escrito, puesto que en el proceso de desarrollo del Dashboard vamos a necesitar una visión de conjunto.

Como puede ver el lector, no hemos decidido nada respecto de nuestro libro de Excel, ni tan siquiera hemos hablado de Excel. Para ello, aun es pronto. En el artículo siguiente desarrollaremos con más detalle cada uno de los 5 puntos enumerados anteriormente, poniendo también algunos ejemplos.


Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:









Cómo hacer un Dashboard económico-financiero con Excel (2)

$
0
0
En este post, vamos a desarrollar los puntos que conforman las líneas maestras de la planificación de un dashboard económico - financiero para una definitiva comprensión. El objetivo no es empezar el desarrollo con Excel. El lector tan sólo debe reflexionar, tomar notas y hacer un esquema de todo cuanto se aconseja a continuación.

Queremos insistir al lector (para que no pierda de vista el contexto) en algo que ya dijimos en la primera entrega de esta serie de articulos: "...cuando hagamos referencia a "Dashboard", se supone que estamos teniendo en cuenta también la estructura que lo soporta y no sólo la página que contiene los KPI's". Aunque es cierto que en muchos contextos nos referiremos a la página o páginas que contienen precisamente esos indicadores.
DEFINIR EL OBJETIVO GENERAL

Es necesario pedir al que será lector final del dashboard, cuál es el problema que ha considerado suficiente para pensar en necesitar información económico-financiera para la toma de decisiones. Podría ser la necesidad de controlar una nueva unidad de negocio, o quizá la necesidad de controlar la evolución de las ventas en distintas líneas o gamas de productos para guiar la política de ventas, o tal vez cualquier otra razón similar. En definitiva:

El objetivo final debe ser nuestra primera ocupación

DEFINIR LOS DESTINATARIOS DEL DASHBOARD

Es necesario prestar atención a algunos aspectos sobre los destinatarios o "consumidores" finales de un dashboard. El dashboard...
  • ...¿Será leido e interpretado por personal interno de la empresa o será presentado a entidades financieras, proveedores u otros agentes? Los contenidos deberán adaptarse a las necesidades y el objetivo, la confidencialidad requerida, etc.
  • ...¿Qué lugar ocupan los destinatarios en la organización de la empresa y que formación tienen? No es lo mimso un dashboard dirigido a un responsable de área, que a un gerente con formación en Ciencias Empresariales, que al Director General de la compañía (sin formación específica en materia de empresa y finanzas, pero con conocimientos generales), que a los socios accionistas. Cuanto más alto sea el nivel jerárquico la información debe ser más gráfica e intuitiva y con ausencia de tablas y terminología económica. Tan sólo en el caso de cuadros de mando o informes para responsables de área, deben incluirse tablas en combinación con gráficos y términos técnicos.
  • ...¿Será necesario interactuar con el dashboard? Si va a ser interpretado de forma estática (incluido en un Power Point, en un PDF, etc.) no podremos interactuar para acotar fechas, seleccionar líneas de negocio, formato de los datos, etc. Esto nos obligará a afinar mucho con el contenido, puesto que deberá ser exactamente lo que el destinatario necesite. Sin embargo, si es posible interactuar, habrá que utilizar controles especiales como listas desplegables, botones de opción, etc., y deberá ser tenido en cuenta a la hora de definir los KPI's y su distribución en la página.

DEFINIR LOS KPI's

Un KPI es un indicador del nivel de cumplimiento de un objetivo relevante en uno o varios procesos de negocio. Por lo tanto, un KPI nos debe reclamar atención e intervención ante algo que se está desviando de lo establecido como objetivoLos KPI's que debemos elegir para nuestro dashboard deben dar soporte a nuestro objetivo general. No debemos incluir un dato sólo porque lo tenemos disponible.

Un truco para ayudarnos a configurar nuestros KPI's es formular las preguntas que deben ser contestadas por éstos (basadas en el objetivo general que se comentaba en el punto anterior) y disponerlas en una página como si fuera nuestro futuro dashboard.


..Después, podremos variar este boceto y adecuarlo a ciertos criterios de uso óptimo del espacio en la página (ver el artículo "Cómo construir un Dashboard económico-financiero (3)"). En el ejemplo de arriba, al final del proceso de desarrollo del dashboard, el "boceto" anterior terminó siendo así:


Este es un Dashboard totalmente temático, puesto que analiza sólo la producción de una empresa (las ventas  o facturación, regularizadas con la variación de exsistencias de productos en curso y terminados), pero podría ser un dashboard que en una sóla página aportara la información mas relevante de varios aspectos de una compañía, como pueden ser los costes fijos, variables, de la producción, etc., así como el beneficio, cash flow u otros.

DEFINIR LAS FUENTES DE DATOS

Uno de los sentidos de tener explícito el anterior punto (definición de KPI's) es precisamente, saber de dónde tenemos que extraer los datos.

Imaginemos que vamos a desarrollar un dashboard para un responsable del departamento comercial y, a requerimiento suyo, debemos incluir un KPI con el período medio de cobro a clientes en un período detemrinado. Para ello y, según la fórmula del PMC (Período medio de cobro), necesitaremos saber:
  • La facturación neta realizada en el período al cliente
  • El saldo medio de deuda que ese cliente ha mantenido con la empresa en el período
El motivo es que el PMC=365 / (Ventas / Saldo medio deuda cliente). O lo que es lo mismo, para un cliente al que se le haya facturado 600.000 € en un año y haya mantenido una deuda de 100.000 € como promedio, el PMC habría sido de 61 días (2 meses aprox).

Conclusión: debe ser posible encontrar en algún sitio de nuestro sistema de información los datos enumerados anteriormente. Por ejemplo, si tuviéramos acceso al "Libro Diario" del programa de contabilidad o al "Libro mayor" de la cuenta 430xxxxxx, podríamos importarlo a formato Excel y a partir de ahí sólo tendríamos que filtrar los movimientos en un período determinado y añadir una columna que genere un acumulado. Posteriormente, para saber la deuda media, calculamos el promedio del acumulado.

De forma similar, la facturación neta sería fácil obtenerla de ese "Libro Diario" filtrando por la cuenta 70xxxxxx y totalizando los registros obtenidos en un período determinado.

Este podría ser un ejemplo, pero debemos reflexionar sobre todos los KPI's que pretendemos incluir y sobre sus orígenes de datos. 




DEFINIR LAS DIMENSIONES Y LOS FILTROS

Dimensiones

Las dimensiones son todos aquellos campos que NO son el valor en euros. Dicho de otra forma, son aquellos campos por los que podríamos consultar cosas sobre el campo protagonista que es el valor en euros. Si nos fijamos en la tabla del punto anterior, vemos que hay 3 campos de dimensión:

  • La fecha
  • El código de cuenta
  • El nombre de la cuenta
El cuarto campo es el propio valor en euros y NO es una dimensión. El quinto campo es añadido después de importar los datos del ERP o del programa de contabilidad y su utilidad es reflejar el acumulado.

Por ejemplo, si en nuestro dashboard  quisiéramos introducir un gráfico de tarta para ver la distribución por líneas de negocio, deberíamos conseguir un campo adicional con la dimensión "Línea de negocio".

Filtros

Antes hemos definido y entendido lo que son las dimensiones. Pero lo más frecuente es que no necesitemos todos los registros que tenemos de nuestra base de datos original. A veces, necesitaremos extraer de ella una tabla ya filtrada mediante fórmulas o funciones de forma continua y como origen de datos de un KPI determinado. Otras veces necesitaremos que los filtros los aplique el usuario de forma interactiva mediante listas desplegables, botones de opción, cuadros de lista, etc. Debemos planificar adecuadamente todo ello.



Ejemplo de filtros en los que el usuario decide interactuando




Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:










Cómo hacer un Dashboard económico-financiero con Excel (3)

$
0
0
En este artículo hablaremos de 4 principios en el diseño de un dashboard o cuadro de mando económico-financiero.
1. Simplicidad

  • Un dashboard debe ocupar una sóla página y preferentemente con orientación horizontal o apaisada. No debe ser necesario hacer scroll en nuestra pantalla de ordenador , ni tampoco pasar de una página a otra en caso de leerlo en papel. Si necesitamos tantos indicadores que no podemos "encajarlos" en una sóla página, tenemos que considerar dividirlos en dos temas distintos y realizar dos dashboards. Por ejemplo, si no hay espacio suficiente en una página para todos los KPI's de costes de una empresa, podemos separarlos por tipo de coste (Coste fijo / Coste variable o bien Costes generales / Costes de la producción, etc.) en varios dashboards.
  • No incluir demasiadas tablas y listas. Hablamos de diseñar un dashboard, no un informe ni un scorecard. Un dashboard debe incluir KPI's que comparen de forma visual lo conseguido respecto de las metas a conseguir. Sin embargo, un scorecard ofrece una información principalmente numérica en forma de tablas (y a veces indicadores gráficos que casi siempre muestran la evolución y tendencia), pero orientado a la toma de decisiones más operativa y menos estratégica. Además, los scorecard (a diferencia de los dashboard) se actualizan y son consultados con más frecuencia y están dirigidos a mandos intermedios.
  • Formatos austeros. NO a la fantasía. Sobre esto, recomendamos encarecidamente que el lector revise el articulo "20 consejos sobre gráficos y una norma desesperada". En definitiva, se trata de maximizar el "data-ink ratio" o "ratio información / tinta" por centímetro cuadrado. Concepto este introducido por el experto en visualización de datos, Edward Tufte.
2. Uso adecuado del espacio en la página

Si bien en un dashboard sólo debe aparecer información relevante y que aporte conocimiento para la toma de decisiones, dentro de la colección de KPI's que decidimos incluir, no todos tienen la misma importancia y eso es motivo de plantearse la pregunta ¿Qué lugar debe ocupar cada KPI? La respuesta la tenemos en el siguiente esquema:





La numeración de los cuadros anteriores, representa el orden de importancia de cada zona y el orden en el que la mayoría de lectores focalizan su mirada en cada espacio (según el proyecto "Eyetrack III" del "Pointer Institute" , del cual se pueden obtener interesantísimas conclusiones).


3. Intuitivo

Cualquier persona debería poder entender qué tipo de información ofrece el dashboard y su contexto. Sería una buena idea poner esto en práctica con algún conocido que no haya intervenido en el desarrollo. Si esa persona necesita preguntar repetidas veces sobre el significado de las distintas partes del dashboard, es que algo no va bien.


Quizá son necesarios algunos títulos más... o quizá menos. Quizá los gráficos no son adecuados o quizá falta o sobra información numérica de apoyo. También es posible que algunos KPI's o títulos no estén suficientemente resaltados o en el lugar adecuado. Otras causas de confusión pueden ser los formatos aplicados a los números.

Títulos

  • Ineludiblemente, el dashboard debe incluir un título haciendo referencia al rango de fechas al que se refiere la información económica.
  • Debe quedar muy claro cuál es la fecha última de actualización de los datos que nutren al dashboard
  • Los títulos han de ser descriptivos, evitando las siglas o símbolos que produzcan confusión.
  • Una técnica que se puede aplicar a los títulos, es aplicarle unos colores muy suaves, precisamente para realzar la importancia de los datos.

Formatos

  • Es conveniente usar el punto de los millares, porque facilita la lectura:

NO:  2354890               SI:  2.354.890

  • Usar decimales sólo si el contexto de los datos lo requiere. Por ejemplo, si las cifras que se manejan son muy pequeñas. Sin embargo, si representamos cifras "millonarias", no es necesaria la utilización de decimales en un dashboard que va a ser interpretado para la toma de grandes decisiones.
  • Usar el símbolo del € o de la moneda correspondiente, sólo cuando sea estrictamente necesario. Si el dashboard está desarrollado en español, va a ser leído por personas de nacionalidad española y además referido a las ventas de una empresa española ¿qué necesidad hay de reflejar el tipo de moneda?
  • Si las cifras representan varios millones, se pueden mostrar en "miles".

4. Interactivo y configurable

Interactivo


Nuestro "Tablero de a bordo" debe ofrecer la posibilidad de que el usuario modifique algunos parámetros  o "dimensiones" mediante ciertos controles. Es decir, debemos proveer a nuestro dashborad de listas desplegables, botones de opción, casillas de verificación, etc. que sean capaces de:
  • Seleccionar rangos de fechas (podemos ver como ejemplo de vanguardia, los nuevos controles de escala de tiempo de Excel 2013)
  • Seleccionar formatos de presentación (euros, porcentajes, unidades, etc.)
  • Seleccionar el tipo de presentación (alternar entre gráficos de un tipo u otro)
  • Seleccionar lo que se quiere ver (podemos aprovechar un mismo espacio de nuestro dashboard para alternar entre presentar un gráfico de tarta con la distribución de ventas por líneas de negocio, o bien presentar una línea de tendencia de la producción del período)
  • etc.

Configurable

En casi cualquier aplicación de Excel, hay ciertos parámetros que no son inamovibles a lo largo del tiempo y tampoco válidos para cualquier empresa. Por ejemplo:
  • Podríamos incluir en determinados títulos el nombre comercial de la empresa, pero, ¿qué ocurrirá si algún día cambia dicho nombre?
  • Podríamos incluir en las formulas que lo requieran el tipo de IVA vigente, pero, ¿qué ocurrirá si hay un cambio al respecto?
  • Podríamos imputar los costes de alquiler según un porcentaje de ocupación determinado, a las distintas áreas funcionales de la empresa, pero, ¿qué pasaría si algún día la empresa hace reformas  y redistribuye el espacio debido a nuevas necesidades?

Por lo tanto y según estos ejemplos, nos damos cuenta de que es necesario que el usuario tenga acceso a estos parámetros mediante una hoja que permita su edición cuando sea necesario.




5. Navegable

Ya hemos dicho en otros artículos que para desarrollar un dashboard en un libro de Excel, es necesaria una estructura con varias hojas de distinto tipo y funcionalidad. Por lo tanto, lo ideal es dotar a la aplicación de un sistema de navegación mediante links y/o botones. Este tema lo podemos ver desarrollado en el artículo "Buenas prácticas: Navegar por un libro de Excel".



En el siguiente artículo de esta serie y después de haber planificado y tomado multiples decisiones sobre los KPI's necesarios y la forma en la que se representarán estos, entramos en la recta final de la planificación. Se trata de establecer la forma de organizar los datos en distintas hojas, desde el principio, hasta que estos están representados en un dashboard. Es decir, conoceremos las 3 capas o fases de la información: desde que el dato se genera o importa de otra aplicación, hasta que está presentado en forma de KPI, pasando por procesos y cálculos intermedios mediante fórmulas, funciones y tablas.



Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:






Las 10 ventajas de hacer una Tabla de Excel

$
0
0
No quería dejar en el olvido la promesa que hice en el artículo "La magia y productividad de las Tablas en Excel". Esta promesa no era otra que hacer un post donde se resumieran las principales características diferenciales de lo que Excel llama "Tabla". Recomendamos encarecidamente leer ese artículo como "aperitivo". En él, ya indicábamos cómo hacer una Tabla de Excel y hacíamos una breve reseña de alguna característica y ventaja.


Vamos ahora a  resumir las 10 que consideramos más importantes, pero antes que nada, es necesario que el lector tenga configuradas de forma correcta algunas opciones de Excel. Para ello, vamos a las Opciones de Excel  / Revisión / Opciones de autocorrección  y marcamos todas las casillas de la ficha "Autoformato mientras se escribe".

Recordamos que a las Opciones de Excel, se accede en Excel 2007 mediante el botón de Office grande que hay arriba a la izquierda y en Excel 2010 mediante la ficha Archivo.


Arrancamos...

1. Formatos y estilos visuales automáticos con dos clicks

Para dar formato como "Tabla de Excel" a una región de datos en forma de tabla, podemos hacerlo situándonos en cualquier celda de esa región


 ...y desde la ficha Inicio / Estilos / Dar formato como Tabla . ...



...seleccionamos el estilo que más nos guste ...


... y después aceptamos el rango propuesto:




2. Retorno automático y agrega fila automáticamente

En la última fila de la Tabla, cuando llegamos al último campo de la derecha, si presionamos la tecla TAB, Excel detecta automáticamente que lo lógico es seguir escribiendo en una nueva fila y sitúa el cursor en la fila de abajo y en el primer campo de la tabla.
Como extensión de esta ventaja, Excel acoge dentro del rango* de la Tabla, la fila donde se sitúa el cursor después de haber realizado un "retorno automático".

*Recordemos en el artículo "La magia y productividad de las Tablas en Excelque el rango de una Tabla queda reconocido como una "entidad" especial en Excel.



3. Autorrellenado de fórmulas en columnas

Cualquier usuario iniciado en Excel sabe que si ponemos una fórmula en una celda, tenemos la posibilidad de  "arrastrarla" o utilizar la herramienta de "autorrelleno" para que se extienda a lo largo de varias celdas. En las Tablas de Excel, si ponemos una fórmula en cualquier celda de una columna, ésta se extenderá a toda la columna de forma automática. Esto es una venta enorme, especialmente si trabajamos con tablas que contienen muchos registros, pues nos ahorra mucho tiempo.


4. Autoselección de filas, columnas y de la tabla entera

De forma similar al "Autorrellenado" de formulas, si queremos seleccionar toda una columna de datos contenidos en una Tabla de Excel, no es necesario hacerlo de forma manual arrastrando la selección a lo largo de todo el rango de la columna. Basta con situarnos encima del borde superior de la columna y vemos que aparece una flecha.

En ese momento, si hacemos 1 click, quedarán seleccionados TODOS LOS DATOS DE LA COLUMNA. Si hacemos un segundo click, quedará seleccionada TODA LA COLUMNA (incluido el encabezado). Todo lo dicho anteriormente es aplicable a filas (situando el cursor en el borde izquierdo de cualquier fila) y para la Tabla entera (poniendo el cursor en la esquina superior izquierda).


5. Copiar y pegar respeta el formato de relleno de celda

Todos sabemos que si copiamos una o varias celdas y las pegamos en otro lugar, el formato del relleno de las celdas, también se copia y pega cambiando el aspecto de las celdas de destino (a no ser que utilicemos "Pegar valores"). Pues bien, en las Tablas de Excel, podemos copiar en otro lugar y pegar encima de la Tabla y el fondo siempre será el originalmente establecido. Es necesario saber que, si proporcionamos un color de relleno desde el botón a tal efecto (icono del bote de pintura), este prevalecerá sobre el formato nativo de la Tabla.


6. Titulos inteligentes ante el scroll de pantalla

Si hacemos un scroll de pantalla hacia abajo con el ratón o con la barra de desplazamiento vertical y estamos dentro de una Tabla de Excel, los encabezados de ésta no desaparecen, sino que los tendremos disponibles a la altura de los títulos de las columnas. Quizá se entienda mejor viéndolo:


Vemos que los títulos de columna B, C, D y E  han desaparecido siendo sustituidos por los encabezados de la Tabla. De esta forma siempre los tenemos disponibles, aunque necesitemos ver la parte baja de una Tabla.


7. Movimiento inteligente de columnas

Las columnas de una Tabla de Excel son "entidades" u objetos que se pueden cambiar de orden arrastrándolas simplemente. Para ello, si leemos la ventaja nº 4, recordaremos que haciendo 2 clicks en el borde de una columna, queda TODA LA COLUMNA (encabezados incluidos) SELECCIONADA. Pues bien, una vez hecho esto, podemos hacer click en un borde de la selección de la columna y arrastrarla hacia otra posición:



8. Agrega automáticamente columna

Si queremos añadir una columna a la derecha de una Tabla y que quede acogida dentro del rango, sólo tenemos que escribir el título del encabezado en la celda de la derecha que en principio está fuera del rango de la Tabla. Automáticamente, Excel agrega un columna al rango y reconoce lo que hemos escrito como un encabezado más.



9. Gestión inteligente del nombre de los títulos de encabezados

Quizá a estas alturas el lector ya se ha dado cuenta de que, cuando tenemos una "Tabla de Excel" y estamos dentro de ella, las referencias que se hagan a celdas o títulos de encabezado no son del tipo "B4" (por ejemplo) ... o "C7".... sino que las Tablas tienen su propio lenguaje. Vemos a continuación cómo al hacer referencia a otra celda poniendo el signo igual y haciendo click en ella, no aparece la clásica referencia  =D54 , sino que aparece =[@[€VENTAS]] , que quiere decir que estamos haciendo referencia a la celda de la misma fila donde estamos (el símbolo @) que está en la columna [€ VENTAS].


Así las cosas, se nos plantean unas dudas: ¿Que ocurre si cambiamos el nombre del titulo de un encabezado de columna, después de haber introducido fórmulas con ese tipo de referencias? ¿Perderemos las referencias correctas?.  La respuesta es NO.  Si cambiáramos un título, se produciría el cambio en todas las fórmulas que tengamos con esa referencia.



Tenemos que decir que el "lenguaje" de referencia a celdas que acabamos de ver pertenece a Excel 2010. Sin embargo, podemos ver a continuación que en Excel 2007, cambia significativamente:


En 2007, las referencias son más largas, puesto que expresan toda la "ruta" empezando a poner el nombre de la tabla y después, en vez de una simple arroba para significar que la referencia esta en la misma fila (como hace en Excel 2010), pone la expresión [#Esta fila].

10. Totaliza de forma correcta las columnas con filtros

Aunque a algunos usuarios no expertos les parezca sorprendente, si Excel debe operar con un rango de celdas de una columna en la que existen columnas ocultas debido a un filtro u otras razones, la operación NO SERÁ CORRECTA. Podemos verlo en la siguiente tabla (No es una "Tabla de Excel") donde hay un filtro aplicado (y por lo tanto hay filas ocultas) y vemos cómo la suma es incorrecta:


Sin embargo, con una Tabla de Excel, esto no ocurre porque si añadimos una fila de totales (podemos hacerlo estando situados en cualquier celda de la Tabla de Excel y en la ficha contextual Diseño / Grupo Opciones de estilo de tabla / activar la casilla "Fila de totales"), automáticamente tenemos la posibilidad de totalizar la tabla, pero con la función SUBTOTALES, la cual no se ve afectada por los filtros o las filas ocultas:





Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:









Cómo hacer un Dashboard económico-financiero con Excel (4)

$
0
0
Seguimos en este artículo con la planificación de un dashboard o cuadro de mando económico-financiero. Vamos a ver la forma en la que se organizan los datos en las distintas hojas de cálculo. Es decir, los modelos de datos.

Como resumen y adelanto a este artículo y los siguientes, podemos decir que tenemos que aprender a llegar hasta aquí (presentación)...


...pasando por aquí (análisis)...


...y empezando desde aquí (datos)....


Lo que acabamos de ver son 3 ejemplos de las 3 capas o fases del flujo de la información:

datos > análisis> presentación
o bien...
datos > información > conocimiento

Cuando necesitamos desarrollar una aplicación cuya utilidad última va a ser el análisis de datos, no podemos pretender hacerlo de una vez y en una sóla hoja de Excel. Debemos trabajar en distintas hojas "especializadas" porque ello dará orden y escalabilidad (posibilidad de ampliación y sostenibilidad a lo largo del tiempo). Además, utilizar una hoja más, es gratis en Excel. Remitimos al lector al artículo "Buenas prácticas: Estructura y tipos de hojas en Excel" especialmente al gráfico de pirámide y al punto nº 7.

En este artículo vamos a desarrollar la primera de las fases anteriormente mencionadas:

DATOS

La primera fase o estado en el que se encuentra la información se llama "fase o capa de datos" y puede tomar varias formas. Comenzamos por descubrir los modelos que pueden adoptar los datos en esta primera fase:, pero antes recordemos el concepto "Dimensión" a la hora de hablar de tablas y modelos de datos:

"Dimensión" es un criterio por el que podemos ordenar, clasificar o agrupar unos datos numéricos. Por ejemplo, si tenemos una tabla con los campos "Fecha", "Tipo de gasto" y "Euros", las dimensiones serán los campos "Fecha" y "Tipo de gasto", puesto que podremos ordenar por fechas (ya sea por días, meses, años, etc.) o clasificar/ordenar por tipo de gasto (Suministros, Reparaciones, Impuestos, etc.). 



Ahora si....vamos allá con los modelos de datos...

1) TABLAS UNIDIMENSIONALES

Son las resultantes cuando introducimos nuestros datos en una colección de tablas de una dimensión, donde cada tabla representa normalmente a un período de tiempo (no siempre). En las siguientes tablas, la única dimensión es la "Cuenta" (Ingresos, Compras, Servicios, etc.). Esta primera modalidad que comentamos es UN GRAVE ERROR... y es el error más habitual en el usuario


... también es muy habitual poner cada tabla en una hoja distinta a la cual se pone un nombre descriptivo ...


Si no acertamos en la forma en la que disponemos nuestros datos en esta fase, el resto de desarrollo de nuestro dashboard será un proceso arduo, muy poco eficiente y tremendamente limitado en sus posibilidades. La mayoría de usuarios de Excel no superan esta fase de forma óptima porque no conocen otras posibilidades y aplican la única que saben y que cumple con estas 3 condiciones:
  • La disposición de los datos se hace de forma intuitiva y responde a corto plazo a algunas necesidades de información.
  • El usuario sólo necesita utilizar los operadores básicos (+-*/) y poco más.
  • Como consecuencia de los anteriores puntos, es rápida.
El motivo de considerar este tipo de organización de datos como un error, estriba en su limitación a la hora de ofrecer más información (y de más valor) de la que se ve en cada tabla:
  • Cada mes hay que copiar y pegar una nueva tabla (o copiar en una nueva hoja y nombrarla) y modificar como mínimo la fecha.
  • Para sumar los datos de todos los meses se debe hacer una nueva tabla e introducir en cada celda correspondiente, una fórmula que vaya sumando cada dato en cada uno de todos los meses. Cuando transcurre un mes, se deben modificar todas las fórmulas para añadir el nuevo período. Todo ello es un consumo de recursos enorme y además, con una alta probabilidad de errores.
  • Si quisiéramos sumar los datos de un número determinado de meses distinto al anteriormente realizado, deberíamos construir otra tabla más y de forma exclusiva para esos meses, debiendo modificar todas las fórmulas de la tabla cada vez que quisiéramos variar los meses consultados.
  • Si quisiéramos realizar un gráfico para ver la evolución de alguna cuenta, nos encontraríamos con los mismos problemas de los anteriores puntos.
  • Si transcurren, por ejemplo, 7 años desde que se crea la aplicación, tendríamos 84 hojas de calculo para manejar con 84 tablas, o bien 84 hojas ubicadas en una misma tabla... (según modelo elegido) y todo ello, necesitando manejarlas como hemos comentado en los anteriores puntos.
Es decir, para cualquier otra información que no sea la que se ve directamente en esas tablas, hay que volver a copiar y pegar la estructura, crear nuevas fórmulas y además modificarlas a lo largo del tiempo. Todo esto es insostenible y nada productivo.


En resumen, podemos decir que es un modelo de datos que:


NUNCA HAY QUE UTILIZARLO


Podemos ver un ejemplo si descargamos el siguiente archivo:


2) TABLAS BIDIMENSIONALES ("flat tables" o tablas planas): 

Son las que tienen una dimensión con sus items extendidos a lo largo de los encabezados de columna y otra dimensión con sus items extendidos a lo largo de las filas.

No tiene porqué ser así siempre, pero suelen presentar en las columnas los períodos de tiempo (la dimensión "fecha", que está extendida a lo largo de las columnas, pero es sólo una dimensión. ¡Cada mes NO es una dimensión!) y en las filas los items de otra dimensión a estudiar, por ejemplo, las cuentas:


Se utilizan para modelos de datos que están limitados en el tiempo y cuyo análisis se circunscribe a un período definido de antemano (sería insostenible una tabla durante muchos años con decenas de columnas). Ejemplos de ello, podrían ser un plan de viabilidad económico-financiero a X años, previsiones de tesorería o una gestión presupuestaria.

Este es un modelo de organización de datos que tiene las siguientes VENTAJAS:

  • Es ciertamente intuitivo y fácil de desarrollar en un principio (los datos con este formato, suelen ser introducidos por el usuario, no importados de otros programas).
  • En el paso de la fase de DATOS a INFORMACIÓN hay posibilidad y flexibilidad para introducir ratios y fórmulas complejas y otras combinaciones de datos. Por ejemplo, las fórmulas del punto de equilibrio o las de los períodos medios de cobro y pago.
  • Es un modelo de datos que aporta muchas posibilidades para la última fase de PRESENTACIÓN en el propio dashboard: es fácil extraer rangos de celdas para construir gráficos y es fácil extraer valores para formar KPI's comparativos y de alto valor (gráficos de velocímetro, de termómetro, etc.).
Pero también presenta algunas DESVENTAJAS:
  • La posibilidad de agrupar la información por distintos períodos de tiempo no es ágil y se hace compleja.
  • Debido al anterior punto y a otros similares, el usuario se ve obligado a utilizar de forma intensiva fórmulas y funciones como SI, Y, O, BUSCARV, BUSCARH, INDICE, COINCIDIR, DESREF, etc. En definitiva, el paso de la fase DATOS  a INFORMACIÓN es más difícil y ardua.
  • 2 dimensiones es un origen de datos muy escaso. Estamos privados de conocer otros puntos de vista (otras dimensiones) de forma ágil, aunque sí es posible con ciertas rigideces y apelando a algunos "trucos".
En resumen y como factores más destacados, podemos decir que es un modelo de datos que:
      • No tiene limitaciones para ofrecer KPI's y gráficos de alto valor
      • Requiere más conocimientos del usuario y utilización intensiva de funciones
      • El manejo de los períodos de tiempo
Las tablas bidimensionales suponen un avance espectacular respecto de las tablas unidimensionales, como se puede ver en el archivo que a continuación puede descargar el lector:


TABLAS DE DATOS MULTIDIMENSIONALES (Cubos [3D] o hipercubos [+3D] OLAP)

Son tablas en las que hay una o varias columnas con un "Valor en euros" y el resto de columnas son dimensiones o criterios por las que se podría consultar la información. Entre las dimensiones, en el ámbito económico-financiero casi siempre está el campo o columna "Fecha". Vemos a continuación un ejemplo de "Tabla Multidimensional":


Es la forma habitual que nos encontramos en las tablas que importamos desde otras aplicaciones (por ejemplo, el diario de una contabilidad o el listado de facturas emitidas), pero también es posible que sea una tabla que el usuario administre introduciendo datos registro a registro (por ejemplo una aplicación de gestión de costes por proyectos o de gestión de nóminas). Podemos ver en la tabla anterior las dimensiones "Fecha", "Tipo de movimiento", "Código Cuenta" y "Descripción Cuenta". Es decir, un hipercubo OLAP.

Con este modelo de datos, se tienen las siguientes VENTAJAS
  • Desaparecen los problemas de sostenibilidad en el tiempo, puesto que  la tabla puede aumentar hasta 1.048.576 registros.
  • Se pueden añadir, mediante columnas, tantas dimensiones como sea necesario.
  • Una organización de datos así, podrá servir como origen de datos de Tablas Dinámicas y ahí... se abre un mundo de posibilidades que podemos descubrir (si el lector no lo ha hecho ya) en la serie de artículos dedicado a las Tablas Dinámicas que comienza por este: "Tablas Dinámicas (I) ¿Qué son y para qué sirven?". La principal ventaja que se obtiene de esto es la velocidad de proceso y la agilidad. Es decir:
    • Es una forma eficiente de ordenación de datos y se procesan las consultas y filtros a una velocidad inigualable y muy superior a las bases de datos relacionales.
    • Podemos cambiar la presentación de la información por un criterio u otro de forma ágil y en tiempo real según necesidades.
Estas serían las DESVENTAJAS:
  • La estructura multidimensional u OLAP, es poco intuitiva y genera rechazo a usuarios poco experimentados.
  • Si la tabla la administramos nosotros introduciendo la información de forma cotidiana, en cada registro hay que introducir de forma repetitiva los datos de cada dimensión (ver en la tabla anterior los nombres de los "Agentes", por ejemplo, repetidos muchas veces en la tabla. Esta desventaja desaparece, evidentemente, si la tabla es importada.
  • Las tablas multidimensionales están destinadas casi irremediablemente a ser procesadas mediante Tablas Dinámicas para convertir los "Datos" en "Información". Esto proporciona las ventajas propias de dichas tablas dinámicas, pero también sus servidumbres: las tablas dinámicas ofrecen más rigideces y dificultad para ser incluidas en Dashboards o para combinar datos que generen KPI's de muy alto valor. Es decir, son muy buenas (únicas y las mejores) para pasar de "Datos" a "Información", pero no tanto para pasar de "Información" a "Conocimiento".
En resumen y como factores más destacados, podemos decir que es un modelo de datos que:
      • Es fácilmente sostenible en el tiempo y escalable en tamaño.
      • Es extremadamente rápido, fácil de utilizar y eficaz para el entorno operativo y táctico en la empresa (a nivel de mandos intermedios).
      • En muchas ocasiones, ofrece rigidez y dificultades para construir KPI's para la toma de decisiones estratégica.
Los siguientes archivos muestran ejemplos del modelo de datos multidimensional y de posibles formas de convertir los datos en información mediante Tablas Dinámicas y algunos gráficos:

Tabla Multidimensional importada de otra aplicación:


Tabla Multidimensional administrada por el usuario:




Puede  ver otros artículos de esta serie:

Cómo hacer un Dashboard económico-financiero (1)
Cómo hacer un Dashboard económico-financiero (2)
Cómo hacer un Dashboard económico-financiero (3)
Cómo hacer un Dashboard económico-financiero (5)
Cómo hacer un Dashboard económico-financiero (6)



Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:











Jornadas sobre Economía, Contabilidad y Fiscalidad de las Empresas Públicas

$
0
0
Los días 13 y 14 de Febrero ha tenido lugar en Granada las Jornadas sobre Economía, Contabilidad y Fiscalidad de las Empresas Públicas, organizadas por AVS, AVS Andalucía y VISOGSA, junto con la Diputación de Granada
La experiencia de David Ballester Ménguez, gerente de Patrimonio Municipal de Majadahonda y Coordinador del Grupo Económico Fiscal de AVS, que ha sabido elegir cuidadosamente temas de especial relevancia para estos momentos que atraviesan las empresas públicas, a quienes iba dirigido el seminario, ha sido una de las claves del éxito de las jornadas
Los contenidos han sido desarrollados por ponentes de reconocido prestigio, entre los que se encuentran el propio David Ballester, José Manuel Pomares, Bartolomé Borrego, Mario Cantalapiedra, José Antonio Bravo y Susana Blasco


.
 
La exposición de José Manuel Pomares ha girado en torno a utilidades que pueden aportar las hojas de cálculo en la gestión económica y la dirección Financiera, especialmente si trabajamos con grandes cantidades de datos. Hemos visto validación de datos, formatos condicionales, protección de datos, aplicaciones específicas, etc.


 

Por último, merece destacar el valor que este seminario ha aportado a los asistentes, todos ellos experimentados profesionales que han dejado patente con sus propios testimonios y preocupaciones, la excelente acogida a las nuevas ideas aportadas, con el objetivo de seguir atendiendo la demanda social de acceso a vivienda, con especial sensibilidad a las clases menos favorecidas.

 

Advertencia de seguridad de macros deshabilitadas en Excel

$
0
0
A casi todos los usuarios de Excel nos ha aparecido alguna vez en la parte superior de la pantalla una franja de "Advertencia de seguridad" diciendo que "Las macros se han deshabilitado" y con un botón que nos da acceso a "Habilitar contenido", ya sea directamente (como en Excel 2010 y 2013):


... o mediante un cuadro de "Opciones", como en Excel 2007:



Algunas nociones previas

Antes que nada y para aquellos que no han utilizado nunca macros, definimos qué es una macro de Excel y proporcionamos algunas nociones:

Macro (del griego μακρο que significa "grande") es la abreviatura de "macroinstrucción" y es una serie ordenada de instrucciones escritas en un lenguaje de programación llamado VBA (Visual Basic for Applications), que se ejecutan cuando el usuario lo decide o cuando ocurre algo (evento) durante la utilización de Excel.

Las instrucciones escritas en una macro pueden ser acciones que cotidianamente hacemos en Excel desde la interfaz de usuario (u otras que sólo pueden ocurrir mediante una macro) como seleccionar una hoja, eliminar filas o columnas, seleccionar una celda, etc.

A la hora de hacer una macro, disponemos de 3 posibilidades, según tengamos más o menos conocimientos en la materia:
  • Escribir las instrucciones directamente (si conocemos el lenguaje VBA) en un programa ad-hoc llamado "Editor de VBA" y al que se puede acceder desde Excel. Posteriormente y cuando lo deseemos, ejecutaremos la macro para que se reproduzcan las acciones que representan las instrucciones.
  • De forma inversa a la anterior, podríamos realizar las acciones que nosotros queremos grabándolas para que Excel las convierta en lenguaje VBA. Una vez grabadas y convertidas a Visual Basic, podremos ejecutarlas cuando queramos.
  • La tercera opción es una mezcla de las dos anteriores. Es decir, se graban las acciones para que queden registradas en una macro y después modificamos el código resultante para "enriquecerlo" con instrucciones más personalizadas.
Las macros quedan asociadas y almacenadas en el archivo de Excel con el que se grabaron. Los archivos que contienen macros tienen la extensión .xlsm  en vez de  .xlsx (hablamos siempre de versiones superiores a Excel 2003).

    Advertencia de seguridad. Las macros se han deshabilitado.

    Por defecto, Microsoft Excel está configurado de tal forma que si intentamos abrir un archivo que contiene macros grabadas, recibimos unos avisos como los de las imágenes del principio de este artículo. El motivo es preservar la seguridad, puesto que en teoría (aunque de forma bastante improbable) alguien podría enviarnos un archivo de Excel con macros que contengan instrucciones malintencionadas o en forma de virus. Puesto que hay posibilidad de que una macro se ejecute automáticamente al abrir el archivo, la configuración inicial de Excel deja deshabilitadas las macros.

    Ante esto, tenemos dos posibilidades:
    • Habilitamos las macros desde la "Advertencia de seguridad" que nos ofrece Excel al abrir el archivo (ver las imágenes del principio del artículo para las versiones 2007, 2010 y 2013). En este caso se habilitan sólo para el archivo en cuestión.
    • Habilitamos las macros haciendo click en "Opciones de Excel" / "Configuración del centro de confianza" / Configuración de macros



    Esta última opción hace que Excel acepte en adelante y sin advertencias todos los archivos que tienen macros.

    Otras opciones de seguridad

    Evitar la "Advertencia de seguridad"

    Tenemos la posibilidad de no recibir advertencias de seguridad como las de las imágenes del principio de este post. Para ello y, dentro del "Centro de confianza", activamos la siguiente casilla:


    aunque si las macros están deshabilitadas, no funcionarán. Tan sólo evitaríamos la advertencias.

    Documentos confiables en Excel 2010 y 2013

    En estas versiones, cuando hacemos click en el botón "Habilitar macros" de la "Advertencia de segurdad", Excel memoriza nuestra "benevolencia" y en adelante el archivo será considerado como "confiable" siempre que tengamos la siguiente configuración en la categoría "Documentos confiables" del "Centro de confianza":


    Vista protegida en Excel 2010

    Cuando descargamos una hoja de cálculo que iba adjunta en un e-mail, o bien un archivo descargado de internet, es detectado por Excel 2010 como potencialmente peligroso y se abre en modo "Vista protegida" siempre que tengamos la siguiente configuración en la categoría "Vista protegida" del "Centro de confianza":



    Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:










    ¿Qué es una variable en VBA para Excel?

    $
    0
    0
    Iniciamos con este artículo una serie dedicada a las variables en Visual Basic for Applications (VBA) para Excel.

    ¿Qué es una variable?

    En el ámbito de la programación en VBA, una variable es un nombre que hace las funciones de contenedor polivalente que puede albergar distintos valores o datos. De similar forma, en una ecuación todos sabemos que una X también hace las veces de contenedor que en un momento dado puede tener un valor, pero en otro momento o circunstancia puede tener otro distinto.


    Si queremos expresar la comisión que obtendrá un comercial (3%) en función de las ventas de pares de zapatos que hay en una empresa, podríamos hacerlo así:

    (Nº de pares de zapatos * 20 €)  * 0,03 = Comisión

    Pero si, por ejemplo, en un contrato o cualquier otro documento, repetidas veces debemos reflejar y dejar claro cómo se calcula la comisión del comercial sería mucho más eficiente representar el cálculo de las Ventas por una sola palabra... así:

    Ventas*0,03 = Comisión

    De esta última forma ahorramos tinta, papel,  tiempo de escritura y tiempo de lectura. Además, reducimos considerablemente el riesgo de faltas de ortografía y de olvidar el precio de venta por par de zapatos. Acabamos de utilizar la variable Ventas.

    Cuando estamos programando en Visual Basic ocurre lo mismo que en el ejemplo anterior. A veces necesitamos utilizar repetidas veces un valor que puede variar en algún momento dado y es conveniente asignarle un nombre que lo represente y que sea fácil recordar. Por ejemplo:

    Ventas = WorkSheets("Hoja1").Range("A1").Value

    Con la creación de la variable Ventas, cada vez que tengamos que hacer referencia e ella en nuestra macro o procedimiento, sólo tenemos que poner Ventas en vez de  WorkSheets("Hoja1").Range("A1").Value

    Un ejemplo de utilización


    Sub Variable()

        Ventas = Hoja2.Range("A1").Value

        MsgBox ("Las ventas mensuales han sido"& Ventas * 0.03)
        Range("A2") = Ventas * 0.03
        MsgBox ("El promedio de ventas diarias ha sido de "& Ventas / 20)
        Range("A3") = Ventas / 20

    End Sub


    ... en vez de haber escrito todo este código:


    Sub SinVariable()

        MsgBox ("Las ventas mensuales han sido"& Hoja2.Range("A1").Value * 0.03)
        Range("A2") = Hoja2.Range("A1").Value * 0.03
        MsgBox ("El promedio de ventas diarias ha sido de"& Hoja2.Range("A1").Value / 20)
        Range("A3") = Hoja2.Range("A1").Value / 20

    End Sub


    ... que es más ineficiente por ser más largo (más difícil de interpretar, lento alejecutarlo, susceptible de errores al escribirlo, etc.).

    Declaración de variables (introducción)

    Una vez dicho todo esto, debemos añadir que Excel interpreta de forma inteligente el tipo de variable a la que nos estamos refiriendo. Es decir, en los ejemplos anteriores la variable se refería a valores numéricos, pero en otros casos pueden ser textos, fechas, etc.

    Ese "reconocimiento inteligente" que hace Excel del tipo de variable, requiere la utilización de más memoria de nuestro ordenador (debido a que asigna por defecto un tipo de variable-comodín llamado "variant"y por lo tanto es conveniente facilitarle las cosas indicándolo nosotros en lo que se llama una "declaración de variable".

    Haciendo una analogía en otros ámbitos, cuando tenemos que interpretar un gráfico que tiene varias series o categorías, suele existir una leyenda que identifica cada serie con el tipo de gráfico. Pues esa leyenda sería la "declaración de series" similar a una declaración de variables en VBA.


    En el próximo artículo trataremos más a fondo el tema de la declaración de variables y por qué realizarla.

    Declaración de variables en VBA para Excel (I)

    Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:









    Declaración de variables en VBA para Excel (I)

    $
    0
    0
    Es conveniente leer el artículo ¿Qué es una variable en VBA para Excel? antes de abordar el actual, especialmente si el lector no conoce qué es una variable.

    Una vez que nos decidimos a utilizar una variable en nuestro código VBA de Excel, aunque no es obligatorio, lo ortodoxo es declararla previamente. Esto es, decirle a Excel de forma explícita que la vamos a utilizar.

    ¿Cómo declarar una variable?

    La forma por medio de la cual se declara una variable depende de varios factores. Uno de ellos es dónde la vamos a utilizar posteriormente (sólo en la macro actual o en otras macros). De momento nos vamos a referir a variables que se utilizan en una misma macro. Es decir, su vida y su ámbito de actuación es lo que tarda una macro en ejecutarse.

    Una declaración de variable sería:

    Dim Ventas AsDouble

    Que significa:

    Establecer Ventascomo VariableTipoNúmeroDecimalDoble

    Una vez declarada, la variable se puede utilizar asignándole previamente un valor, como en esta macro:


    Sub Variable()


        Dim Ventas As Double

        Ventas = Hoja2.Range("A1").Value

        MsgBox ("Las ventas mensuales han sido"& Ventas * 0.03)
        Range("A2") = Ventas * 0.03
        MsgBox ("El promedio de ventas diarias ha sido de"& Ventas / 20)
        Range("A3") = Ventas / 20

    End Sub



    ¿Qué tipos de datos puede representar una variable?


    En el ejemplo anterior, era Double (tipo decimal que puede albergar valores con deimales desde +/- 5E-324 hasta 1.8E308 y nos ocupará 8 bytes en la memoria de nuestro ordenador) , pero por supuesto, existen otros que ocupan más o menos memoria y que tienen distintas características y posibilidades. Podemos ver un resumen en la web msdn de Microsoft.

    ¿Por qué declarar variables?

    Si no es obligatorio declarar variables, ¿por qué hacerlo?

    La ortodoxia en programación dice que las variables hay que declararlas, al igual que la ortodoxia en la creación de gráficos dice que es necesaria una leyenda para identificar las categorías representadas, al igual que la ortodoxia dice que nuestro hogar debe estar ordenado para vivir de forma más cómoda y eficiente.

    Si declaramos las variables:
    • Ocuparán menos espacio en memoria, que si no las declaramos (por defecto, Visual Basic asignaría el tipo variant que ocupa bastante memoria: 22 bits).
    • Nuestra macro será difícil de interpretar para otros usuarios que puedan necesitar leer el código VBA (incluso para nosotros mismos). Tener al principio de la macro una lista con las variables declaradas resulta muy util y aclarador.
    • Podríamos utilizar esa variable posteriormente en varias macros. En este caso, la forma de declarar la variable no es exactamente igual, sino que la línea  Dim Variable As TipoDato se debe colocar al principio de todo el módulo para que el ámbito de la variable sea precisamente de módulo y no a nivel de una macro concreta (ámbito local a nivel procedimiento):


    Está claro que si nuestra macro es muy pequeña y de uso totalmente particular quizá no sea necesaria la declaración de variables.

    Por último, decir que podemos hacer que el editor de VBA nos obligue a declarar las variables para evitar olvidos. Esto se hace desde el menú "Herramientas" y después seleccionando "Opciones..." y por último activar la siguiente casilla:


    Una vez hecho esto y a partir de ahora, veremos esto al principio de cada módulo que inciemos:


    ... y no funcionará cualquier variable que no haya sido declarada antes.

    En el siguiente artículo veremos la posibilidad y la forma de declarar variables objeto. Hasta ahora, las variables a las que nos hemos referido albergan valores (de un tipo u otro, pero valores), pero también las variables pueden representar a objetos.... como por ejemplo, celdas, hojas, etc. Veremos que en ocasiones son muy útiles las variables de objeto:

    Declaración de variables en VBA para Excel (II)

    Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:








    Declaración de variables en VBA para Excel (II)

    $
    0
    0
    Si el lector ya está familiarizado con el concepto de variable en el primer artículo de la serie ¿Qué es una variable en VBA para Excel?  y también ha entendido el artículo Declaración de variables en VBA para Excel (I) , podría disponerse a leer este artículo que a buen seguro, le resultará interesante.

    En el anterior post hablábamos de variables que representaban a valores (ya sean fechas, números enteros, decimales, etc.). En este artículo veremos las variables que representan a objetos (debemos saber que en VBA llamamos objetos a cualquier elemento de Excel como hojas, celdas, gráficos, formas, tablas, etc.).



    Declarar variables de objeto está, si cabe, más justificado que declarar variables de valores, puesto que el ahorro en tiempo de escritura de código, en tiempo de ejecución del mismo, así como la organización y orden conseguidos en la estructura del procedimiento o macro, son espectaculares.

    ¿Cómo declarar una variable de objeto?

    La declaración de una variable de objeto sería:

    Dim Variable As TipoObjeto

    Que significa:

    Establecer Variable como TipoDeObjeto

    Una vez declarada la variable, se le puede asignar un tipo de objeto, pero en este caso (a diferencia de las variables asignadas a valores) debemos comenzar la línea con la palabra Set, como en esta macro:

    Sub VariableObjeto()

         Dim MiCelda As Range

         Set MiCelda = Worksheets("Hoja1").Range("A1")

         MiCelda.Value = 4560
         MiCelda.Interior.Color = RGB(166, 210, 241)
         MiCelda.Font.Italic = True
         MiCelda.Font.Bold = True

    End Sub

    La macro anterior declara la variable "MiCelda" como un rango, después asigna la variable a la celda A1 y posteriormente (en las últimas líneas) realiza varias acciones con la celda, nombrándola en todas las líneas siempre con el nombre de variable declarado al principio (en una línea inserta el valor 4560, en otra línea proporciona el color azul claro, en otra aplica cursiva y en la última aplica negrita).

    Si no hubiéramos utilizado una variable de objeto , el código de las 3 líneas que modifican la celda A1 podría  haber sido así de largo:

    Sub VariableObjeto()

         Worksheets("Hoja1").Range("A1")4560
         Worksheets("Hoja1").Range("A1").Interior.Color = RGB(166, 210, 241)
         Worksheets("Hoja1").Range("A1").Font.Italic = True
         Worksheets("Hoja1").Range("A1").Font.Bold= True

    End Sub

    El primer código se ejecuta de forma más rápida que este último, porque Visual Basic no tiene que buscar una y otra vez la ruta de la celda A1. Aunque aun podríamos perfeccionarlo (en cuanto a eficiencia) de la siguiente forma:

    Sub VariableObjeto()

         Dim MiCelda As Range

         Set MiCelda = Worksheets("Hoja1").Range("A1")

         With MiCelda

              .Value = 4560
              .Interior.Color = RGB(166, 210, 241)
              .Font.Italic = True
              .Font.Bold = True

         End With

    End Sub

    Siendo este el código más corto y rápido de todos.

    ¿Qué tipos de objetos pueden establecerse como variables?

    En el ejemplo anterior, el tipo de objeto era Range, puesto que se quería asignar la variable a una celda. También sería Range si quisiéramos asignarla a columnas, filas, etc.

    En el caso de querer asignar variables a un tipo de objeto "Hoja", deberíamos poner Worksheet . Otro ejemplo podría ser ListObject para referirnos a objetos tipo "Tabla de Excel". El usuario puede elegir el tipo de objeto al que refererirse en la lista que el editor de VBA ofrece mientras se escribre:


    Otras utilidades

    Declarar variables de objeto no sirve únicamente para acortar el código y hacerlo más eficiente, un ejemplo lo tenemos en el siguiente código, que utiliza una variable de objeto para que Excel vaya recorriendo una serie de hojas hasta que encuentra una que se llama "HojaClave" y la seleccione.

    Sub VariableObjeto()

         Dim MiHoja As Worksheet

         For Each MiHoja In Worksheets

              If MiHoja.Name = "HojaClave" Then
                   MiHoja.Select
              End If

         Next MiHoja

    End Sub

    Después de declarar la variable de objeto, utilizamos un bucle For Each - Next y dentro de él, utilizamos un condicional If - End If. Declarar una variable nos ha evitado tener que nombrar mediante código cada una de todas las hojas que tengamos para buscar la que deseamos.

    Si tradujéramos el código a lenguaje castellano, sería:

    Iniciamos Subrutina VariableObjeto()

         Establezco MiHoja como TipoDeObjetoHojaDeExcel

         Por Cada MiHoja En LaColecciónDeHojasDeMiLibro

              Si MiHoja.Nombre = "HojaClave" Entonces
                   MiHoja.Seleccionada
              FinalDelCondicionalSI

         ExaminarSiguiente MiHoja

    End Sub


    Recorrer hojas o celdas en busca de una que cumpla con una condición, es una de las utilidades mayores de la declaración de variables de objeto, puesto que permite utilizarse con bucles y condicionales que detectan si se cumple la condición que queremos y pueden actuar.

    Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:








    Protegiendo celdas con "Validación de datos"

    $
    0
    0

    Si queremos proteger una hoja o algunas celdas de una hoja de Excel, lo normal es acudir a las opciones de protección que tenemos en la ficha "Revisar", después de haber configurado el bloqueo de las celdas en las cuales deseamos restringir la escritura.

    Al hacer esto, muchos usuarios habrán comprobado los "efectos secundarios" que tiene el hecho de activar la protección de hojas y/o celdas: multitud de comandos y opciones de Excel quedan deshabilitados para la hoja que está protegida (aunque en el cuadro de diálogo en el que configuramos las opciones de protección y la contraseña seamos permisivos).

    Si lo que queremos es proteger el contenido de determinadas celdas (fórmulas, datos, etc), pero necesitamos mantener el resto de funcionalidades de Excel para esas celdas y para esa hoja, tenemos la opción de proteger mediante la herramienta "Validación de datos". Aunque es una protección de baja seguridad (sin posibilidad de contraseña), no tiene tantos "efectos secundarios", como decíamos anteriormente.

    Con "Validación de datos" podemos proteger los cambios que se producen en una celda siempre que estos se hagan mediante escritura (edición de la celda y escribiendo mediante teclado). Sin embargo, si una celda contiene una fórmula cuyo resultado cambia debido a que otras celdas cambian, se actualizará sin problemas. Esto nos sirve cuando tan solo deseamos evitar que alguien elimine o cambie fórmulas accidentalmente, pero queremos mantener el resto de funcionalidades de Excel (combinar celdas, agrupar filas o columnas, ordenar tablas, actualizar tablas dinámicas, etc.)

    ¿Cómo lo hacemos?

    PASO 1

    Seleccionamos todas las celdas que deseamos proteger, activamos la Ficha "Datos"y hacemos click en el botón "Validación de datos" que hay dentro del grupo de botones "Herramientas de datos". :

     


    PASO 2

    En el cuadro de diálogo "Validación de datos", concretamente en "Permitir", seleccionamos "Longitud del texto" y después en "Datos" elegimos "Igual a". Finalmente, en "Longitud" ponemos un número elevado, por ejemplo 9999:



    PASO 3

    A estas alturas, ya podemos "Aceptar" y en las celdas seleccionadas previamente en el PASO 1, no se podrán introducir datos mediante teclado, a no ser que la longitud de lo introducido sea de 9999 caracteres (altamente improbable).

    Lo que ocurre es que Excel nos muestra un mensaje por defecto:


    ... pero si queremos personalizarlo, tenemos algunas opciones interesantes:

    Opción 1: El usuario obtiene un mensaje y NO puede cambiar el contenido de la celda escribiendo:


    Opción 2: El usuario obtiene un mensaje, pero si lo desea SI puede cambiar el contenido finalmente:


    Opción 3:   El usuario obtiene un mensaje que sólamente advierte y el cambio en la celda se lleva a cabo.

    Para optar por una de estas opciones mostradas, lo debemos hacer desde la pestaña "Mensaje de error", cambiando el "Estilo· del icono y escribiendo nuestro mensaje personalizado:





    Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:











    Eliminar filas vacías en una hoja de Excel con VBA

    $
    0
    0
    En el último curso de Excel que he impartido, durante la sesión que trataba de Visual Basic for Applications (VBA), un alumno me solicitaba un procedimiento (macro o subrutina) para automatizar la eliminación masiva de filas que estuvieran totalmente en blanco. Además, necesitaba indicar las filas primera y última de la zona donde era necesario el "rastreo" y eliminación.

    Voy a aprovechar la pregunta de este alumno para publicar en este post, una solución a dicho "problema".

    Comencemos:

    PASO 1:

    Presionar ALT+F11 para activar el editor de VBA y hacer click con el botón derecho en la carpeta "Microsoft Excel Objetos" del proyecto o libro que deseemos (si lo hacemos en la carpeta "Microsoft Excel Objetos" del libro de macros PERSONAL.XLSB ** que podremos ver en el explorador de proyectos, tendremos la macro disponible permanentemente en nuestro Excel... y no sólo disponible para un libro en concreto). En el menú contextual, seleccionamos "Insertar / Módulo":


    PASO 2:

    En la ventana de código del nuevo módulo, que se abre a la derecha, escribimos el siguiente código (o copiamos-pegamos del archivo que puede el lector descargarse al final de este artículo):

    Sub EliminarFilasVacías()

    'Variables y actualización de pantalla
        Dim FilaInicial As String
        Dim FilaFinal As Integer
        Dim Seguridad As Integer
        Application.ScreenUpdating = False


    'Introducción de fila inicial de rastreo
        On Error GoTo 1
        FilaInicial = InputBox("Introduzca nº de fila inicial para rastreo", "Fila inicial de rastreo")

        ActiveSheet.Range("A"& FilaInicial).Select

    'Introducción de fila final de rastreo
        FilaFinal = Val(InputBox("¿Hasta que nº de fila quiere rastrear?", "Última fila a rastrear"))
        If FilaFinal = 0 Then
            GoTo 1
        End If


    'Pregunta de seguridad
        Seguridad = MsgBox("¿Está seguro de eliminar todas las filas vacías?", vbYesNo, "¡Atención!")
        If Seguridad = vbNo Then
            Exit Sub
        End If

    'Rastreo y eliminación de filas vacías
        For I = ActiveCell.Row To FilaFinal
            If Application.WorksheetFunction.CountA(ActiveCell.EntireRow) <> 0 Then
                ActiveCell.Offset(1, 0).Select
            Else
                ActiveCell.EntireRow.Delete
            End If
        Next
    Exit Sub


    'Gestión de errores
    1 MsgBox "Ha introducido datos erróneamente o ha cancelado un cuadro de diálogo"

    End Sub

    Una vez hecho esto, cerramos el editor de VBA.

    PASO 3:

    Asignaremos la macro a una combinación de teclas. Para ello, en la Ficha Programador, hacemos click en el botón "Macros". Seguidamente, buscamos el nombre de nuestra macro (EliminarFilasVacías) TENIENDO SELECCIONADO EL LIBRO PERSONAL XLSB,y la seleccionamos. Después, hacemos click en el botón "Opciones..." y por último, introducimos la letra que deseamos acompañe a CTRL.




    Por supueso, también podemos asignar la macro a un botón (por ejemplo) o a una forma.
    Si desea ver en funcionamiento la macro y además poder copiarla a su libro de macros personal (en vez de escribirla), puede descargar el siguiente archivo:




    ** Recordamos que el libro de macros PERSONAL.XLSB es un libro que se abre de forma automática (en modo oculto) siempre y cuando exista en nuestro equipo. Para ello, tenemos que haber grabado alguna macro en él alguna vez, puesto que Excel lo crea automáticamente.


    Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:













    Cómo añadir una serie de datos a un gráfico en 3 segundos

    $
    0
    0
    Muchos de mis alumnos se sorprenden en los cursos que imparto, de un pequeño truco que explico en el módulo de "Gráficos y presentación de datos". Éste no es otro, que añadir a un gráfico (que ya tenemos hecho) una serie más de datos, tan sólo mediante copiar-pegar. Así de sencillo.

    Tenemos el siguiente gráfico, que representa sólo la primera de las series de la tabla (Línea 1):


    Si queremos agregar la serie de la "Línea 2", tan sólo tenemos que:

    PASO 1:

    Seleccionar y Copiar con CTRL-C el rango de celdas siguiente:



    PASO 2:

    Seleccionar el gráfico y hacer CTRL-V



    Si además queremos que en vez de columnas, sea una línea lo que represente a la Línea 2, debemos:

    • Hacer click con el botón derecho en cualquier columna de la Línea 2
    • Seleccionar la opción "Cambiar tipo de gráfico de series..."
    • Seleccionar uno de los gráficos de la galería de gráficos de línea y ACEPTAR.

    Obtendremos algo así:


    Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:










    Viewing all 65 articles
    Browse latest View live