¿Se puede "mezclar" kesimo mayor y buscarv?

21/04/2005 - 09:49 por mukelemulembe | Informe spam
Hola a todos!

Tengo una base de datos en la que quiero sacar, por ejemplo los 10 mayores
consumidores de un producto. Supongamos que tengo en la columna A los
nombres de los clientes y en la B los consumos. Para hallar los 10 mayores
consumos lo he resuelto con kesimo mayor pero claro, también necesito que
me salga el nombre del cliente, lo he intentado con buscarv,pero da
problemas porque, además de tener que repetir en la columna C u otra a la
izquierda de los consumos los nombres de los clientes, si dos o más
clientes tienen el mismo consumo se me repiten. ¿Hay alguna forma de
arreglar esto?. Un millón de gracias por adelantado,

Joel.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
21/04/2005 - 10:48 | Informe spam
hola, Joel !

... base de datos en la que quiero sacar... los 10 mayores consumidores de un producto.
... en la columna A los nombres de los clientes y en la B los consumos.
... hallar los 10 mayores consumos lo he resuelto con kesimo mayor
... necesito... el nombre del cliente, lo he intentado con buscarv, pero
... ademas de tener que repetir en la columna C u otra a la izquierda de los consumos los nombres
... si dos o mas clientes tienen el mismo consumo se me repiten [...]



1.- las funciones de busquede 'normal' [como buscarv] no pueden buscar 'en reversa' [ya lo has visto] ;)
2.- si existen 'mayores' repetidos... necesitaras 'jerarquizar'... 'descontando' los duplicados [y una columna 'auxiliar']
3.- agregando la columna 'auxiliar' [digamos]... en la columna 'C' [y suponiendo que los datos inician en la fila 2]...
-> una formula en [C2] =jerarquia(b2,b:b)+contar.si($b$2:b2,b2)-1
4.- una vez 'jerarquizados' los 'mayores'... puedes localizar el nombre con la funcion k.esimo.menor [1 a 'n']
-> una formula para obtener los nombres en [?2]: =indice(a:a,coincidir(k.esimo.menor(c:c,fila(a1)),c:c,0))

-> copias las formulas hacia abajo y... comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 mukelemulembe
21/04/2005 - 12:50 | Informe spam
Héctor Miguel wrote:

hola, Joel !

> ... base de datos en la que quiero sacar... los 10 mayores consumidores de


un producto.
> ... en la columna A los nombres de los clientes y en la B los consumos.
> ... hallar los 10 mayores consumos lo he resuelto con kesimo mayor
> ... necesito... el nombre del cliente, lo he intentado con buscarv, pero
> ... ademas de tener que repetir en la columna C u otra a la izquierda de


los consumos los nombres
> ... si dos o mas clientes tienen el mismo consumo se me repiten [...]

1.- las funciones de busquede 'normal' [como buscarv] no pueden buscar 'en


reversa' [ya lo has visto] ;)
2.- si existen 'mayores' repetidos... necesitaras 'jerarquizar'...


'descontando' los duplicados [y una columna 'auxiliar']
3.- agregando la columna 'auxiliar' [digamos]... en la columna 'C' [y


suponiendo que los datos inician en la fila 2]...
-> una formula en [C2] =jerarquia(b2,b:b)+contar.si($b$2:b2,b2)-1
4.- una vez 'jerarquizados' los 'mayores'... puedes localizar el nombre con


la funcion k.esimo.menor [1 a 'n']
-> una formula para obtener los nombres en [?2]:


=indice(a:a,coincidir(k.esimo.menor(c:c,fila(a1)),c:c,0))

-> copias las formulas hacia abajo y... comentas?
saludos,
hector.


Lo he intentado pero no funciona. He intentado introducir las fórmulas tal
y como me las has indicado corrigiendo lo que entiendo son defectos de
forma. Aquí tienes las fórmulas que he utilizado:

=JERARQUIA(B2;$B$2:$B$14)+CONTAR.SI($B$2:$B$14;B2)-1

Esta es la que he introducido en la auxiliar. Lo que me devuelve el lugar
que ocupa dentro del rango restando los elementos coincidentes menos uno.
El resultado repite números tantas veces como en los datos originales.

En la que tiene que devolver los nombres he puesto:

=INDICE($A$2:$A$14;COINCIDIR(K.ESIMO.MAYOR($C$2:$C$14;FILA(A1));$C$2:$C$14;0))

Que repite los nombres de los elementos coincidentes. ¿Qué he heco mal?
Gracias por tu ayuda Héctor.
Respuesta Responder a este mensaje
#3 Héctor Miguel
21/04/2005 - 13:06 | Informe spam
hola, Joel !

... no funciona... introducir las formulas... corrigiendo... defectos de forma [...]
... en la auxiliar... repite numeros tantas veces como en los datos originales.
... devolver los nombres... repite los nombres de los elementos coincidentes [...]



el rango para 'contar.si' debe ser absoluto:variable [$B$2:B2] -> iniciando en la misma fila <-
y el 'k.esimo...' debe ser 'el menor' :D

cambia la formula en la auxiliar...
de -> =JERARQUIA(B2;$B$2:$B$14)+CONTAR.SI($B$2:$B$14;B2)-1
a -> =JERARQUIA(B2;$B$2:$B$14)+CONTAR.SI($B$2:B2;B2)-1
y la formula para los nombres...
de -> =INDICE($A$2:$A$14;COINCIDIR(K.ESIMO.MAYOR($C$2:$C$14;FILA(A1));$C$2:$C$14;0))
a -> =INDICE($A$2:$A$14;COINCIDIR(K.ESIMO.MENOR($C$2:$C$14;FILA(A1));$C$2:$C$14;0))

saludos,
hector.
Respuesta Responder a este mensaje
#4 mukelemulembe
21/04/2005 - 16:55 | Informe spam
Héctor Miguel wrote:

hola, Joel !

> ... no funciona... introducir las formulas... corrigiendo... defectos de


forma [...]
> ... en la auxiliar... repite numeros tantas veces como en los datos


originales.
> ... devolver los nombres... repite los nombres de los elementos


coincidentes [...]

el rango para 'contar.si' debe ser absoluto:variable [$B$2:B2] -> iniciando


en la misma fila <-
y el 'k.esimo...' debe ser 'el menor' :D

cambia la formula en la auxiliar...
de -> =JERARQUIA(B2;$B$2:$B$14)+CONTAR.SI($B$2:$B$14;B2)-1
a -> =JERARQUIA(B2;$B$2:$B$14)+CONTAR.SI($B$2:B2;B2)-1
y la formula para los nombres...
de ->


=INDICE($A$2:$A$14;COINCIDIR(K.ESIMO.MAYOR($C$2:$C$14;FILA(A1));$C$2:$C$14;0))
a ->


=INDICE($A$2:$A$14;COINCIDIR(K.ESIMO.MENOR($C$2:$C$14;FILA(A1));$C$2:$C$14;0))

saludos,
Muchísimas Gracias Hector!



Ahora sí que funciona. Pero no me resisto a abusar de tu buena fe y darle
una vuelta de tuerca más al asunto. Imagínate que en la columna C tenemos
por ejemplo el representante al que pertenece el cliente, y en la D la
provincia. ¿Se pueden obtener los 10 máximos compradores de un
representante de una provincia?. (por supuesto la matriz tiene más de 12
filas pero para el ejemplo vale). Saludos,

Joel.
Respuesta Responder a este mensaje
#5 Héctor Miguel
22/04/2005 - 06:24 | Informe spam
hola, Joel !

... no me resisto a... darle una vuelta de tuerca mas al asunto.
... ¿Se pueden obtener los 10 maximos compradores de un representante de una provincia?.
(por supuesto la matriz tiene más de 12 filas pero para el ejemplo vale).



solo modifica...
-> 'de donde se va a extraer' la informacion
[el rango que pongas como primer argumento de la funcion coincidir()]
-> y 'ajusta' a que coincidan los rangos donde se va a efectuar la 'comparacion'
[el rango que pongas para las funciones coincidir() y k.esimo.menor()]
-> que deberan ser 'los mismos' <-
-> y TODOS los rangos con la msma 'dimension' [numero de filas] <-

si cualquier duda... comentas?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida