lunes, 20 de mayo de 2013

Algo más sobre Celdas ocultas y vacías en un gráfico de Excel.

Dias atrás un lector planteó una interesante cuestión, inicialmente la cuestión se solucionaba configurando adecuadamente cómo mostrar las Celdas vacías, pero en un segundo comentario proponía un nuevo planteamiento:
...viendo el caso en que no deje en blanco dicho campo [en un rango de datos para construir un gráfico], es decir simplemente con que le ponga un guion lo asume como si fuese un 0 y obviamente la linea se va hasta abajo, como se podria solucionar eso y ya se que probablemnte sea esa una pregunta tonta pues al tener un dato obviamente lo asumira como eso, pero como podria hacer para si quisiese que el campo no quede vacio por una cuestion de presentacion igual el grafico no lo asuma como un dato...

La idea es por tanto que por un lado queremos que en el origen de datos de nuestro gráfico uno o varios valores sean tomados como vacíos (a la hora de configurar las Celdas vacías u ocultas), pero por otro lado, por un tema de presentación, esas celdas NO pueden estarlo, por lo que completaremos dichas celdas con un guión (por ejemplo).
El problema, como explicaba el lector es que si el gráfico se contruye directamente sobre ese origen de datos, y en él, una de las celdas tiene un '-' (guión u otro caracter), el grafico NO lo toma como vacío y no aplica la utilidad, llevando el gráfico al cero.

Importante, en nuestro gráfico, tenemos activa la opción Conectar puntos de datos con línea en la configuración de Celdas ocultas y vacías, a activar desde la venta de Selección de datos de nuestro gráfico:

Algo más sobre Celdas ocultas y vacías en un gráfico de Excel.


Veamos en la imagen nuestro gráfico y cómo actúa con un valor vacío o relleno con otro caracter:

Algo más sobre Celdas ocultas y vacías en un gráfico de Excel.


Como hemos observado al incluir cualquier valor (numérico o no) en la celda B3 el gráfico toma un valor cero para ese punto. Nuestro objetivo consiste que al incluir un caracter (por ejemplo un guión medio '-') el gráfico lo tome como vacío e interpole o conecte los datos con una línea.

El trabajo para conseguir nuestro objetivo consistirá en una combinación de técnicas. La primera asignar a un Nombre definido una fórmula matricial.

Algo más sobre Celdas ocultas y vacías en un gráfico de Excel.


Hemos asignado un nombre a un rango, construido a partir de la fórmula matricial:
rango =SI(Hoja1!$B$2:$B$4="-";NOD();Hoja1!$B$2:$B$4)
que reemplaza de nuestro rango origen B2:B4 el guión medio por un error NOD(). Recordemos que este error generado por la función NOD(), en los gráficos funciona como una celda vacía!!!.
En definitiva esta fórmula matricial devuelve un rango {100;#N/A;200}. Vemos en unas columnas auxiliares el resultado de este rango:

Algo más sobre Celdas ocultas y vacías en un gráfico de Excel.


hemos conseguido nuestro primer objetivo, a pesar de que en el rango original aparezca un guión, nuestro rango funcionará como si fuera un error, y por tanto le será aplicable la funcionalidad de Celdas vacías.

Vamos con la segunda y última parte del proceso. Vamos a asignar a nuestro gráfico el nuevo rango en sustitución del original B2:B4 que no nos interesa...
Para ello bastará acceder a la configuración de nuestra serie de datos de nuestro gráfico. Seleccionamos la Serie de datos, accedemos a la ventana Seleccionar datos, y dentro de ellas editamos la serie, en el cuadro de Valores de la serie, reemplazamos lo existente por
=GraficoconCerosSalvado.xlsx!rango
es decir, por el Nombre definido recién creado (ojo por que hay que escribirlo con el nombre del archivo!!!).

Algo más sobre Celdas ocultas y vacías en un gráfico de Excel.



Con lo que hemos conseguido lo que queríamos, esto es, a pesar de que en el origen de datos aparezca un guión '-', el gráfico muestra el dato interpolado con una línea, es decir, igual que si la celda estuviera vacía.

2 comentarios:

  1. Great indication!!! two days looking for a solution and dinally this worked ;).
    using "" or ' characters do not work if you are evaluating formulas. Somehow NOD() did not work either in my example, but using #N/A worked perfectly!.

    ResponderEliminar
    Respuestas
    1. Hi, Joserra44
      in english version =NOD() function is =NA()
      Best rgrds

      Eliminar