You are on page 1of 56

Partes de una fecha

Las funciones DIA, DIASEM, MES y AO nos ayudan a obtener una parte de la fecha que se especifica como argumento. Todas estas funciones se encuentran dentro del grupo de funciones de fecha y hora.

La funcin DIA
Esta funcin obtiene el nmero de da especificado en una fecha. El dato regresado es siempre un nmero entre 1 y 31. Por ejemplo, observa el resultado al introducir la siguiente frmula:

La funcin DIA despliega precisamente el nmero 5 que es el da del mes especificado en la fecha.

La funcin DIASEM
En ocasiones deseamos saber el da de la semana a la que se refiere una fecha especfica. Por ejemplo, utilizando la misma fecha del ejemplo anterior utilizando la funcin DIA.SEM obtenemos el siguiente resultado:

La funcin regresa el valor 4 porque es el valor entero que representa al da mircoles ya que de manera predeterminada Excel toma al domingo como el primer da de la semana y al sbado asigna el nmero 7.

La funcin MES
Para obtener el nmero de mes especificado en una fecha utilizamos la funcin MES. La funcin siempre regresar un valor entre 1 y 12.

La funcin AO
Finalmente tenemos la funcin AO la cual obtiene el ao de la fecha especificada.

Al trabajar con aos en Excel debes tener cuidado ya que siempre que quieras hacer referencia a un ao del sigo XXI debes especificar los 4 dgitos, de lo contrario recibirs un nmero que seguramente no esperabas. Observa el siguiente ejemplo donde en lugar de especificar el ao 2011 he especificado solamente 11:

El trabajo con fechas es muy importante en Excel y debes conocer las funciones adecuadas que te ayudarn a trabajar con este tipo de datos. XXXXXXXXXXXXX El formato 20130505 no es un formato de fecha vlido. Te recomiendo hacer primero la conversin a un formato de fecha vlido y posteriormente hacer la comparacin. La conversin la puedes hacer con la siguiente frmula: =FECHANUMERO(DERECHA(A1,2) & / & EXTRAE(A1,5,2) & / & IZQUIERDA(A1,4)) XXXXXXXXXXXXX En algunas ocasiones nos hemos topado con la necesidad de hacer la extraccin de un grupo de caracteres dentro de una celda ya que requerimos solo una parte de ellos, existen diversas maneras de hacerlo no obstante en Excel existe una funcin que te permite realizar este trabajo sin inconvenientes, ya que con la funcin EXTRAE tienes la posibilidad de hacer la extraccin de un conjunto de caracteres ya sean texto, smbolos, valores o nmeros.

A continuacin se explica en detalle la funcin de Excel EXTRAE. La funcin EXTRAE devuelve un nmero especfico de caracteres de una cadena de texto, comenzando en la posicin que especifiques y en funcin del nmero de caracteres que especifiques. La funcin EXTRAE se utiliza con idiomas que emplean un conjunto de caracteres de un byte (SBCS). (SBCS) Single Byte Character Set: se utiliza para referirse a conjuntos de caracteres que utilizan exactamente un byte por cada carcter grfico. La funcin EXTRAE siempre cuenta cada carcter como 1, ya sea de un byte o de doble byte e independientemente de la configuracin predeterminada de idioma. La funcin EXTRAE la podemos hallar dentro de las funciones de Texto como se aprecia en la imagen:

En la siguiente imagen se puede apreciar la sintaxis de esta funcin:

Texto: Cadena de texto que contiene los caracteres que se desea extraer. Posicin_inicial: Posicin del primer carcter que se desea extraer del texto. La Posicin_inicial del primer carcter de texto es 1, y as sucesivamente. Nm_de_caracteres: Especfica el nmero de caracteres que se desea que EXTRAE devuelva del argumento texto. A considerar:

Si posicin_inicial es mayor que la longitud de texto, EXTRAE devuelve (texto vaco).

Si posicin_inicial es menor que la longitud de texto, pero posicin_inicial ms nm_de_caracteres excede la longitud de texto, EXTRAE devuelve los caracteres hasta el final de texto.

Si posicin_inicial es menor que 1, EXTRAE devuelve el valor de error #VALOR! Si nm_de_caracteres es negativo, EXTRAE devuelve el valor de error #VALOR!

En Practica!
Veamos a continuacin un ejemplo para comprender mejor esta funcin: Existe un una tienda por departamentos en la cual se necesita realizar una organizacin de los datos de tal manera que este asociado un cdigo con un departamento en especifico, sin embargo los cdigos que se tienen estn con caracteres adicionales que no se requieren, por lo tanto se necesita hacer la extraccin del cdigo antes para que sea combinado con el nombre del departamento. En la imagen anexa se encuentra el ejemplo propuesto:

Cmo lo vamos a realizar?

Vamos a emplear inicialmente la funcin EXTRAE y luego vamos a emplear la funcin de Texto CONCATENAR para hacer la combinacin del departamento con el cdigo, veamos en la imagen anexa la solucin a este ejemplo:

Como se puede apreciar la combinacin de ambas funciones (Formula) soluciono el ejercicio propuesto ya que con el uso de la funcin EXTRAE y CONCATENAR se obtiene el dato requerido. El uso de la funcin EXTRAE simplifica el trabajo en alto grado ya que optimizamos el tiempo que normalmente invertimos en los procedimientos manuales y adems que puede ser anidada con una gran diversidad de funciones con lo que se crean formulas nuevas para solucionar problemas ms complejos.

XXXXXXXXX

Tutorial Excel: Cmo crear una lista desplegable mltiple


Posted On 23/11/2010 In Tips, Tutoriales Excel En muchas ocasiones nos encontramos trabajando con mltiples listas desplegables en una misma hoja de clculo que ocupan un espacio que podramos aprovechar para otros fines; en nuestra experiencia este suele ser un molesto inconveniente cuando se trata de disear paneles de control, balanced scorecards o dashboards desde Excel con controles de interactividad que permitan explorar mltiples fuentes de datos, instrumentos en donde por premisas de diseo debemos aprovechar al mximo cada espacio disponible, dndole siempre el mejor uso posible. Afortunadamente de una forma muy sencilla podemos forzar que una lista desplegable cambie automticamente a partir de nuestra seleccin en una combinacin de botones de

opcin (tambin disponibles en los Controles de Formulario), los cuales ocupan considerablemente menos espacio. En este tutorial detallaremos como hacerlo partiendo de tres sencillos pasos a seguir:

1. 2. 3.

Preparar nuestra hoja de clculo. Insertar y configurar nuestros botones de opcin. Insertar y configura nuestra lista desplegable mltiple. El resultado final que obtendrn al aplicar nuestras instrucciones deber ser muy similar al de la imagen anexa:

Si les gusta el resultado, veamos entonces en detalle como hacer nuestra lista desplegable mltiple en Excel.

En prctica!
Paso 1: Preparar nuestra hoja de clculo.
Nuestro primer paso ser preparar nuestra hoja de clculo para los cambios que vamos a realizar. Para este fin tan solo es necesario que seleccionemos tres celdas de nuestra

preferencia en donde alojaremos tres datos que sern de importancia para crear nuestra lista desplegable mltiple en Excel:

Una celda para cargar los datos de seleccin de nuestro botn de opcin Una celda para cargar la direccin de referencia de los datos a mostrar en nuestra lista desplegable mltiple. Una celda para cargar los datos de la seleccin una vez que se comience a interactuar con nuestra lista desplegable mltiple. En nuestro caso seleccionamos las celdas D3 , D4 y D5 de nuestra hoja de clculo, trabajando con una tabla configurada de C7 a E19, tal como lo pueden apreciar en la imagen anexa:

Para un manejo ms sencillo de la formulacin asignaremos un nombre a la celda en la que cargaremos los datos que nos indican que botn de opcin se encuentra seleccionado. Para ello recuerda que solo debes acceder a la ficha Frmulas, seccin Nombres definidos, icono Asignar nombre a un rango:

En el cuadro de dilogo que te aparecer asignars cual es el nombre que deseas asignar, a que mbito se refiere, un comentario entorno a para que sers empleado y a que celda hace referencia. En nuestro caso se trata de la celda D3 y la llamamos Boton:

Para mayores detalles entorno a como asignar nombre a un rango de datos no dudes en visitar este artculo dedicado al tema.

Paso 2: Insertar y configurar nuestros botones de opcin.


Luego de configurar nuestra hoja de clculo procederemos a insertar nuestros botones de opcin que emplearemos para configurar la lista desplegable mltiple. Para ello iremos a la ficha Programador, seccin Controles, botn Insertar:

Una vez all seleccionaremos en la seccin Controles de Formulario, el icono de Botn de Opcin, tal como lo pueden apreciar en la imagen anexa:

Insertaremos tantos botones de opcin como categoras tenga nuestro cuadro de origen. En nuestro caso insertaremos tres botones de opcin, uno para la categora Das, uno para la categora Meses y otro para la categora Empresas. Luego podemos cambiar los nombres de cada uno de nuestros botones de opcin haciendo clic izquierdo sobre cada uno de ellos y asignndole el nombre correspondiente. Para configurar nuestros botones de opcin mantendremos pulsada la tecla Control, hacemos clic en cada uno de los botones de opcin de forma que todos queden seleccionados. Luego haremos clic sobre los mismos con el botn derecho del ratn y seleccionamos la opcin Formato de Control:

En la pestaa Control especificaremos a que celda queremos vincular nuestros controles. En nuestro caso ser con la celda D3, a la cual llamamos Boton. Si deseamos agregar un efecto 3D a nuestro botones es posible tambin hacerlo desde esta ficha marcando la opcin

Paso 3: Insertar y configurar nuestra lista desplegable mltiple.


Como paso siguiente insertaremos nuestra lista desplegable. Para ello iremos nuevamente a la ficha Programador, seccin Controles, botn Insertar:

Una vez all seleccionaremos en la seccin Controles de Formulario, el icono de Cuadro Combinado (controles de formulario), tal como lo pueden apreciar en la imagen anexa:

Una vez insertado nuestro cuadro combinado que emplearemos como lista desplegable mltiple procederemos a emplear una frmula que nos permitir conocer cual lista de datos debe ser mostrada de acuerdo a nuestra seleccin. Emplearemos para este fin la funcin de MS Excel DIRECCION. En nuestro caso ser cargada en la celda D4 de nuestra hoja de clculo, nuestra celda Direccin, haciendo referencia al rango de datos de nuestra tabla (c7:E19): =DIRECCION(8;Boton+2)&:&DIRECCION(19;Boton+2) En el primer argumento de la primera funcin DIRECCION colocaremos un nmero que ser el resultado de sumarle 1 a el valor de referencia de la fila en que inicia nuestra tabla para que el rango a asignar se encuentre justo por debajo del encabezado de la tabla (en nuestro caso 7+1=8). En el primer argumento de la segunda funcin DIRECCION colocaremos un nmero que ser igual al valor de la fila en que finaliza nuestra tabla (en nuestro caso 19). El segundo argumento de ambas funciones DIRECION depender tambin de la ubicacin de nuestra tabla. Si inicia en la columna A no debemos sumarle nada a nuestra celda botn pero en caso contrario debemos sumar uno por cada columna de separacin que este el inicio de nuestra tabla de la primera columna de nuestra hoja de clculo (en nuestro caso la tabla comienza en la columna C, por lo que sumamos 2: Boton+2) Como resultado de aplicar esta frmula obtendremos la direccin del grupo de celdas que deben ser mostradas en nuestra lista desplegable mltiple de acuerdo a nuestra seleccin en los botones de opcin, en la imagen anexa resaltada en azul:

Nuestra siguiente accin ser crear una referencia a esta Direccin que pueda interpretar nuestra lista desplegable mltiple. Para ello debemos ir a la ficha Frmulas, seccin Nombres definidos, icono Asignar nombre a un rango:

En el cuadro de dilogo que te aparecer asignars cual es el nombre que deseas asignar, a que mbito se refiere, un comentario entorno a para que sers empleado y a que celda hace referencia. En nuestro caso asignamos como nombre Direccion. En el cuadro de texto Se refiere a escribiremos lo siguiente y haremos clic en Aceptar: =INDIRECTO($D$4) Para finalizar haremos clic con el botn derecho del ratn en nuestro cuadro de dilogo que aadimos anteriormente y seleccionaremos la opcin Formato de Control. En la pestaa Control escribiremos Direccion en el cuadro de texto Rango de Entrada, vinculando con la celda $D$5 (nuestra celda Seleccin). Para finalizar haz clic en Aceptar.

Informacin Importante: Con el objeto de hacer ms didctico este tutorial de cmo crear una lista desplegable mltiple en Excel, hemos empleado celdas de referencia (D3, D4 y D5) que se encuentran a la vista de los usuarios. Recomendamos que en sus propias configuraciones estas celdas no se encuentren a la vista de los usuarios para evitar que puedan daar sin desearlo la lista desplegable mltiple. Recuerden que deben adaptar para ello toda la formulacin empleada. Hemos culminado! Si han seguido los pasos detallados debern obtener un resultado muy similar al anexo:

Dejamos a su disposicin archivos de prctica para que puedan detallar como se encuentran configurada nuestra lista desplegable mltiple en Excel:

Lista Desplegable Mltiple Formato Excel 2007

Lista Desplegable Mltiple Formato Excel 2003

Si te gust este tutorial no dejes de visitar nuestra seccin de Tutoriales Excel donde podrs encontrar mucha ms informacin de tu inters: Seccin de Artculos Tutoriales Excel Como siempre no olviden que todo nuestro equipo se encuentra a su disposicin para atender sus comentarios, aportes o dudas entorno a este o cualquiera de nuestros artculos. Estamos para servirles! Un abrazo, pronto estaremos nuevamente en contacto. El Equipo EXCELLENTIAS.COM

XXXXXXXXXXXXX

Macros para proteger o desproteger una hoja Excel


Posted On 20/10/2009 In Macros, Macros Excel Deseas conocer cmo proteger o desproteger una hoja Excel a travs de macros? En este tutorial te explicaremos en tan solo cuatro pasos como crear una macro muy simple que te permitir proteger una hoja de Excel, y otra que te permitir desprotegerla, unas escasas lneas de cdigo que puede resultarte de amplia utilidad en aquellos casos donde requieres trabajar con macros mucho ms grandes que deben intervenir sobre hojas de clculo protegidas con contrasea.

Paso 1: Activar la ficha Programador.


Los comandos que se usan para editar y ejecutar macros en Excel se encuentran en el grupo Cdigo de la ficha Programador, la cual de forma predeterminada se encuentra oculta. Por ello nuestro primer paso de este tutorial para proteger o desproteger una hoja Excel ser abrir nuestro archivo y activar la ficha Programador. Recuerda que este paso solo aplicar en caso de que no tengas activa esta ficha; si ya la tienes activa puedes ir directamente al paso siguiente.

En Excel 2007 ubica la cinta de opciones de la barra de herramientas e ingresars en: Botn Inicio/ Opciones de Excel/ Ms frecuentes/ y debers seleccionar la opcin Mostrar ficha programador en la cinta de opciones. La imagen anexa te muestra cul es la opcin a seleccionar para activar esta ficha:

Paso 2: Ingresar al editor de Visual Basic y crear un nuevo Mdulo.


Nuestro segundo paso ser ingresar al Editor de Visual Basic. Para ello en la ficha Programador debers ubicar el grupo Cdigo el cual podrs identificar fcilmente por encontrarse a la izquierda, con una apariencia como la de la imagen anexa:

Una vez ubiques el grupo cdigo hars clic en el botn Visual Basic, el cul te llevar al Editor de Visual Basic. Cuando ingreses al editor ubicars a la derecha de la pantalla la ventana del Proyecto VBAProject. All debers hacer clic derecho sobre la carpeta Microsoft Excel Objetos correspondiente al libro Excel en donde desees incluir tu nueva macro para proteger y desproteger una hoja Excel. En el men desplegable que aparecer selecciona Insertar y luego Mdulo, para crear un nuevo mdulo en donde sern alojadas nuestras macros.

En la imagen anexa puedes apreciar cuales son las opciones a seleccionar para incluir un nuevo mdulo:

Paso 3: Alojar cdigo para proteger o desproteger una hoja Excel.


Nuestro siguiente paso ser copiar en el nuevo Modulo que hemos insertado el siguiente cdigo de Visual Basic. El cdigo incluye dos macros: Proteger, la cual te permitir proteger con la contrasea de tu preferencia una hoja Excel, y Desproteger, la cual te permitir desproteger cualquier hoja Excel de tu preferencia si conoces cual es la contrasea de desproteccin de la misma. En la lnea de cdigo que hace referencia al objeto Sheets debers escribir el nombre de la hoja de clculo de Excel que deseas proteger o desproteger segn la macro que edites.En el cdigo que te estamos suministrando ambas macros se encuentran trabajando sobre la Hoja1. Puedes cambiar libremente esta configuracin por la hoja de tu preferencia cambiando el tecto Hoja1 por el nombre de la hoja de clculo a proteger o desproteger cuidando de respetar las comillas. En el campo (xxxx) de ambas macros vas a colocar la contrasea de tu preferencia, recomendablemente una que puedas recordar fcilmente:

Sub PROTECCION()

Sheets("Hoja1").Select

ActiveSheet.Protect ("

")

E!" Sub

Sub #ESPROTE$ER()

Sheets("Hoja1").Select

ActiveSheet.%!&rotect ("

")

E!" Sub

Para probar o ejecutar cualquiera de tus nuevas macros para proteger o desproteger una hoja Excel solo debes colocar el cursor al comienzo de cada cdigo y presionar el botn de ejecucin de la Macro (Ejecutar Sub/UserForm (F5)).

Para que la Macro sea ms segura debes bloquear el acceso al Editor de Visual Basic y con esto restringir el acceso. Nuestro ltimo paso de este tutorial nos mostrar como hacerlo.

Paso 4: Proteger el acceso al Editor de Visual Basic.


En el Editor de Visual Basic hars clic derecho sobre la carpeta Microsoft Excel Objetos del libro de Excel con el que trabajas para que selecciones en el men desplegable que te aparecer la opcin Propiedades de VBAProject. En la imagen anexa podrs apreciar cual es esta opcin:

Una vez seleccionada la opcin Propiedades de VBAProject te va aparecer un cuadro de dialogo en donde vas a seleccionar la pestaa Proteccin en donde marcars la opcin Bloquear proyecto para visualizacin. Debajo de esta opcin debes ingresar la contrasea de tu preferencia para tener acceso al Editor de Visual Basic. Esta contrasea te ser solicitada la prxima vez que intentes editar el cdigo al momento de acceder al Editor de Visual Basic.

Esperamos que este tutorial te haya resultado de mxima utilidad, no dudes comentarnos si tienes alguna duda o consulta adicional. Recuerda que en nuestra categora de artculos relacionados con Macros en Excel podrs encontrar muchsima ms informacin, artculos y tutoriales. Ms artculos de Macros en Excel

El Equipo EXCELLENTIAS.COM XXXXXXXXXXXXXXX

Tablas Dinmicas y campos calculados


Posted On 24/08/2010 In Tutoriales Excel Las Tablas Dinmicas han supuesto la revolucin en Hojas de Clculo de los ltimos aos. Permiten generar informes rpidos y flexibles. Si usted llega a conocer bien su funcionamiento puede cambiar radicalmente la gestin de su departamento o unidad de negocio. En este artculo vamos a crear una Tabla Dinmica partiendo de una base de datos. En la tabla dispondremos de los costes de diferentes departamentos de la empresa para el ao 2010 y la previsin para 2011. Crearemos un campo calculado que nos permita observar el incremento de cada departamento en estos aos.

La base de datos de partida es sencilla.

Coste por Proyecto y Departamento En Excel 2007 vamos al men Insertar y luego Tabla Dinmica. Siguiendo unos sencillos pasos llegamos a crear una tabla dinmica como la que se muestra en la siguiente imagen:

Disponemos de los costes del ao 2010 y la previsin para 2011 por cada uno de los departamentos. Los cuatro proyectos se han establecido como filtro de pgina en la parte superior de la tabla dinmica. Ahora deseamos disponer de una columna ms que nos indique la variacin porcentual experimentada por los costes entre los aos 2010 y 2011. Este objetivo se podra lograr por varios mtodos: 1. Escribiendo en la celda D5 la frmula: =C5/B5-1. Esta frmula nos da el

incremento en tanto por uno. Para verlo en porcentaje basta pulsar sobre el icono de porcentaje (%).

2.

Establecer la frmula anterior pero vinculando sobre las celdas C5 y B5. En este caso veremos que la frmula utiliza la funcin IMPORTARDATOSDINAMICOS. Esta forma de trabajar tiene la ventaja de que esta funcin apunta a la tabla dinmica y por tanto no perdemos el vnculo dinmico con la base de datos.

3.

Crear un campo calculado. Este es el mtodo que utilizaremos en este artculo.

Creacin del campo calculado

En Excel 2007 con el cursor sobre la tabla dinmica veremos arriba una nueva opcin denominada: Herramientas de tabla dinmica Al pulsar sobre ella se abren un nuevo men sobre el que pulsaremos sobre Formulas.

La imagen anterior puede diferir de la que usted pueda ver en pantalla, ya que en Excel 2007 la cinta de opciones muestra diferentes iconos, o stos ms o menos resumidos en funcin de la resolucin de su pantalla y del tamao de ventana que utilice. Al pulsar sobre Frmulas elegimos Campo calculado.

Aparece una ventana denominada Insertar campo calculado en el que crearemos la frmula: =2011 /2010 1 La frmula se crea introduciendo los campos (columnas) de la tabla dinmica. En este caso calculamos el porcentaje de variacin por la clsica frmula: Valor Final / Valor Inicial -1 Expresin que es igual a la siguiente: (Valor Final Valor Inicial) / Valor Inicial En nuestro caso los costes del ao 2010 son los valores iniciales y las previsiones para 2011 son los valores finales.

Esto genera una nueva columna que denominamos Var. % que recoge la variacin porcentual de los costes entre los aos 2010 y 2011. Inicialmente los valores que nos dan estn en tanto por uno y hemos de ser nosotros los que debemos dar formato a esos valores como Porcentaje de dos decimales.

Los campos calculados son muy tiles al trabajar con tablas dinmicas y tienen la ventaja de que no perdemos el vnculo dinmico con la base de datos.

Ejercicio propuesto
En la Hoja3 disponemos de una base de datos con 200 registros con los siguientes campos: Fecha, Artculo, Facturacin y Unidades. Nuestro objetivo es crear una tabla dinmica agrupada por meses y trimestres en la que introducimos un campo calculado que nos proporcione el precio medio de venta en cada mes. Todos los datos de la base de datos son aleatorios. As la fecha es un valor aleatorio del primer semestre del ao 2010, y se genera con la frmula: =ALEATORIO.ENTRE(FECHA(2010;1;1);FECHA(2010;6;30)) Los posibles artculos son cinco y se generan aleatoriamente con la frmula: =ELEGIR(ALEATORIO.ENTRE(1;5);Art1;Art2;Art3;Art4;Art5) En Excel 2003 y anteriores para que no de error la frmula ALEATORIO.ENTRE debemos haber activado el complemento de Herramientas para anlisis. Esto se puede activar en el men Herramientas, Complementos. Agrupando las fechas simultneamente por meses y por trimestres obtenemos la tabla dinmica que se muestra en la imagen.

Ahora hemos de crear el campo calculado que insertar una nueva columna en la tabla dinmica. Pretendemos calcular el precio medio, por tanto hemos de dividir la facturacin entre el nmero de unidades.

La tabla dinmica que obtenemos ya incorpora el campo calculado Precio medio.

Los resultados numricos que usted obtenga sern diferentes de los que se muestran en la anterior imagen, esto es debido a que la base de datos trabaja con valores aleatorios. Podemos ver cmo cambian los valores de la tabla dinmica al actualizarla. Para ello pulse con el botn derecho del ratn sobre la tabla dinmica y elija Actualizar.

Al cambiar los datos en la base de datos nuestra tabla dinmica se actualiza al pulsar sobre la opcin Actualizar. En la gestin empresarial no dispondremos de datos aleatorios en la base de datos pero stos si sern cambiantes y podremos actualizar fcilmente nuestros informes ya que la tabla dinmica no pierde el vnculo dinmico con la base de datos.

XXXXXXXX

Eliminar celdas en blanco en Excel


Posted On 06/06/2010 In Tips, Tutoriales Excel Sabias que a travs del comando de seleccin de MS Excel Ir a Especial podemos eliminar celdas en blanco de forma ms rpida y segura, ya que esta accin en la mayora de las veces se realiza de forma manual lo que en muchos casos se hace tedioso por el volumen de los datos y hasta puede ocasionar errores.

En Practica!

Veamos a continuacin mediante un sencillo ejemplo como emplear este comando: En un conjunto de datos que inicialmente vienen ordenados en una columna que tienen celdas en blanco entre s se requiere tener los datos ordenados pero sin las celdas en blanco; una solucin a este particular es emplear el comando de seleccin Ir a Especial. El conjunto de datos inicialmente viene de la siguiente manera:

El primer paso es hacer la seleccin de todo el rango con datos y presionar la tecla F5 o el mtodo abreviado Ctrl + I en donde automticamente aparecer un cuadro de dialogo Ir a en el cual vamos a seleccionar el botn Especial:

Luego de haber hecho clic en el botn Especial aparecer un nuevo cuadro de dialogo Ir a Especial en donde vamos a seleccionar Celdas en blanco tal como se ve en la imagen anexa:

Una vez hecho la seleccin hacemos clic sobre el botn Aceptar y de inmediato las celdas en blanco ya estn seleccionadas para que puedan ser eliminadas:

Para que las celdas en blanco puedan ser eliminadas debemos usar el metodo abreviado Ctrl en donde luego aparecer un nuevo cuadro de dialogo Eliminar celdas en el cual vamos hacer clic en la opcin Desplazar las celdas hacia arriba:

Una vez seguido estos pasos el resultado que vamos a obtener es que todas las celdas en blanco del rango seleccionado ya no aparecen tal como se ve en la imagen anexa:

Este til comando nos brinda una posibilidad muy util para la eliminacin de celdas en blanco de manera efectiva sobre todo si estamos manejando grandes volmenes de datos.

XXXXXXXX

Prueba logica con color de fondo de una celda


Posted On 07/08/2010 In Macros, Macros Excel Recientemente uno de nuestros usuarios nos hizo una interesante pregunta, en la cual manifest lo siguiente: Es posible poner un color de fondo como prueba lgica dentro de la funcin SI de Ms Excel?

La respuesta es s, existen varios mtodos con los que podemos construir la funcin a partir de esa premisa sin embargo esta vez vamos a emplear una funcin desarrollada por el MVP de MS Excel Chip Pearson en su blog www.cpearson.com la cual nos va a permitir elaborar una funcin que identifica el color de fondo de una celda para elaborar con ella luego frmula que emplee la funcin SI para aplicar una prueba lgica al color de fondo. Es necesario aplicar esta tcnica dado que MS Excel por defecto no trae una funcin que permita identificar el color de fondo de una celda, debemos construirla a travs de Visual Basic. Como todo lo dems que existe en el mundo de la computacin los colores son realmente un nmeros. Todos los colores que se muestran en la pantalla de la computadora se encuentran definidos a partir de combinaciones de tres componentes primarios: uno rojo, uno verde y uno azul. Esto es lo que se conoce como cdigo RGB. Visual Basic para Aplicaciones dispone de una funcin RGB que podemos emplear para combinar valores de rojo, verde y azul para crear un valor de RGB en particular y en consecuencia un color en especfico. Chip Pearson precisamente aprovech este particular para desarrollar un set de funciones de gran utilidad que emplean como argumento el color de fondo de una celda o de un rango de estas. Lo primero que debemos realizar para conocer cual es nuestra paleta de colores predeterminada es aplicar un simple cdigo para que la misma se muestre en una hoja de clculo. La paleta de colores consta de 56 colores RGB que MS Excel soporta para su uso por ejemplo en los fondos de celdas y colores de fuentes. El valor de estos 56 colores puede ser cualuiera de entre los 16 millones de colores disponibles pero en la prctica en MS Excel solo podemos emplear 56 colores al mismo tiempo. El cdigo a aplicar para conocer nuestra paleta de colores es el siguiente: Cdigo VBA Atencin: Antes de implementar este cdigo tome la precaucin de guardar un soporte de su archivo. Excellentias no se hace responsable por mal funcionamiento o daos que pueda causar la implementacin de este cdigo.
Sub Displaypalette() Dim N As Long For N = 1 To 56

Cells(N, 1) !nterior Color!n"e# = N Ne#t N $n" Sub

Este cdigo cambia el color de fondo de las primeras 56 celdas de la hoja activa donde lo ejecutemos. El nmero de fila ser igual a un nmero que llamaremos ndice de colores, que no es ms en que la posicin se encuentra un color de los que sern desplegados de la fila 1 a la 56. Para aquellos que dan sus primeros pasos en VBA recuerden que para poder ejecutar este cdigo tan solo es necesario insertar un modulo nuevo en Microsoft Visual Basic en donde vamos a cargar todos los cdigos con los que vamos a trabajar en esta publicacin. Una vez cargado este cdigo lo ejecutamos desde el panel de Microsoft Visual Basic o bien desde la Cinta de Opciones en la ficha Programador/ Macros y con esto las primeras 56 celdas van a tener los primeros 56 colores de los 16 millones de colores disponibles.

Despus de haberse ejecutado la macro el resultado es tal cual lo mostrado en la imagen anexa:

Esta paleta de colores nos va a servir mediante la funcin de color (ColorIndexOfOneCell) para determinar un valor asociado que a su vez nos va a permitir crear la prueba lgica con la funcin SI. A continuacin, para alcanzar nuestro objetivo inicial vamos a cargar el siguiente cdigo de Visual Basic que nos permitir crear una nueva funcin ColorIndexOfOneCell la cual partiendo de simples argumentos identifica cual es el color de fondo de una celda para arrojarnos como resultado cual es el valor de ndice de color (1 al 56) del fondo de esta: Cdigo VBA Atencin: Antes de implementar este cdigo tome la precaucin de guardar un soporte de su archivo. Excellentias no se hace responsable por mal funcionamiento o daos que pueda causar la implementacin de este cdigo.
Fun%tion Color!n"e#&'&neCell(Cell As (ange, &'Te#t As )oolean, * De'aultColor!n"e# As Long) As Long +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+ Color!n"e#&'&neCell + T,is returns t,e Color!n"e# o' t,e %ell re'eren%e" by Cell + !' Cell re'ers to more t,an one %ell, only Cell(1,1) is + teste" + returne" !' &'Te#t True, t,e Color!n"e# o' t,e Font property is !' &'Te#t is False, t,e Color!n"e# o' t,e !nterior !' De'aultColor!n"e# is -= ., t,is

+ property is returne"

+ /alue is returne" i' t,e Color!n"e# is eit,er #lColor!n"e#None + or #lColor!n"e#Automati% +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Dim C! As Long

Appli%ation 0olatile True !' &'Te#t = True T,en C! = Cell(1, 1) Font Color!n"e# $lse C! = Cell(1, 1) !nterior Color!n"e# $n" !' !' C! 1 . T,en !' !s0ali"Color!n"e#(Color!n"e#2=De'aultColor!n"e#) = True T,en C! = De'aultColor!n"e# $lse C! = 31

$n" !' $n" !'

Color!n"e#&'&neCell = C!

$n" Fun%tion 4ri/ate Fun%tion !s0ali"Color!n"e#(Color!n"e# As Long) As )oolean Sele%t Case Color!n"e# Case 1 To 56 !s0ali"Color!n"e# = True Case #lColor!n"e#Automati%, #lColor!n"e#None !s0ali"Color!n"e# = True Case $lse !s0ali"Color!n"e# = False $n" Sele%t $n" Fun%tion

Esta funcin est compuesta por los siguientes argumentos: =ColorIndexOfOneCell(Cell; OfText; DefaultColorIndex)

Cell: es la celda cuyo color se debe leer. OfText: son los argumentos lgicos Verdadero o Falso que indican si se devuelve el ndice de color de la fuente (OfText = Verdadero) o el fondo (OfText = Falso). DefaultColorIndex: El parmetro DefaultColorIndex es un valor de ndice de color (1 a 56) que va a ser devuelto si no hay color especfico donde se ha asignado a la fuente o el fondo del relleno. La funcin ColorIndexOfOneCell ofrece una utilidad limitada ya que solo hace referencia a una celda en particular para otros casos tambin Chip Pearson desarrollo funciones adicionales con diferentes caractersticas que gustosamente pueden ver en su publicacin Color Functions In Excel. Ahora vamos a probar que la funcin ColorIndexOfOneCell est trabajando sin presentar ningn inconveniente, los resultados inciales los vemos mediante la siguiente imagen:

En efecto tal como vemos est funcionando correctamente ya que el color amarillo est ubicado en la celda A6 por lo que el valor asociado a este es 6, ahora podemos trabajarla en conjunto con la funcin SI.

Tras haber realizado estos pasos ahora vamos a utilizar la funcin ColorIndexOfOneCell como prueba lgica de la funcin SI (como recomendacin previamente se debe tener identificado cual es el valor asociado al color de la celda). En el siguiente ejemplo tenemos una tabla con los resultados de las calificaciones de un grupo de estudiantes con la condicin de que para aprobar la materia la nota debe ser superior a 10 puntos sino la celda se va a colorear de rojo, para esto con anterioridad se seleccionaron las celdas donde estn las calificaciones y se aplico Formato Condicional con la Regla Es menor que colocando que si el valor es menor a 10 puntos el fondo pasa a ser rojo.

Pues solo nos queda aplicar la funcin SI colocando como prueba lgica la funcin ColorIndexOfOneCell que nos va a arrojar el valor 3 correspondiente al color rojo y si lo asociamos con el resto de los argumentos (valor_si_verdadero) las notas que son inferiores a 10 puntos el mensaje que se va reflejar es Reprob, (valor_si_falso) si son mayores el mensaje es Aprob. El resultado de esta operacin es como lo mostrado en la siguiente imagen anexa:

Para obtener este resultado previamente se deben hacer algunas modificaciones que usualmente no realizamos sin embargo de acuerdo a nuestras necesidades nos ofrece una excelente alternativa a una carencia de MS Excel. Les dejamos un archivo MS Excel 2007 habilitado para macros con los pasos citados y el ejemplo propuesto en esta publicacin. Tienen algn otro uso que se le pueda dar a esta interesante funcin? Pues les recordamos que est disponible nuestro foro para responder a sus dudas y debatir sus propuestas. Espero la publicacin les sea de mucha utilidad. Saludos y xito! El Equipo de EXCELLENTIAS.COM Fuente: Color Functions In Excel de Chip Pearson, Pearson Software Consulting, LLC.

XXXXXXXXXXXXXX

Como hacer un ranking en Excel


Posted On 09/11/2010 In Formulas, Formulas y Funciones Excel

MS Excel ofrece varias alternativas para jerarquizar valores de una lista de datos, una de ellas es mediante la funcin JERARQUIA no obstante esta funcin es limitada cuando requieres un Ranking en Excel un poco mas complejo. Mediante el uso de formulas podemos lograr organizar los datos para proporcionar un anlisis mucho ms profundo y significativo de los datos. A continuacin te explicamos en detalle como hacer un Ranking en Excel de valores nicos en orden descendente y orden ascendente.

En Practica!
En una lista tenemos los puntos de un grupo de 10 nadadores, dichos puntos van a ser necesarios para definir la clasificacin a una segunda ronda de competicin, es necesario entonces emplear una forma que nos permita jerarquizar los resultados, la lista con la que vamos a trabajar es la mostrada en la siguiente imagen:

El resultado requerido es que se devuelva el nombre del nadador que tenga ms puntos as como tambin hay que tomar en cuenta que los valores deben estar en orden descendente y deben ser resultados nicos. En tal sentido vas a seguir los siguientes pasos para lograr realizar el ranking solicitado:

Paso 1
Vas a necesitar crear una columna adicional donde vas a insertar la funcin JERARQUIA y vas a agregarle el factor de correccin para evitar que los valores repetidos afecten el ranking y esto conlleve a que solo haya valores nicos, el resultado de aplicar la formula con los criterios antes mencionados es tal como lo mostrado en la siguiente imagen:

En la columna Jerarqua se empleo la siguiente formula para obtener valores nicos de acuerdo a los datos de la columna Puntos: =JERARQUIA(C3;$C$3:$C$12;0)+CONTAR.SI($C$3:C3;C3)-1 La formula arroja como resultado un ranking de acuerdo al nadador que tenga ms puntos; por ejemplo Fernando que tiene 13,63 puntos se le asigno la primera posicin y David que tiene 7,06 puntos se le asigno el sptimo puesto.

Paso 2
Insertas una columna adicional que vas a denominar Nombre y es donde vas a insertar la formula que va a traer el nombre del nadador que tenga la mejor posicin de acuerdo a los puntos que posea. La formula que vamos a emplear para lograr el resultado consta de las siguientes funciones: DESREF, COINCIDIR, K.ESIMO.MENOR y FILA. Cada una de las funciones va a cumplir una labor en especfico de acuerdo a lo solicitado. Mediante DESREF y empleando como argumento fila de la funcin utilizamos COINCIDIR en conjunto con K.ESIMO.MENOR y FILA obtenemos el nombre del nadador con mayor puntaje y mejor jerarqua con respecto al resto de los nadadores. La formula resultante que empleamos es la mostrada a continuacin: =DESREF(B$3;COINCIDIR(K.ESIMO.MENOR(E$3:E$12;FILA()FILA(E$3)+1);E$3:E$12;0)-1;0)

Aplicando esta formula a todo el conjunto de datos obtenemos los siguientes resultados:

Tal como se ve en la imagen anexa en la columna Nombre aparecen los nombres de los nadadores ordenados de acuerdo a su ranking, como por ejemplo el caso de Fernando quien posee ranking 1 y aparece en la primera posicin de la lista, de igual forma el caso de David que tiene ranking 7 y aparece en la sptima ubicacin.

Paso 3
Por ultimo para tener la tabla completa vamos a traer los puntos que tuvo cada nadador y los vamos a cargar del lado de los nombres, para ello vamos a emplear la funcin BUSCARV con los argumentos que habitualmente empleamos quedando para este caso de la siguiente manera: =BUSCARV(H3;$B$3:$C$12;2;FALSO)

Resultados
La tabla con los resultados finales queda conforme a lo mostrado en la siguiente imagen:

Ranking en orden ascendente


Se preguntaran Es posible crear tambin una formula con un Ranking en Excel a la inversa es decir, en orden ascendente? En efecto si, ingresando a la funcin JERARQUIA y combinndola con la funcin CONTAR.SI podemos lograr que el ranking sea en orden ascendente nuevamente mediante el uso de algunas formulas. Vamos a continuar trabajando sobre la tabla que venamos utilizando:

Para lograr que el ranking sea en orden ascendente primero insertamos una columna adicional donde vamos a obtener los valores de la jerarqua, para luego insertar la formula que vemos a continuacin: =CONTAR($C$16:$C$25)(JERARQUIA(C16;$C$16:$C$25;0)+CONTAR.SI($C$16:C16;C16))+2 El resultado que vamos a alcanzar con la formula anterior es que de acuerdo a los puntos que tenga cada nadador se va a arrojar un valor en orden descendente, los resultados de aplicar la formula los podemos apreciar mediante la siguiente imagen:

Los valores del ranking tal como se ve en la imagen ahora han cambiado por ejemplo para el caso del nadador Fernando la jerarqua da como valor 10 (Diez) y para el nadador David la jerarqua da como resultado 4 (Cuatro). Solo resta crear una columna donde vamos a tener los nombres de los nadadores de acuerdo a su posicin en el ranking, para ello vamos a emplear la formula que utilizamos para el primer ejemplo: =DESREF(B$16;COINCIDIR(K.ESIMO.MENOR(E$16:E$25;FILA()FILA(E$16)+1);E$16:E$25;0)-1;0) Dicha formula permite ordenar Mediante la funcin DESREF y en combinacin con COINCIDIR, K.ESIMO.MENOR y FILA el nombre del nadador con el valor jerarqua ms bajo con respecto al resto de los nadadores. Los resultados de emplear la formula lo observamos mediante la siguiente imagen:

Tal como se ve el orden de los nombres de los nadadores cambio ya que el valor de el ranking para este caso es en orden ascendente y los nombres son ordenados de acuerdo al que tenga menor puntos en adelante. Existen opciones adicionales para hacer un Ranking en Excel no obstante las formulas presentadas en este artculo son una muy buena opcin a la hora de elaborar una jerarqua dentro de un grupo de datos.

XXXXXXXX

Funcion Excel SI.ERROR


Posted On 11/01/2011 In Formulas y Funciones Excel, Logicas Dentro del manejo diario de tablas en MS Excel es probable que tengamos errores en los clculos por infinidad de razones, es por eso necesario aplicar un corrector que nos haga el trabajo de limpiar los errores de los clculos, para ese trabajo tenemos disponible desde la versin MS Excel 2007 la funcin SI.ERROR la cual de acuerdo a la gama de errores que puedan suceder en Excel arroja un valor o mensaje que establezcamos dentro de los argumentos de la funcin.

Funcin SI.ERROR
La funcin SI.ERROR devuelve un valor que se especifica si una frmula lo evala como un error; de lo contrario, devuelve el resultado de la frmula. La funcin SI.ERROR es adecuada para interceptar y controlar errores dentro de una frmula. La funcin SI.ERROR la puedes hallar en la Biblioteca de funciones dentro de la categora de funciones Lgicas tal como se ve en la imagen anexa:

La sintaxis de la funcin SI.ERROR es la siguiente: =SI.ERROR(valor,valor_si_error) Valor: Es el argumento en el que se busca un error. Puede ser una referencia a una funcin o formula. Valor_si_error: Es el valor o mensaje que se devuelve si la frmula lo evala como error. Los tipos de error que son evaluados en la funcin son los siguientes:

#N/A #VALOR! #REF! #DIV/0! #NUM! #NOMBRE? #NULO! Importante para su consideracin

Si valor o valor_si_error estn en una celda vaca, SI.ERROR los trata como un valor de cadena vaca (). Si valor es una frmula de matriz, SI.ERROR devuelve una matriz de resultados para cada celda del rango especificado en el valor.

En Practica!

Esta funcin reemplazara el uso que le venamos dando a la formula que se empleaba con la funcin lgica SI y con la funcin de informacin ESERROR ya que en versiones anteriores a MS Excel 2007 esta era la alternativa mas popular para limpiar los errores de una tabla de datos. Si tenemos dentro de un conjunto de datos las ventas de un grupo de vendedores pero que en relacin a todo el grupo existen personas que no hicieron ventas y si usamos la funcin de bsqueda y referencia BUSCARV para devolver el numero de ventas que estos hicieron esta va arrojar error #N/A en los casos donde no encuentre resultados para los vendedores que no hicieron ninguna venta. Entonces a partir de los datos que tenemos podemos crear una formula sencilla con la funcin SI.ERROR y la funcin BUSCARV para limpiar los errores que se generen con la funcin. La tabla de datos con la que vamos a trabajar es tal como la mostrada en la imagen anexa:

Podemos establecer dos tipos de correccin en los datos para cuando la funcin nos arroje error:

Establecer un mensaje que indique No realiz ventas el cual nos sirve como alarma visual dentro del conjunto de datos. Establecer el valor 0 Cero que nos sirva de igual forma como alarma visual para saber que vendedores no hicieron ventas dentro de un periodo.

Teniendo los parmetros definidos ahora vamos a construir la formula, de acuerdo al primer tipo de correccin la formula debe arrojar un mensaje, entonces si los datos parten desde la celda B6 a la celda C12, la formula con la funcin SI.ERROR y BUSCARV la insertamos en la celda E6, quedando de la siguiente manera: =SI.ERROR(BUSCARV(D6;$B$6:$C$12;2;FALSO);No realiz ventas) En relacin al segundo tipo de correccin la formula debe arrojar 0 cuando el vendedor no este dentro de la lista a la cual hace referencia la funcin BUSCARV, por lo cual la si los datos parten desde la celda B6 a la celda C12, la formula con la funcin SI.ERROR y BUSCARV la insertamos en la celda F6, quedando de la siguiente manera: =SI.ERROR(BUSCARV(D6;$B$6:$C$12;2;FALSO);0) Vemos mediante la siguiente imagen los resultados:

XXXXXXXX

Formula Excel para extraer dos ltimos dgitos del nombre y apellido
Posted On 01/12/2010 In Formulas, Formulas y Funciones Excel

Sin duda alguna el corazn de MS Excel y de cualquier hoja de clculo son las funciones que contiene y en consecuencia una de las ms interesantes y tiles opciones que nos pueden ofrecer estas herramientas es la capacidad de elaborar formulas como resultado de la combinacin de funciones, operadores aritmticos o lgicos y el contenido de otras celdas o rangos de celdas. Mediante un uso inteligente de las diversas funciones que trae por defecto MS Excel podemos construir un sinfn de formulas que te permiten aprovechar al mximo la herramienta. Por ejemplo, con frecuencia en los departamentos de tecnologa resulta necesario generar nombres de usuarios nicos para los empleados de una empresa a partir de los dos ltimos dgitos del nombre y el apellido de los empleados, como un mecanismo de control de ingreso. Una opcin apropiada en este caso es emplear una formula de Excel que nos permitir extraer de ciertos campos de datos solo la informacin requerida y concatenarla para obtener un nombre de usuario.

En Practica!
Las funciones que vamos a utilizar para elaborar la formula de Excel son: CONCATENAR, DERECHA, ESPACIOS y ENCONTRAR, con las cuales vamos a extraer los datos necesarios en el ejemplo antes mencionado. La tabla con los nombres y apellidos esta ordenada tal como en la imagen anexa:

La forma en que deben quedar los usuarios es por ejemplo como en el primer nombre de la lista (Juan Antonio Snchez): io-io-ez Ahora tomando en cuenta el parmetro original que indica que la formula de Excel nos debe devolver solo los dos ltimos dgitos de los nombres y el apellido y adicionalmente estar separados entre s por medio de un guion (-), entonces vamos a empezar a preparar la formula.

Preparar la formula
Para este ejemplo la lista de nombres empieza a partir la celda B7, el primer segmento del nombre de usuario lo obtenemos mediante la siguiente formula: =DERECHA(ESPACIOS(IZQUIERDA(ESPACIOS(B7);ENCONTRAR( ;ESPACIOS(B7);1)));2) Teniendo como resultado: io El segundo segmento del nombre de usuario lo generamos con la siguiente formula: =DERECHA(ESPACIOS(IZQUIERDA(ESPACIOS(DERECHA(ESPACIOS(B7);LARGO(ES PACIOS(B7))-ENCONTRAR( ;ESPACIOS(B7);1)));ENCONTRAR( ;ESPACIOS(DERECHA(ESPACIOS(B7);LARGO(ESPACIOS(B7))-ENCONTRAR( ;ESPACIOS(B7);1)));1)));2) Teniendo como resultado: io Finalmente para obtener el ltimo segmento del nombre solo agregamos a la formula los siguientes argumentos de la funcin DERECHA: =DERECHA(ESPACIOS(B7);2) Teniendo como resultado: ez Uniendo todos los argumentos antes mencionados mediante la funcin CONCATENAR y agregando (-) para separar los caracteres se crea la siguiente formula de Excel: =CONCATENAR(DERECHA(ESPACIOS(IZQUIERDA(ESPACIOS(B7);ENCONTRAR( ;ESPACIOS(B7);1)));2);-;DERECHA(ESPACIOS(IZQUIERDA(ESPACIOS(DERECHA(E SPACIOS(B7);LARGO(ESPACIOS(B7))-ENCONTRAR(

;ESPACIOS(B7);1)));ENCONTRAR( ;ESPACIOS(DERECHA(ESPACIOS(B7);LARGO(ESPACIOS(B7))-ENCONTRAR( ;ESPACIOS(B7);1)));1)));2);-;DERECHA(ESPACIOS(B7);2)) Y listo! Nos da el resultado requerido, por ejemplo para el primer nombre y apellido el usuario que se genera es el siguiente: io-io-ez.

Nota Editorial: La formula est construida para que solo devuelva datos con dos nombres y un apellido, si se requiere emplearlo para nombres compuestos por solo un nombre y un apellido debemos quitar el ltimo argumento de la formula: =DERECHA(ESPACIOS(B7);2). Los niveles permitidos de anidamiento en la versin de Excel 2003 no hace posible tener la formula en esa versin

otra manera de llegar a lo requerido. =CONCATENAR(EXTRAE(B7,HALLAR( ,B7,1)-2,2),-,EXTRAE(B7,HALLAR( ,B7,HALLAR( ,B7,1)+1)-2,2),-,DERECHA(B7,2))

XXXXXXXXX

Extraer nmeros o letras de cdigos alfanumricos en Excel


MARTES, ABRIL 24, 2007

En esta nota veremos cmo extraer con Excel los nmeros, o las letras, de cdigos alfanumricos. Muchas empresas usan cdigos alfanumricos, por ejemplo, para los nmeros de catlogo, como por ejemplo 12 !"#. ! veces se presenta la necesidad de aislar la parte numrica o las letras de estos cdigos.

En la primera parte de esta nota veremos una solucin con frmulas Excel, til para los casos en los $ue las cifras % las letras estn agrupadas.

En la segunda parte veremos una solucin con una &'( )funcin definida por el usuario* para los casos en los $ue no ha% agrupacin de cifras % letras )por ejemplo, 12! "#*.

Solucin

con

frmulas

(cifras

letras

agrupadas)

Fuente:

Extracting

numbers

from

alphanumeric

strings

+upongamos $ue en la celda !1 de nuestra hoja de Excel tenemos el cdigo !"#12 . ,uestra tarea es extraer, con frmulas Excel, la parte numrica, es decir, 12 . #omo los nmeros % las letras estn agrupados, nuestra frmula de-er hacer lo siguiente.

descomponer

el

cdigo

en

sus

componentes

Esto lo hacemos com-inando las funciones E/01!E1 % (23! de la siguiente manera

4E/01!E)!15(23!)61.67*51*

Esta frmula descompone el codigo !"#12

% pone cada uno de sus componentes en

una matri8 virtual definida por la funcin (23!. En este ejemplo (23! define 7 filas, pero podemos agregar ms en caso de ser necesario.

2-

determinar

si

hay

un

nmero

en

el

cdigo

9ara

esto

com-inamos

la

funcin

E+,&ME1:

en

la

frmula

anterior

4E+,&ME1:)1;E/01!E)!15(23!)61.67*51**

Esta

frmula

genera

una

matri8

de

valores

<E1'!'E1:

(!3+:.

!l usar E/01!E los nmeros son convertidos en texto, por lo tanto tenemos $ue multiplicar la expresin por 1 para for8ar la conversin nuevamente a nmeros.

encontrar

la

posicin

del

primer

nmero

(d gito)

en

el

cdigo

9ara

esto

usamos

la

funcin

#:2,#2'21

de

la

siguiente

manera.

4#:2,#2'21)<E1'!'E1:5E+,&ME1:)1;E/01!E)!15(23!)61.67*51**5=*

>sta es una funcin matricial % de-e ser introducida pulsando simultneamente #trl?Ma%sculas?Enter

contar

cu"ntos

nmeros

hay

en

el

cdigo

(inalmente necesitamos contar cuantas cifras componen la parte numrica del cdigo, lo $ue hacemos con la funcin #:,0!1

4@#:,0!1)1;E/01!E)!15(23!)61.6A*51**B

!hora

com-inamos

todo

junto

en

esta

frmula

matricial

4E/01!E)!15#:2,#2'21)<E1'!'E1:5E+,&ME1:)1;E/01!E)!15(23!)61.6A*51**5=*5# :,0!1)1;E/01!E)!15(23!)61.6A*51***

+i

$ueremos

extraer

las

letras

tenemos

$ue

modificar

la

frmula

cam-iando

el

argumento

<E1'!'E1:

en

la

frmula

(!3+:

C agregando la funcin 3!1D: para calcular la cantidad de letras a extraer, reatando de ella la funcin #:,0!1

4E/01!E)!15#:2,#2'21)(!3+:5E+,&ME1:)1;E/01!E)!15(23!)61.6E*51**5=*5 #$%&' ($1)C#:,0!1)1;E/01!E)!15(23!)61.6E*51***

En

hoja

del

cuaderno

con

el

ejemplo

podemos

ver

los

distintos

casos.

Solucin

con

()*

(funcin

definida

por

el

usuario)

#uando las letras % las cifras no estn agrupadas en el cdigo, el resultado de las frmulas es incorrecto. 9ara esos casos, podemos escri-ir una funcin definida por el usuario.

En

un

mdulo

del

editor

de

<-a

escri-imos

este

cdigo

Fun%tion Dim i5

e#t*num*let(%el"a As !nteger,

As

(ange, As

tipo

As temp As

)oolean) String

resulta"o

String,

Sele%t Case For temp !' resulta"o $n" Ne#t Case For temp !' resulta"o $n" Ne#t $n" i5 = Not = = = i5 = =

Case

tipo 1

1 6i"(%el"a, !sNumeri%(temp) resulta"o

To i5,

Len(%el"a) 1) T,en 7 temp !' i5 $lse

1 6i"(%el"a,

To i5,

Len(%el"a) 1) T,en 7 temp !' i5 Sele%t

!sNumeri%(temp) resulta"o

e#t*num*let

resulta"o

$n"

Fun%tion

Esta C C #elda. 0ipo. 1

funcin la para celda extraer

usa $ue cifras, =

dos contiene para el

argumentos. cdigo letras

extraer

0echnorati 0ags. M+ Excel

Posted by Jorge Dunkelman at 11:15 p.m. Enviar esto por correo electrnicoBlogT is!"ompartir en T#itter"ompartir en $acebook

%abels: $unciones y $ormulas& 'acros

19 comments:
$()& *5 +ebrero& ,*1* *(:,1 e-celente traba.o !!! mil gracias por compartir la in+ormacin& me salvaste la vida con algo para el traba.o& .usto estan todos de vacaciones y necesitaba acer .usto esto para ma/ana.

gracias 0nnimo& *1 noviembre& ,*1* 12:52 3o me +unciona me da 4350 Jorge %. Dunkelman& *1 noviembre& ,*1* 16:51 Descarg7 el cuaderno con el e.emplo y +i.ate 8u9 es lo 8ue est7s aciendo mal. 0nnimo& 1* noviembre& ,*1* 16:,1 el link del arc ivo no sirve da error Jorge %. Dunkelman& 11 noviembre& ,*1* 1::,, 0cabo de corregir el enlace. Est7s invitado a descargar el cuaderno. 0dem7s& asegurate de introducir la +rmula como +rmula matricial ;apretando simult7neamente "trl<'ay=sculas<Enter>. $E%?@& *1 diciembre& ,*1* *1:(2 %0 '0")A B? $C3"?A30 PE)A %0 $A)'C%0 3A $C3"?A30 "A3 D0TAB "A'A EBTE 01"1,( Jorge %. Dunkelman& *1 diciembre& ,*1* *::,2 E+ectivamente& la +rmula supone 8ue 8ue los n=meros y las letras est7n agrupados& como en 0B"1,( o 1,(0B". 'arcos& 11 abril& ,*11 ,(:*6

Jorge& como estas& estoy ocupando la +ormula para e-traer numeros& pero al momento de 8uerer automatiDarla en una macro no +unciona& por lo 8ue Ecomo codi+ico en FB el "trl<'ay=sculas<Enter ;matricial> para la +ormulaG

'uc as gracias y 8ue estes bien Jorge %. Dunkelman& 1H abril& ,*11 11:,6 En la nota aparece una macro 8ue ace esa tarea. EPor 8u9 poner la +rmula en una macroG Pablo %imeno& ,5 .ulio& ,*11 11:,, Bin comentario ! E-celente traba.o& me a a orrado meses de estudio y me sirve para mi traba.o. I)0"?0B 3CEF0'E3TE Jorge %. Dunkelman& ,1 septiembre& ,*11 1(:(5 Parece 8ue por error e eliminao un comentario 8ue decJa

la verdad 8ue muy buena la +ormula... pero en el caso de 8ue no se encuentre ordenado el codigoG por e.emplo: 1,ab(1cd

A 8ue se tengan codigos mas complicados como ser: 0B.1,(1KlistK*1K6*-6*KBP0.$%F GG

%a respuesta es usar la +uncin CD$ 8ue aparece al +inal de la nota. makuki& *, marDo& ,*1( 11:51 'eter en un mdulo esta +uncin y usar la +uncion. Public $unction Iet3um;Falor 0s Btring> 0s ?nteger Dim T 0s Btring Dim " 0s Btring $or + L 1 To %en;Falor> " L 'id;Falor& +& 1> ?+ ?s3umeric;" > T en TLTM" End ?+ 3e-t Iet3um L Fal;T> End $unction Jorge %. Dunkelman& *, marDo& ,*1( 16:(( Nola 'akuki& gracias por colaborar pero tengo 8ue acer dos observaciones: 1 O en el cdigo +alta declarar la variable P+P& por lo 8ue la +uncin +alla al intentar usarla

;basta con agregar Dim + as ...>Q , O la +uncin slo e-trae valores num9ricos. "elso $onseca& 11 .unio& ,*1( ,(:,1 oye me podrias en enviar el codigo ya corregido por +avor nuevamente muc as gracias Jorge Dunkelman& 1H .unio& ,*1( **:*1 Todo lo 8ue tienes 8ue acer es copiar el cdigo 8ue aparece en la nota. )olando Trigo& 1* .ulio& ,*1( *,:*( Nola& Ecomo puedo e-traer solamente numeros de 5 digitos 8ue estan entre caracteres comunes pero en una sola linea de te-toG. R despues colocar estos numeros de 5 digitos en otro conte-to en comun& por e.emplo entemedio de ola y c ao. E.: abcd262*2+g ipoi.i+.d.abcd:5**6+g ir#ecbcb.abcd1H26,+g g+dgdabcd(,62:+g ikllk.+d

e-traer todos los numeros de 5 digitos y pasarlos entremedio de todos los ola y c ao asi:

ola262*2c ao ola:5**6c ao ola1H26,c ao ola(,62:c ao

EEs posibleG. De antemano muc as gracias "0'BO?30'B0)?& 1, .ulio& ,*1( 11:11 Buena in+ormacin!! Tengo una caso muy practico& donde deseo e-traer las primeras palabras de cada nombre cientJ+ico: "edrela odorata L ceod Jorge Dunkelman& 1( .ulio& ,*1( ,(:*5 Bi el te-to de las celdas sigue siempre esa estructura ;dos palabras separadas por un espacio>& podrJas usar esta +rmula:

L?STC?E)D0;01Q,>ME@T)0E;01QN0%%0);P PQ01><1Q,> Jorge Dunkelman& 11 .ulio& ,*1( *6:1, )olando& la +orma de acerlo serJa usando Fba ;macros>.

XXXXXXXX

You might also like