Extraer categorías de una lista.

01/09/2005 - 17:46 por Paco1028 | Informe spam
Tengo una base de datos con la variable "Tema", los temas regularment
son los mismos, pero no siempre. Quiero saber si alguien conoce u
modo de hacer que excel liste las categorias diferentes.

Ej. En tengo columna con los datos:

Pedro
Luis
José Antonio
Pedro
Francisco
María
Antonio
Luis
Raúl
María
Luis

Quiero hacer que excel me de la siguiente columna:

Pedro
Luis
José Antonio
Francisco
María
Antonio

..es decir que me haga una lista de las categorías que son diferente
entre sí, o una lista de nombres que no se repitan.

GRACIA

Paco102
Paco1028's Profile: http://www.msusenet.com/member.php?useridH4
View this thread: http://www.msusenet.com/t-187102798

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
02/09/2005 - 07:25 | Informe spam
hola, Paco !

Ej tengo columna con los datos:
Pedro
Luis [...]
Quiero hacer que excel me de la siguiente columna:
Pedro
Luis [...]
... es decir... una lista de las categorias que son diferentes... o una lista de nombres que no se repitan.



op1: -> agrega un titulo como primer celda en tu listado 'original' <= OJO
-> selecciona una celda 'dentro' del listado de nombres/categorias/...
-> ve a [menu] datos / filtro / filtro avanzado...
-> selecciona copiar a otro lugar
-> 'omite' el rango de los criterios
-> en el cuadro de referencia 'copiar a:' -> selecciona la -nueva- celda 'de destino' [se incluira el titulo]
-> marca 'solo registros unicos' [y finaliza/acepta/termina/...] ;)

op2: usando funciones de hoja de calculo y columnas 'auxiliares' para filtrar los datos a otro lugar/hoja/...
op3: usando macros / autofiltros / ???

si cualuier duda... comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 KL
02/09/2005 - 13:57 | Informe spam
Hola Paco,

Tal como te ha mencionado Hector Miguel, esto se podria hacer mediante
formulas. Suponiendo que tus valores se encuentran en el rango [A1:A11],
podria hacer lo siguiente:

1. selecciona el rango [B1:B11] desde arriba hacia abajo
2. haz clic dentro de la barra de formulas
3. pega ahi una de las siguientes formulas MATRICIALES <= OJO:

a) si no importa que aparezca el error #NUM! al final de la lista:

=INDICE(A1:A11;COINCIDIR(K.ESIMO.MENOR(SI(ESNUMERO(1/(COINCIDIR(A1:A11;A1:A11;0)-1=FILA(A1:A11)-FILA(A1)));CONTAR.SI(A1:A11;"<"&A1:A11));1+FILA(A1:A11)-FILA(A1));SI(ESNUMERO(1/(COINCIDIR(A1:A11;A1:A11;0)-1=FILA(A1:A11)-FILA(A1)));CONTAR.SI(A1:A11;"<"&A1:A11));0))

b) o si quieres suprimir el error:

=SI(ESERROR(INDICE(A1:A11;COINCIDIR(K.ESIMO.MENOR(SI(ESNUMERO(1/(COINCIDIR(A1:A11;A1:A11;0)-1=FILA(A1:A11)-FILA(A1)));CONTAR.SI(A1:A11;"<"&A1:A11));1+FILA(A1:A11)-FILA(A1));SI(ESNUMERO(1/(COINCIDIR(A1:A11;A1:A11;0)-1=FILA(A1:A11)-FILA(A1)));CONTAR.SI(A1:A11;"<"&A1:A11));0)));"";INDICE(A1:A11;COINCIDIR(K.ESIMO.MENOR(SI(ESNUMERO(1/(COINCIDIR(A1:A11;A1:A11;0)-1=FILA(A1:A11)-FILA(A1)));CONTAR.SI(A1:A11;"<"&A1:A11));1+FILA(A1:A11)-FILA(A1));SI(ESNUMERO(1/(COINCIDIR(A1:A11;A1:A11;0)-1=FILA(A1:A11)-FILA(A1)));CONTAR.SI(A1:A11;"<"&A1:A11));0)))

4. pulsa las teclas Ctrl+Shift+Enter para confirmar la formula

Nota: ademas de las clarisimas ventajas que tiene este metodo, hay una gran
desventaja :-( y es que la velocidad de calculo bajara rapidamente a medida
de que crezca el numero de filas en el rango original. El problema es que
las formulas son matriciales y usan muchas funciones unas mas y otras menos
rapidas, en fin, realizan muchisimas operaciones (muchas mas de las que
haria una formula no matricial).

Aproximadamente en cada recalculo cada celda realiza:

con un rango de 11 filas y la 1a formula - 245 operaciones
con un rango de 11 filas y la 2a formula - 501 operaciones

con un rango de 1000 filas y la 1a formula - 22.003 operaciones
con un rango de 1000 filas y la 2a formula - 45.006 operaciones

con un rango de 10000 filas y la 1a formula - 220.003 operaciones
con un rango de 10000 filas y la 2a formula - 450.006 operaciones

Saludos,
KL



"Paco1028" wrote in message
news:

Tengo una base de datos con la variable "Tema", los temas regularmente
son los mismos, pero no siempre. Quiero saber si alguien conoce un
modo de hacer que excel liste las categorias diferentes.

Ej. En tengo columna con los datos:

Pedro
Luis
José Antonio
Pedro
Francisco
María
Antonio
Luis
Raúl
María
Luis

Quiero hacer que excel me de la siguiente columna:

Pedro
Luis
José Antonio
Francisco
María
Antonio

..es decir que me haga una lista de las categorías que son diferentes
entre sí, o una lista de nombres que no se repitan.

GRACIAS


Paco1028

Paco1028's Profile: http://www.msusenet.com/member.php?useridH46
View this thread: http://www.msusenet.com/t-1871027988

Respuesta Responder a este mensaje
#3 KL
02/09/2005 - 21:53 | Informe spam
Hola de nuevo,

La formula anterior era para hacer lista de valores unicos ordenados
alfabeticamente. Si no es necesario ordenar la lista, hay una forma de
crearla menos costosa:

Suponiendo que tus valores se encuentran en el rango [A1:A11],

1. deja la celda [B1] vacia
2. en la [B2] pon la siguiente formula MATRICIAL:

=SI(O(CONTAR.SI($B$1:B1;A1:$A$11)=0);INDICE(A1:$A$11;COINCIDIR(0;CONTAR.SI($B$1:B1;A1:$A$11);0));"")

3. pulsa las teclas Ctrl+Shift+Enter para confirmar la formula
4. copia la formula hacia abajo:

Saludos,
KL



"KL" wrote in message
news:
Hola Paco,

Tal como te ha mencionado Hector Miguel, esto se podria hacer mediante
formulas. Suponiendo que tus valores se encuentran en el rango [A1:A11],
podria hacer lo siguiente:

1. selecciona el rango [B1:B11] desde arriba hacia abajo
2. haz clic dentro de la barra de formulas
3. pega ahi una de las siguientes formulas MATRICIALES <= OJO:

a) si no importa que aparezca el error #NUM! al final de la lista:

=INDICE(A1:A11;COINCIDIR(K.ESIMO.MENOR(SI(ESNUMERO(1/(COINCIDIR(A1:A11;A1:A11;0)-1=FILA(A1:A11)-FILA(A1)));CONTAR.SI(A1:A11;"<"&A1:A11));1+FILA(A1:A11)-FILA(A1));SI(ESNUMERO(1/(COINCIDIR(A1:A11;A1:A11;0)-1=FILA(A1:A11)-FILA(A1)));CONTAR.SI(A1:A11;"<"&A1:A11));0))

b) o si quieres suprimir el error:

=SI(ESERROR(INDICE(A1:A11;COINCIDIR(K.ESIMO.MENOR(SI(ESNUMERO(1/(COINCIDIR(A1:A11;A1:A11;0)-1=FILA(A1:A11)-FILA(A1)));CONTAR.SI(A1:A11;"<"&A1:A11));1+FILA(A1:A11)-FILA(A1));SI(ESNUMERO(1/(COINCIDIR(A1:A11;A1:A11;0)-1=FILA(A1:A11)-FILA(A1)));CONTAR.SI(A1:A11;"<"&A1:A11));0)));"";INDICE(A1:A11;COINCIDIR(K.ESIMO.MENOR(SI(ESNUMERO(1/(COINCIDIR(A1:A11;A1:A11;0)-1=FILA(A1:A11)-FILA(A1)));CONTAR.SI(A1:A11;"<"&A1:A11));1+FILA(A1:A11)-FILA(A1));SI(ESNUMERO(1/(COINCIDIR(A1:A11;A1:A11;0)-1=FILA(A1:A11)-FILA(A1)));CONTAR.SI(A1:A11;"<"&A1:A11));0)))

4. pulsa las teclas Ctrl+Shift+Enter para confirmar la formula

Nota: ademas de las clarisimas ventajas que tiene este metodo, hay una
gran desventaja :-( y es que la velocidad de calculo bajara rapidamente a
medida de que crezca el numero de filas en el rango original. El problema
es que las formulas son matriciales y usan muchas funciones unas mas y
otras menos rapidas, en fin, realizan muchisimas operaciones (muchas mas
de las que haria una formula no matricial).

Aproximadamente en cada recalculo cada celda realiza:

con un rango de 11 filas y la 1a formula - 245 operaciones
con un rango de 11 filas y la 2a formula - 501 operaciones

con un rango de 1000 filas y la 1a formula - 22.003 operaciones
con un rango de 1000 filas y la 2a formula - 45.006 operaciones

con un rango de 10000 filas y la 1a formula - 220.003 operaciones
con un rango de 10000 filas y la 2a formula - 450.006 operaciones

Saludos,
KL



"Paco1028" wrote in message
news:

Tengo una base de datos con la variable "Tema", los temas regularmente
son los mismos, pero no siempre. Quiero saber si alguien conoce un
modo de hacer que excel liste las categorias diferentes.

Ej. En tengo columna con los datos:

Pedro
Luis
José Antonio
Pedro
Francisco
María
Antonio
Luis
Raúl
María
Luis

Quiero hacer que excel me de la siguiente columna:

Pedro
Luis
José Antonio
Francisco
María
Antonio

..es decir que me haga una lista de las categorías que son diferentes
entre sí, o una lista de nombres que no se repitan.

GRACIAS


Paco1028

Paco1028's Profile: http://www.msusenet.com/member.php?useridH46
View this thread: http://www.msusenet.com/t-1871027988





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida