Como utilizar Moda.Uno para clasificar varios números

Tengo la siguiente situación, tengo una columna A2: A100

Con números, en esa columna hay varios números que se repiten, pero la función Moda. Uno solo me arroja un solo numero que más veces se repite, el tema es que tengo que clasificarlos del 1ro al 6to que más se repite

Ejemplo: tengo el 32 (10 veces), el 15 (8 veces), el 7 (6 veces), el 13 (5 veces) el 90 (4 veces) y el 65 (2 veces)

Necesito que en la columna B me coloque en la celda B2 el mayor (o sea el 32) y en la b3 el 15, y así sucesivamente hasta la celda b7 donde iría el ultimo (el 65)

Necesito hacerlo con Moda Uno, ya que es mucho más rápido pero no se como hacer para que moda uno descarte el que ya eligió anteriormente y tome el nuevo numero que más se repite

Por favor agradecería vuestra ayuda para poder finalizar un proyecto

Puede ser con fórmulas en cada celda (B2:B7) o una macro, me da igual

Lo que sea más veloz en el calculo, ya que a veces manejo bases de datos enormes y se me complica

2 Respuestas

Respuesta
1

La solución más eficiente para lo que buscas no demanda ni fórmulas y menos macros.

Es, lejos, más rápido construir una tabla dinámica que, con unos toques te dará ranqueadas las ocurrencias de cada número que tengas en esa lista.

Una tabla dinámica es una herramienta de MS Excel para obtener un reporte agrupado de distintas maneras basado en datos incluidos en una tabla o base de datos.

Es dinámica porque, una vez armada, permite agregar, mover, o eliminar campos en ella hasta lograr el reporte deseado. Además, si cambian los datos en la base original, basta actualizarla (con botón derecho del mouse sobre ella y elegir Actualizar) para tener los resultados inmediatamente sin necesidad de fórmulas ni rutinas de VBA.

Te indico los pasos para construirla y obtener el resultado deseado.:

1.– Es necesario que tu columna de números tenga un título.

Selecciona tu lista desde esta primera fila (títulos) hasta el último registro en ella. Continúa resaltando este rango para que futuros registros (por si se agregaran) se incluyan en la Tabla dinámica.

Manténla seleccionada.

2.- Pulsa el botón en "insertar" encontrado en la barra del menú principal y selecciona "Tabla dinámica".

3.- Una ventana pide seleccionar la fuente de los datos. Marca "Lista o base de datos de MS Excel".

4.- Si hubieras dejado tu rango seleccionado, se asumirá ésta como la base de datos fuente. En caso contrario, puedes seleccionar el área en este paso.

Allí también le indicas dónde quieres ubicarla.

5.- Verás que donde te dejó el Diseño en blanco

Y se mostrarán los títulos de las columnas disponibles. Verás, por ejemplo, en tu caso, sólo la que dice "numeros". Debes arrastrarla desde la parte superior de la ventana que se vé a la derecha al sector de FILAS Y, de nuevo, al sector de VALORES, como se ve en esta imagen

6.- El próximo paso será cambiar la operación que hace la tabla en VALORES.

Si dijera "Suma de" haz click derecho sobre ese campo y, en conficuración del campo de Valor, elije "Contar" y allí mismo puedes cambiar el título (yo le puse "veces") y darle formato a los números que vayan a aparecer.

(Nota: otras funciones posibles sobre campos numéricos son:

Contar
Promedio

Min
Max
Producto
Contar Números
Desvest
Desvestp
Var
Varp)

Así conseguirás una tabla donde podrás mostrar sólo los casos seleccionados.

Verás en la parte superior de la primera imagen un botón que dice "Diseño del informe", que sirve para modificar el formato de tu tabla. Como viene con autoformato, yo suelo cambiar a Formato Tabular, pero puedes dejarlo como mejor te luzca.

7.- El último paso será configurarla para que siempre ordene la lista de números en forma descendente de acuerdo a la cantidad de veces que hubiese aparecido. Para ello haz click en la flecha de menú que aparece en el título de la columna "numeros". Allí aparecerá un menú descolgable:

Allí selecciona "Más opciones de ordenación" y, en la ventana siguiente, marca Descendente por:

Y listo, todo esto se hace pro única vez. Luego sólo es cuestión de actualizar la tabla -como te indiqué- para ver nuevos resultados. Estos quedarán ordenados, siempre, de acuerdo a la frequencia que tengan.


Aparte de lograr lo que querías, contar con una tabla dinámica sobre una base sólida, te permite hacer un sinnúmero de análisis y reportes, simplemente moviendo los campos disponibles a las áreas de construcción.

Una ventaja adicional es que no es necesario repetir este procedimiento cada vez que cambien, se agreguen o quiten, datos de la base.

Bastará actualizar la tabla dinámica, con botón derecho del mouse sobre ella y eligiendo la opción "Actualizar datos"

Bien, más largo de explicar que de hacer, pero creo que vale la pena.

Espero que te haya ayudado.

Saludos

Fernando

(Buenos Aires, Argentina)

¡Gracias! Es muy largo, tengo que verla tranqui, lo tengo que resolver hoy en menos de una hora, luego la estudio y si necesito algo más te aviso

Abrazo.-

.

Efectivamente, fue una explicación detallada, pero en la práctica no te debería llevar más de 10 minutos implementarla.

De todos modos, cualquier otra solución llevaría más tiempo.

Ponle un poco de empeño y verás que es simple.

Saludos

Fernando

.

Respuesta
1

La solución propuesta por FEJOAL es la mejor, pero si quieres hacerlo “a mano”, prueba esto:

  • Selecciona el rango de los números a2:a100 y copia y pega en b2
  • Con b2:b100 seleccionado, ves a la pestaña datos y selecciona “Quitar duplicados” sólo de la columna b
  • En c2 pones esta fórmula =CONTAR.SI($A$2:$A$100;B2) y arrastra hasta el final
  • Selecciona toda la columna C desde c2 y ordena de mayor a menor, ampliando la selección.
  • Si solo quieres los 6 que más se repiten, borra el resto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas