(RESUELTO)FUNCION MODA CON TEXTO

Discute sobre la aplicación de hojas de cálculo
Responder
Lillo1
Mensajes: 7
Registrado: Dom Mar 27, 2022 7:06 pm

(RESUELTO)FUNCION MODA CON TEXTO

Mensaje por Lillo1 »

Buenos días
Tengo una duda, la función moda solo se puede usar con números ?
Me explico: Tengo una tabla con resultados de la quiniela, o sea 1, X, 2 y al aplicar la moda no reconoce la X
Ejemplo: 1,1,X,2,1,X,X,2,X Y como resultado me da 1, cuando lo correcto seria que me diera X.
Habría alguna solución para esto?. Muchas gracias por ayuda. Saludos
Última edición por Lillo1 el Mié May 11, 2022 5:06 pm, editado 1 vez en total.
OpenOffice 4.1.11 Windows 11 Home
Neftali R
Mensajes: 140
Registrado: Mar Jun 15, 2021 12:48 pm
Ubicación: Venezuela

Re: FUNCION MODA CON TEXTO

Mensaje por Neftali R »

Buenos días,

Sí, la función moda solo se puede usar con números, es una función de tipo estadística, así que por su puesto no funciona con texto.

La solución más fácil que se me ocurre es hacer una función personalizada que haga lo mismo que moda, pero que también tome en cuenta texto.

Adjunto el código de la función personalizada.

Código: Seleccionar todo

Function ModaTexto (mArray()) As String
Dim sTmp, sFinal As String, c, c2, i, f As Integer

	For c = 1 to UBound(mArray())
	sTmp = cStr(mArray(c,1))
		For c2 = 1 to UBound(mArray())
			If sTmp = cStr(mArray(c2,1)) Then i = i + 1
		Next
		If i > f Then 
		f = i
		sFinal = sTmp
		End If
	i = 0
	Next
ModaTexto = sFinal
End Function
La segunda solución que se me ocurre es hacer una tabla auxiliar que contenga solo números, para determinar el qué número tendrá cada letra, se haría otra tabla auxiliar, en ella obtendrás el número más alto de la lista y le sumas 1, eso sería A, después a ese número, le sumas 1, eso sería B y así hasta llegar a la Z, después usarías MODA en la lista con solo números, y si el número es más alto que el número máximo de la lista, lo conviertes en una letra.

Adjunto un archivo de ejemplo.
Ejemplo.ods
(19.31 KiB) Descargado 32 veces
LibreOffice 7.2.6.2 | Windows 7 Ultimate
FJCC-ES
Mensajes: 803
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: FUNCION MODA CON TEXTO

Mensaje por FJCC-ES »

El archivo adjunto muestra otra solución usando las funciones CONTAR.SI y BUSCARV.
Adjuntos
quiniela.ods
(9.09 KiB) Descargado 29 veces
Lillo1
Mensajes: 7
Registrado: Dom Mar 27, 2022 7:06 pm

Re: FUNCION MODA CON TEXTO

Mensaje por Lillo1 »

Buenas tardes
La solución de Neftalí R la veo complicada para mis pocos conocimientos, por lo que he optado por la de FJCC-ES
Pero tengo un problema,(como no). El CONTAR.SI funciona bien, pero no logro meter a camino el BUSCARV , ya que he tenido que cambiar en tu
ejemplo quiniela.ods columna por fila que es lo que necesito y no hay manera, reenvío lo que he hecho a ver si me pueden ayudar, gracias y perdón
por mi torpeza.
quiniela 1.ods
(9.27 KiB) Descargado 29 veces
OpenOffice 4.1.11 Windows 11 Home
Neftali R
Mensajes: 140
Registrado: Mar Jun 15, 2021 12:48 pm
Ubicación: Venezuela

Re: FUNCION MODA CON TEXTO

Mensaje por Neftali R »

BUSCARV (BUSCAR VERTICAL) funciona por columnas, el primer parámetro que se le da es el valor a buscar, el segundo es un matriz, el tercero es la columna de la que se va a extraer el resultado, el cuarto valor puede ser un 1 o un 0, que representan VERDADERO y FALSO, si es una lista desordenada (como es en este caso), tienes que dejarlo en 0, si es una lista ordenada, puedes colocar 1.

BUSCARV se usa en matrices verticales, con al menos 2 columnas, la primera columna es la columna en al que se busca el dato, y las otras columnas son las columnas de las que se obtiene el resultado, dependiendo del índice.

En el archivo que adjuntaste estás buscando datos en una sola fina, BUSCARV no va a funcionar con esa entrada.

Por otro lado, BUSCARH (BUSCAR HORIZONTAL), funciona de manera parecida a BUSCARV, pero de forma horizontal, sin embargo, aún así esa formula no funcionaría con la matriz que tienes actualmente.

Si te es posible, mejor ordenar la tabla en la que ejecutas BUSCARV de forma vertical como la tenía FJCC, si la información necesita estar ordenada así, horizontalmente, en la misma fila, tal como lo tienes ahora, puedo idear una manera de lograrlo, pero sería innecesariamente complicado.

Aquí la formula de ejemplo de la formula que funcionaría con esa matriz si la copias y la pegas en la celda M2.

Código: Seleccionar todo

=INDIRECTO(DIRECCION(FILA()+1;COLUMNA()-1+COINCIDIR(MAX(M3:O3);M3:O3;0)+3))
Como puedes ver, innecesariamente complicada, y ojo, esa formula va a funcionar solo si se coloca en la fila superior, primera columna a la matriz en la que buscas y solo funciona con si tienes que buscar entre 3 datos, para que busque más datos o pueda funcionar desde otra posición, habría que modificarla.
LibreOffice 7.2.6.2 | Windows 7 Ultimate
FJCC-ES
Mensajes: 803
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: FUNCION MODA CON TEXTO

Mensaje por FJCC-ES »

En la celda N1 usé la fórmula

Código: Seleccionar todo

=INDICE(P3:R3;1;COINCIDIR(MAX(M3:O3);M3:O3))
Adjuntos
quiniela 1_fjcc.ods
(9.8 KiB) Descargado 31 veces
Lillo1
Mensajes: 7
Registrado: Dom Mar 27, 2022 7:06 pm

Re: FUNCION MODA CON TEXTO

Mensaje por Lillo1 »

Buenas tardes
Muchas gracias x la ayuda
He hecho la MODA con INDICE como me indicasteis y funciona perfectamente como se puede ver en archivo adjunto
PEÑA ADOLFO (1b).ods
(15.51 KiB) Descargado 26 veces
Hasta aquí todo bien, pero al subirlo a Google docs. (Google drive) para que se vea en mi pagina web, ya no funciona MODA y no se el porque.
He probado varias opciones y no encuentro donde esta el problema. Adjunto pantallazo donde se ve que debajo de MODA todos son 2.
PEÑA ADOLFO(1).jpg
PEÑA ADOLFO(1).jpg (36.83 KiB) Visto 679 veces
OpenOffice 4.1.11 Windows 11 Home
Neftali R
Mensajes: 140
Registrado: Mar Jun 15, 2021 12:48 pm
Ubicación: Venezuela

Re: FUNCION MODA CON TEXTO

Mensaje por Neftali R »

Creo que lo más probable es que tenga que ver con el algoritmo de búsqueda en listas ordenadas que utiliza Google Sheets, deberías decirle a la formula COINCIDIR que haga una búsqueda exacta y ver como va.

Original.

Código: Seleccionar todo

=INDICE(P3:R3;1;COINCIDIR(MAX(M3:O3);M3:O3))
Búsqueda Exacta.

Código: Seleccionar todo

=INDICE(P3:R3;1;COINCIDIR(MAX(M3:O3);M3:O3;0))
LibreOffice 7.2.6.2 | Windows 7 Ultimate
Lillo1
Mensajes: 7
Registrado: Dom Mar 27, 2022 7:06 pm

Re: (RESUELTO)FUNCION MODA CON TEXTO

Mensaje por Lillo1 »

RESUELTO
Muchísimas gracias por la ayuda.
He puesto la búsqueda exacta y todo funcionando perfectamente.
Saludos
OpenOffice 4.1.11 Windows 11 Home
Responder