Ir al contenido principal

Entradas

Mostrando entradas de enero, 2012

buscarv con varios resultados

Es de las preguntas mas recurrentes que he tenido: ¿se puede lograr que la función BUSCARV() devuelva varios resultados? Si recordamos el uso de esta función, sabremos que la misma buscar en valor en el rango especificado, retornando un solo resultado. Si en la tabla tenermos varios registros iguales BUSCARV() solo nos devolverá el primero de ellos, omitiendo el resto. Entonces ¿se puede? Bueno, aplicando otra técnica sencilla que se me ocurrió al intentar solucionar el planteamiento de un lector... si, puedo hacerlo.... pero sin usar BUSCARV(). la idea es que coloquemos en E1 el código del producto a buscar y a partir de E2 nos devuelva todas las coincidencias de la tabla. [+/-] Ver el resto / Ocultar Vamos a necesitar una columna "auxiliar" para llevar a buen término este proyecto. Con macros el tema sería mas sencillo, pero aquí la cuestión es resolverlo con las funciones de Excel, sin VBA. Paso a paso: Como primer medida chequeamos que valores de la columna A coincide co...

guardar hojas de excel como csv

Un archivo CSV (   comma-separated values: valores separados por comas ) se puede definir como un archivo TXT, en donde los campos (valores) se encuentran separados por una coma ( , ). Así de simple, no encierran mayores misterios. Y son extremadamente útiles para el almacenamiento de grandes cantidades de datos, ya que no poseen formatos y cada caracter es un byte, lo que los convierte en algo realmente liviano y "transportable". Ejemplo sacado de Wikipedia: 987,juan,87345,10 norte 342 876,pedro,43649,8 oriente 342 123,jorge,03342,av. libertad 23 69,vicente,61560,valencia nº183 18,lorenzo,06490,sol nº 18 19,lucía,06480,luna nº 8 [+/-] Ver el resto / Ocultar Como ya intuirán, son muy sencillos de importar a una hoja de cálculos, dado que esas comas nos permitirán separar los campos y colocar cada uno de ellos en una columna distinta. El tema aquí es que Excel nos permite exportar datos hacia CSV, desde la opción "guardar como...": solo deberemos tener en cuenta s...

importardatosdinamicos con excel

Aunque parezca un error de ortografía, el título de la entrada es correcto.  Nos dedicaremos a explorar un poco a esta casi desconocida función de Excel ( IMPORTARDATOSDINAMICOS() = GetPivotData en inglés ). Aparte veremos pequeños consejos para elaborar "tableros de control", tan prácticos para nuestros proyecto. Acorde con su nombre, esta función nos permitirá obtener datos que provengan de una Tabla Dinámica, la cual es desde siempre una de las herramientas mas poderosas con la que contamos en Excel. Cuando trabajamos con grandes cantidades de datos la mayor preocupación es siempre como resumirlos y así lograr reportes que sean "analizables", y no un registro detrás del otro. Las Tablas Dinámicas nos permiten eso, mas aún teniendo en cuenta que no solo podemos obtener datos del propio Excel, si no de otras varias y distintas fuentes (access, txt, dbf, páginas web, etc, etc, etc). Pero así y todo muchas veces el análisis de esos reportes resultantes se torna compl...

imagenes, comentarios y autofiltros

Si existe un tema bastante recurrente en las consultas es el del trabajo con imágenes desde nuestro querido Excel. No en lo que refiere al tratamiento "fotográfico" de ellas, ya que no es Photoshop (aunque se pueden lograr efectos interesantes), pero si en lo concerniente a colocar fotos de empleados, imágenes de tapas de discos, etc, etc, etc. En el blog encontrarán muchas entradas realizadas al respecto, aunque esta nueva pregunta merece su post, ya que difiere un poco de las demás y plantea una situación distinta: mi lector posee una tabla en la que guarda datos de los empleados de la empresa: legajo, apellido, nombre y demás. Entre esos "demás" quiere almacenar en una celda la foto del empleado. La cuestión pasa por que luego utiliza autofiltros..... y necesita que al filtrar la tabla quede la imagen de agente en cuestión. El problema es que si coloco fotos en las celdas y luego aplico autofiltro los resultados pueden ser bastante indeseados, aunque haremos un p...

trabajemos con hojas

Un lector me plantea lo siguiente: tiene un libro en el cual necesita que cada una de sus hojas posea un logotipo y que el mismo sea inamovible. La cuestión sería muy fácil de resolver, pero me brinda un datos mas: si los usuarios insertan una nueva hoja de cálculos.... también deberá aparecer el mismo logotipo y, obviamente, que este tampoco se pueda quitar. Hasta donde llega mi entendimiento, y para no complicar demasiado las cosas, para que una imagen (desde archivo, shape, etc, etc) no se pueda borrar, la hoja debe estar protegida. Y si está protegida... de antemano tendríamos que fijar que  celdas serían viables de modificarlas y cuales no.... toda una cuestión para "coordinarlo" correctamente desde VBA. Entonces se  me ocurrió lo siguiente: crear una hoja "molde" con el diseño y las características deseadas (logo, celdas bloqueadas / desbloqueadas, figuras, etc, etc), ocultarla a la vista de los usuarios y que dicha hoja se "replique" cada vez que al...

como enviar mails desde excel con outlook

Estimo que el título de la entrada es bastante descriptivo, no necesita mayores explicaciones. Dado mi post anterior ( link ) he recibido en los últimos días varias consultas sobre realizar esta tarea utilizando a Microsoft Outlook como "intermediario". La tarea no es complicada y a la vez resulta sencilla de adaptar a cualquier proyecto, por cuanto estimo les será de ayuda en su trabajo diario. Gracias a los mensajes y códigos que me hicieron llegar, mismos que usaré en la presente entrada. [+/-] Ver el resto / Ocultar El tema pasa por que Excel no tiene ni la mas mínima idea de quien es Outlook... así que menos idea tendrá de como utilizarlo. Necesitamos entonces crear el "objeto outlook" dentro de VBA con la ya conocida función CreateObject("tipo_de_objeto") ; toda vez realizada esta acción estaremos en condiciones de acceder a las propiedades, métodos y eventos de Outlook. El ejemplo que brindaré a continuación necesita que, obviamente, tengamos una ...