domingo, 12 de abril de 2009

Consultas

Como comentaba en la .Declaración de Intenciones, el 90% de lo que he aprendido en Excel ha sido por necesidades del trabajo. Se plantea una necesidad e inmediatamente surge la pregunta ¿Cómo podría hacer esto...?, entonces te mueves, investigas y finalmente encuentras la solución que pasa a engrosar tus conocimientos.
n
Como es lógico, con el paso del tiempo encuentras solución para todos esos "retos" y tu crecimiento se ralentiza al encontrar cada vez menos necesidades para las que no tienes respuesta. Por eso os agradezco que compartáis conmigo vuestras dificultades. Quizá os pueda ayudar y a la vez aprender cosas nuevas, esa es mi intención.
n
Dejo este espacio par que a través de los comentarios me planteéis vuestras preguntas, en caso de requerir adjuntar archivos tenéis la opción de mandarme un correo electrónico. Intentaré no tardar mucho en responder, si bien no puedo garantizarlo.
n
Si queréis compartir vuestras soluciones a alguna pregunta o algún truco que consideréis pueda ser de interés, sentiros libres para hacerlo.

10 comentarios:

Anónimo dijo...

Hola,

Tengo una lista con múltiples referencias que son códigos alfanuméricos. Esta lista ha sido rellenada por varias personas y sin un formato constante en cuanto a mayúsculas o minúsculas.

¿Hay alguna forma rápida de homogeneizarlas?

Gracias.

CMG dijo...

Buenas,

Si lo único que necesitas es convertir en mayúsculas o minúsculas todas las letras de la lista lo puedes hacer con las fórmulas =MAYUSC(CELDA) o =MINUSC(CELDA), esto convertirá a mayúsculas o minúsculas todas las letras que aparezcan.

Este caso me recuerda a uno parecido que tuve yo, teníamos una lista grande de personas sin formato homogéneo. Aquí era peor porque también habíamos utilizado abreviaturas del tipo Mª... y hacía que al ordenar la tabla para detectar posibles repeticiones no se vieran claramente. En ese caso nosotros optamos por utilizar la fórmula de mayúsculas para poner todos los nombres en mayúsculas. Con la opción de reemplazar cambiamos la mayoría de abreviaturas. Pero aún así tuvimos que echarle un ojo manualmente antes de ordenarlas para eliminar las coincidencias.

Espero haberte contestado, en caso contrario no dudes en comentármelo.

Saludos.

Anónimo dijo...

Hola CMG,

Primero quiero felicitarte por tu blog, llevo siguiéndolo un tiempo y veo cómo está evolucionando a entradas cada vez más avanzadas.

El caso es que en mi trabajo me han pasado un archivo que contiene la fórmula DESREF, y no me siento cómodo con ella porque no entiendo cómo funciona.

Por favor, té envío por correo la parte donde se encuentra para ver si me puedes echar una mano para entender qué y cómo lo hace.

Muchas gracias por anticipado.

Jaimeken dijo...

Tengo el siguiente problema.

Tengo en una tabla codigos numericos que hacen relacion a una lista de ubicaciones fisicas dentro de una planta industrial, la cantidad de numeros distintos es igual al de ubicaciones, el problema radica en que no he podido incluir la cantidad de condiciones que necesito usando la funcion si, colocando la siguiente condicion SI en el espacio "valor_si_falso", siendo el total de condiciones cercanas a las 60 y el editor de formulas no me lo permite, por tanto quisiera saber alguna forma para sortear este problema.

Te adjunto el total de codigo permitido por el editor de formulas de excel.

=SI(D2=Area!A$1;Area!B$1;SI(D2=Area!A$2;Area!B2;SI(D2=Area!A$3;Area!B$3;SI(D2=Area!A$4;Area!B$4;SI(D2=Area!A$5;Area!B$5;SI(D2=Area!A$6;Area!B$6;SI(D2=Area!A$7;Area!B$7;si(d2=Area!A$8;Area!B$8;si(d2=Area!A$9;Area!B$9;si(d2=Area!A$10;Area!B$10;si(d2=Area!A$11;Area!B$11;si(d2=Area!A$12;Area!B$12;si(d2=Area!A$13;Area!B$13;si(d2=Area!A$14;Area!B$14;si(d2=Area!A$15;Area!B$15;si(d2=Area!A$16;Area!B$16;si(d2=Area!A$17;Area!B$17;si(d2=Area!A$18;Area!B$18;si(d2=Area!A$19;Area!B$19;si(d2=Area!A$20;Area!B$20;si(d2=Area!A$21;Area!B$21;si(d2=Area!A$22;Area!B$22;si(d2=Area!A$23;Area!B$23;si(d2=Area!A$24;Area!B$24;si(d2=Area!A$25;Area!B$25;si(d2=Area!A$26;Area!B$26;si(d2=Area!A$27;Area!B$27;si(d2=Area!A$28;Area!B$28;si(d2=Area!A$29;Area!B$29;si(d2=Area!A$30;Area!B$30;si(d2=Area!A$31;Area!B$31;si(d2=Area!A$32;Area!B$32;si(d2=Area!A$33;Area!B$33;si(d2=Area!A$34;Area!B$34;si(d2=Area!A$35;Area!B$35;si(d2=Area!A$36;Area!B$36;si(d2=Area!A$37;Area!B$37;si(d2=Area!A$38;Area!B$38;si(d2=Area!A$39;Area!B$39;si(d2=Area!A$40;Area!B$40;si

CMG dijo...

Hola Jaimeken,

Pienso que lo mejor en este caso es utilizar un buscarv en lugar de un condicional. Hay una entrada en el blog sobre esta fórmula.

Por lo que intuyo de tu fórmula tienes una lista de posibles valores de la celda d situados en la pestaña “Area” columna A y a cada uno de ellos le corresponde un valor de la columna B.

Son demasiados valores para utilizar un condicional, pero si estoy en lo cierto sobre lo que pretendes con la fórmula, te será mucho más eficiente lo siguiente:

Primero ordena la tabla de equivalencias en orden ascendente por la columna A. (Si no pudieras hacerlo porque es parte de una tabla más grande que no quieres alterar, siempre puedes poner esa tabla de equivalencias en otra pestaña).

Luego, en la celda en la que estás poniendo los condicionales escribe:
=BUSCARV(D2;Area!$A$1:$B$70;2;0)

He puesto 70 líneas, pero lógicamente debes poner tantas como opciones tengas.

De este modo para cada valor que pongas en la celda d2 la fórmula buscará el que le corresponde en la tabla de equivalencias.

Como digo tienes más información sobre BUSCARV en el blog. Espero que esto te sirva, en caso de que no sea así no dudes en comentármelo.

Saludos.

Jaimeken dijo...

Hola, nuevamente, con respecto a la pregunta anterior, funciono de forma impecable esa funcion, ahora bien, tengo otro problema que al parecer es mas complejo, te explico.

Tengo que usando buscarv hacer referencias pero dentro de planillas muy granndes, la de valores buscados es de cerca de 6000 items y la de matriz donde buscar es de 22000 aproximadamente, lo hizo la primera ves demorandose un poco, pero luego de guardarla y reabrirla vino el error, "Recurosos insuficientes. Seleccione menos datos o cierre otras aplicaciones", no actualizandose las celdas, que crees que se pueda hacer respecto al problema.
Otra cosa que quiza sea importante es que son planillas distintas, no un mismo archivo, esperando me puedas ayudar, me despido desde ya dandote las gracias.

CMG dijo...

Hola Jaimeken,

Pues el mensaje explica el problema. Tu equipo se queda frito.
Supongo que no funciona la solución que te propone ni puedes usar un ordenador más potente (o ya tienes uno potente).

Cuando el número de registros es considerable como el caso que cuentas, suele atascarse excel si tienes libros vinculados. Por supuesto la opción más fácil es copiar la información a la que se refiere el buscarv en una pestaña del mismo libro. Esto es prácticamente seguro que solucionará el problema.

Al final es un problema de uso de memoria. Compara la longitud de la fórmula en el caso de libros vinculados y de un solo libro. Dependiendo de la ruta de ubicación del archivo la fórmula puede ser pantagruénica y eso multiplicado por miles de registros imagínate...

Hay otras formas de ahorrar memoria como por ejemplo eliminando formatos y añadidos estéticos pero prueba a hacerlo en el mismo libro y si no funciona me cuentas.

Saludos.

Anónimo dijo...

Estimada e ilustrisima excelencia... :)

Lo primero que quiero hacer es felicitarte por el blog. He descubierto cosas muy aplicables a mi trabajo administrativo que me han simplificado la vida. Tu explicaciones suelen ser claras y los ejemplos faciles de entender.

Te agradeceria si pudieses incluir entradas del tipo desde 0 que tratasen sobre VBA. Veo que tiene muchas posibilidades, pero lo que veo por ahi sobre el tema es para iniciados...

Por ponerte una pega, te dire que los porcentajes de tu encuesta no son correctos. Suman mas de 100!!!. Seguro que no los has calculado con excel...

Un saludo.

excel n' cia dijo...

Muchas gracias por tu comentario y por tu saludo "ligeramente" exagerado...

Tendré en cuenta tu sugerencia, aunque aún tengo previsto hacer más entradas sobre opciones de Excel, (que hay aún mucho que contar) y lamentablemente no dispongo de mucho tiempo para dedicarle últimamente.

Un consejo para que te pongas con VBA de forma autodidacta es la paciencia, al principio se aprende muy lentamente, ya que hay que entender una serie de conceptos un tanto abstractos. Pero luego el aprendizaje sigue una progresión geométrica y los avances son cada vez mayores.

Por cierto, agradecería tener un nombre de pila/apodo/nick al que dirigirme en vuestros comentarios, resulta un poco extraño contestar como: "hola anónimo"...

Hasta pronto.

excel n' cia dijo...

Ah,... Se me olvidaba!!!...

Tienes razón en lo de la encuesta, no calcula bien los porcentajes. Pero no los calculo yo si no la propia herramienta.

Tengo localizado el error, puse la opción de poder elegir varias respuestas ya que se puede utilizar el 2007 en casa y 2010 en el trabajo y cosas así.

El caso es que cuando se marcan varias opciones en una respuesta la herramienta no lo tiene en cuenta y al hacer el porcentaje cuenta el número de veces que se ha marcado cada opción y lo divide entre el número de respuestas. Así sale más porcentaje que 100, ya que hay respuestas que tienen más de una opción.

El caso es que lo que me interesa de la encuesta es básicamente ver cómo Excel 2010 va sustituyendo en uso a Excel 2007 (Está claro que Excel 2003 ya está mayoritariamente sustituido).

En fín, muchas gracias por el comentario. Cualquier cosa como esta, que no te cuadre dímela que me interesa mucho la crítica constructiva.

Saludos.