Imprimir página | Cerrar ventana

Gráfica con matriz de valores simple

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=85154
Fecha de impresión: 26/Marzo/2026 a las 20:57


Tema: Gráfica con matriz de valores simple
Publicado por: majete
Asunto: Gráfica con matriz de valores simple
Fecha de publicación: 13/Abril/2020 a las 17:17
Buenas tardes a todos,
Estoy intentando generar un pequeño cuadro de mando con información proveniente de una encuesta de Microsoft Forms. En esa encuesta, hay preguntas de tipo "respuesta múltiple" la cuál guarda los valores como una matriz simple: [opción1;opción2;opción3...].
El tema es que no sé cómo explotar esa información para generar una gráfica y que pueda ver acumulados de ese campo conforme se vayan recibiendo más encuestas.

La información se descarga en un Excel que es el que necesito explotar. Un ejemplo de cómo se recoge sería este (en formato tipo tabla con 1 registo por cada cuestionario):

FechaRecepción..... País......... ProgramasUtilizados
12/04/2020............. España..... Teams;Skype;Webex;
12/04/2020............. España..... Skype;Webex;
13/04/2020............. Italia........ No utilizo;
13/04/2020............. Italia........ Teams;Webex;

*Añadido el punto y coma al final del último valor

El campo que necesito explotar es el de "ProgramasUtilizados" y como podéis ver en el ejemplo, los valores los separa por punto y coma pero en cada cuestionario se pueden dar múltiples opciones.

¿Cómo puedo transformar ese campo para poder generar una gráfica de barras y tener un conteo total?

Ahhh se me olvidaba comentar que el fichero fuente Excel que recojo debe permanecer intocable porque se irá actualizando conforme lleguen más cuestionarios. Debo realizar una Consulta sobre ese Excel y realizar las transformaciones necesarias en otro fichero junto con los gráficos.

Saludos y muchas gracias por la ayuda,
Juan Carlos



Respuestas:
Publicado por: AnSanVal
Fecha de publicación: 13/Abril/2020 a las 22:31

            A          B                C       D
1  
FechaRecepción
País ProgramasUtilizados Conteo
2  
12/04/2020
España Teams;Skype;Webex 3
3  
12/04/2020
España Skype;Webex 2
4  
13/04/2020
Italia No utilizo 1
5  
13/04/2020
Italia Teams;Webex 2

Si lo que pretendes es contar los programas, podrías utilizar una columna auxiliar:

[D]     =LARGO(C2)-LARGO(SUSTITUIR(C2;";";""))+1

Aunque quizás deberías borrar «No utilizo».


Si es otra cosa amplia la información.




-------------
Saludos desde Tenerife.


Publicado por: lbauluz
Fecha de publicación: 14/Abril/2020 a las 01:04
Yo entiendo lo mismo que AnSanVal, pero me queda la duda de si en realidad lo que se quiere es que cuente cuantas veces se utiliza cada programa.

Luis


-------------
El Búho es un pajarraco


Publicado por: majete
Fecha de publicación: 14/Abril/2020 a las 09:24
Correcto... el objetivo final es saber cuántas personas utilizan esas herramientas, por lo que no vale con saber sólo el número sino que necesito identificar el programa, para que al final pueda tener el número de personas que utilizan cada programa (incluidos los "No utilizo").

Muchas gracias a los dos!
Juan Carlos

P.D. Por cierto, un detalle... en los datos que recojo, SIEMPRE me aparece un punto y coma al final del último valor... no sé porqué, pero como viene de Microsoft Forms no lo puedo evitar.


Publicado por: AnSanVal
Fecha de publicación: 14/Abril/2020 a las 11:43

Mediante Texto en columnas, podrías separar «Programas» en 3 (o más) columnas y luego en una lista aparte de  programas únicos  y la función  =CONTAR.SI($C$2:$E$5;G1) obtienes las repeticiones (usos) de cada programa.


FechaRecepción País Programa1 Programa2 Programa3 No_utilizo 1
12/04/2020 España Teams Skype Webex Skype 2
12/04/2020 España Skype Webex   Teams 2
13/04/2020 Italia No_utilizo     Webex 3
13/04/2020 Italia Teams Webex  





-------------
Saludos desde Tenerife.


Publicado por: majete
Fecha de publicación: 14/Abril/2020 a las 12:46
Publicado originalmente por AnSanVal AnSanVal escribió:

Mediante Texto en columnas, podrías separar «Programas» en 3 (o más) columnas y luego en una lista aparte de  programas únicos  y la función  =CONTAR.SI($C$2:$E$5;G1) obtienes las repeticiones (usos) de cada programa.



Hola Antonio,
Gracias por tu respuesta. Ya pensé en su día utilizar "Texto en columnas" pero una de las restricciones que tengo es que no puedo modificar el fichero fuente que recibo, es decir, trabajar directamente sobre ese Excel, además, necesito que esté automatizado todo el proceso (no puedo saber en cuántas columnas tengo que separar el valor, incluso puede haber un valor "Otros" que recoja otros programas, etc.).
Lo que he hecho hasta ahora ha sido:
  1. Crear una consulta desde otro fichero a esos datos
  2. Realizar las transformaciones necesarias para tener las preguntas clasificadas
  3. Hacer alguna gráfica en las preguntas de respuesta simple
  4. Probar transformaciones para las preguntas de respuesta múltiple
Como necesito que estén automatizados todos los pasos lo he conseguido de esta manera, excepto con esos campos de respuesta múltiple que se me resisten.
Disculpar si no me expliqué bien al principio.

Gracias,
Juan Carlos


Publicado por: lbauluz
Fecha de publicación: 14/Abril/2020 a las 17:08
Pues la solución, para mi, pasa por hacer una copia del Excel, trabajar en la copia.

Aplicas el texto en columnas a esta copia y trabajas con eso.

Luego aplicas lo que te ha dicho AnSanVal, y si no estás seguro de cuantos programas pueden venir, pones la fórmula como esto.
=CONTAR.SI($C$2:$Y$100;Z1)


Luego haces las gráficas y lo que necesites.

La ventaja de que no puedas tocar el fichero original es que tienes que trabajar en una copia y en ella puedes hacer todo lo que necesites y como quieras.

Luis




-------------
El Búho es un pajarraco


Publicado por: AnSanVal
Fecha de publicación: 14/Abril/2020 a las 18:27
 

«... una de las restricciones que tengo es que no puedo modificar el fichero fuente...»


Así lo había entendido, mi idea (tal como comenta lbauluz) es hacer una copia de los datos en un libro aparte y en él modificar los datos para obtener el informe que se necesita.


Otra idea (si no te convence esa) podría ser:

- Defino el rango de programas (origen) con el nombre  prog (podrías hacerlo dinámico).

- En el rango (p. e.)  H1:K2...


No utilizo Skype Teams Webex
1 2 2 3


       · [H2]     =CONTAR.SI(prog;"*"&H$1&"*")

       · Copia/Pega  [H2] hasta [K2]





-------------
Saludos desde Tenerife.


Publicado por: majete
Fecha de publicación: 14/Abril/2020 a las 19:07
Genial, gracias a los dos. Creo que optaré por hacer la copia y trabajar con el rango de programas como me indica Antonio.

Duda solventada!
Un saludo y gracias por la rapidez
JC



Imprimir página | Cerrar ventana