excel...

Algoritmos, fórmulas, estadísticas...
Responder
cenicienta
11
11
Mensajes: 500
Registrado: Mié 08 Sep, 2004 4:57 pm

excel...

Mensaje por cenicienta »

realmente es tan complicado...

tengo dos columnas A,B donde estan los resultados de los partidos....

10
20
30
00
01
02
22
y quiero poner en la columna C para simplificarlo (acotarlo) el resultado en letras. dando el valor de una letra a un resultado concreto:

10...A
20...B
30...C
00...D
01...E
02...F
22...G
00...D
01...E..........

pense que con si a1=1 y b1=0 entonces c1=A ............pero na de na.


ayuda???......gracias!!
saludos!
Avatar de Usuario
QuimeraORO
11
11
Mensajes: 479
Registrado: Dom 10 Jul, 2022 4:40 am
Contactar:

Re: excel...

Mensaje por QuimeraORO »

Hola,

No se el objetivo pero parece poco intuitivo, ademas de meter una buena carga de procesamiento al excel. Convertir numeros en letras siempre pesa a la cpu.

Los datos deben ser faciles de consultar y procesar.

Puede crear una tabla de todos los resultados posibles de goles con su codigo comprimido al lado, son unos cuantos y se puede confundir con facilidad, pero bueno, si insiste... Preferiblemente en otra hoja del mismo libro.

Y luego crear una formula en cada celda C, que lea A y B de su misma fila, las una, conviertiendolas en texto por ejemplo, busqueblas funciones poniendo un = en una celda... y luego use alguna funcion tipo Buscar o alguna otra, tendrá que ver los ejemplos de uso en excel, son sencillos y prácticos.
Luego volver a ir a las funciones y aplique la ayuda de excel.

Con esas funciones buscar y algunas otras, busque ese dato en su tabla anexa, devolviendo excel el valor A, B, C, etc que encuentre a su derecha, respecto de la búsqueda de la columna izquierda.

Poner todas las condiciones en cada celda con condicionales es laborioso y poco editable.

Una vez echa una formula para una celda con los controles "$" de valores absolutos de referencias para filas y columnas correctas, puede arrastrar y copiar la celda con su formula replicando esta en los siguientes partidos pero cambiando excel las filas y colmunas correspondientes en automático.

Si se hace así no es necesario basic ni macros. Y el fichero es muy portable, entre versiones, a otros idiomas no, por que el nombre de la formula cambia en ingles, pero se entiende bien.

Pero sería mas sencillo convertir el 1-0. De A1=1 y B1=0, en "10" con una simple función de excel, directasmente en la celda C1... no hay error posible en la transcripción y si luego quiere consultar un dato, visualmente lo vera claro.

Difícil veo que se acuerde de cada código de una letra para cada resultado. ¿Cual seria, 4-5, y 7-3.?

A excel le va dar igual trabajar con "A" que con "10" en modo texto.

Aunque es una carga pesada de calculo y poco eficiente. Trabajar con cadenas de texto.

Da un poco igual, la cpu no come bocadillo, no hace falta programar datos y usar el big data como si fuese código ensamblador. Ni comprimir casi nada hoy en dia.

Hoy en dia las cpu son baratas, la memoria ram tambien y los hdd enormes.

Expanda los datos, no les comprima.

Seguro que hay formas de hacerlo muy eficiente, pero es irrrelevante el esfuerzo... con formulas en celdas se puede resumir.

Salu2

PD: volviendo la cadena a numero con otra formula se le queda el resultado comprimido en una celda D1 por ejemplo pero mejor todavia, por que es un numero, más rápido de calculo. Menos el 0-0 que será un "0", y los partidos en los que el local no marca, que no saldrá cifra de texto por que es un 0X, un cero a la izquierda, pero se entiende fácil.

Por Lo demás tienen un código visual comprensible y no letras de abecedario, que por otra parte igual no le llegaba con las de la A a la Z... etc...

Edit: bueno nada, que se lo preparo en un ejemplo visual, segundo mensaje.
Última edición por QuimeraORO el Lun 14 Nov, 2022 9:35 am, editado 1 vez en total.

[* PROCRASTINADOR profesional.;-) * Informática y electrónica; BBA; ajedrez, billar y las TIC.
Avatar de Usuario
QuimeraORO
11
11
Mensajes: 479
Registrado: Dom 10 Jul, 2022 4:40 am
Contactar:

Re: excel...

Mensaje por QuimeraORO »

cenicienta escribió:
Dom 13 Nov, 2022 11:06 pm
realmente es tan complicado...

tengo dos columnas A,B donde estan los resultados de los partidos....

10
20
30
00
01
02
22
y quiero poner en la columna C para simplificarlo (acotarlo) el resultado en letras. dando el valor de una letra a un resultado concreto:

10...A
20...B
30...C
00...D
01...E
02...F
22...G
00...D
01...E..........

pense que con si a1=1 y b1=0 entonces c1=A ............pero na de na.


ayuda???......gracias!!

A ver, por curiosidad me he puesto a ello, indico según excel 2003, si uso el 2010 igual cambia alguna función de nombre.

Esto es lo que desea obtener, aviso que no veo práctico el código de letras, difícil de recordar, deducir, y sobre todo extraer, se acaban las letras y luego hay que poner dos letras..., mejor el código númerico, pero bueno, creo que no es trivial, por que a no ser que se metan todos los códigos a mano, muy ineficiente, hacerlo en automático implica manejar tres o cuatro formulas de excel, es sencillo una vez que las has usado algunas veces, pero la función trasponer y buscar, no son evidentes.
Si usa el código numerico propuesto, no tiene ni que pensar, en una formula pequeña ya lo tiene todo.

¿no es más fácil DE INTERPRETAR o verificar su corrección, el tener el código de la derecha que de la izquierda?

------------------------------------------------------------------------------------------------------------
Imagen

MAS GRANDE CLIC, DESPUÉS DEL LINK:
Imagen
----------------------------------------------------------------------------------------------------------------



*** el 0, significa 0-0 y el 1, significa, 0-1, por que si hubiese sido 1-0, sería el código 10.
*** así los 5 primeros, los otros son evidentes.
*** El 55 es empate a 5

Llegar a deducir con letras empate a 4, es como una patada en piii, es "AC", pero es tremendamente poco intuitivo.
Si va a parar de contar en 3, el 3-3, sería la "V".

¿pero podrían quedar en un partido 7-0... o 7-5? yo he parado en 5 el ejemplo.

Seguimos:

Para ello use las formulas de conversión de numero a texto, no puede sumar directamente A20 y B20, 1+3. Excel le diría sabiamente que son 4.

----------------------------------------------------------------------------------------------------------------
Imagen
----------------------------------------------------------------------------------------------------------------
Imagen
----------------------------------------------------------------------------------------------------------------

Se puede convertir cada numero en texto, unirlos y luego volver a convertirlos en número, para poder ordenarlos de menor a mayor de mejor manera y usar la función, buscar y transponer, de forma que SIN CONTAR A MANO, todos los códigos pasen a línea horizontal, ya tiene entonces un código de partido en una sola celda, y encima GRATIS, sin contar, uno en CADA columna, que ya tiene indirectamente una letra, ahora usando las funciones DIRECCION Y SUSTITUIR, se queda solo con la letra de la referencia de cada celda...

Ponerse a crear CONDICIONALES "IF" ANIDADOS, SI CELDA X = a entonces celda Y igual Z, es una pesadilla, errores a manta y ediciones futuras penosas, debe hacerse así o mejor, más optimizado se puede hacer, pero no se si merece la pena el tiempo..., como le digo, solo tiene que crear una celda con la formula adecuada y luego arrastrar el ratón, para eso tiene excel las funciones.

Luego ya copiará la tabla de la hoja dos a la hoja uno, SOLO VALORES y allí ya tiene la lista de la que sacar los valores.

-----------------------------------------------------------------------------------------------------------------------------------------

MAS GRANDE CLIC, DESPUÉS DEL LINK:
Imagen
-----------------------------------------------------------------------------------------------------------------------------------------

Imagen

MAS GRANDE CLIC, DESPUÉS DEL LINK:
Imagen

-----------------------------------------------------------------------------------------------------------------------------------------

Imagen

MAS GRANDE CLIC, DESPUÉS DEL LINK:
Imagen

-----------------------------------------------------------------------------------------------------------------------------------------
Imagen

MAS GRANDE CLIC, DESPUÉS DEL LINK:
Imagen

---

SE puede hacer mejor, en BASIC con una macro debe ser mucho más sencillo, pero es menos portable, hay que autorizar las macros, incompatibilidades entre versiones ,etc...

Creo que así es muy rápido, he tardado más en explicarlo que en hacerlo, y luego enviarlo.

Pero era una pregunta curiosa, no se el objetivo pero bueno, ESPERO QUE no sean deberes para algún curso o algún trabajito de programación de excel. :yuush: :slow: :XD: :grin:

Si es para algo relacionado con los GOLES e históricos, o combinatoria de quinigol, no use las letras. Si hay combinatoria, los números serán más rápidos.

[* PROCRASTINADOR profesional.;-) * Informática y electrónica; BBA; ajedrez, billar y las TIC.
Avatar de Usuario
1X2en3D
10
10
Mensajes: 31
Registrado: Lun 15 Mar, 2021 7:12 pm

Re: excel...

Mensaje por 1X2en3D »

Lo puedes hacer como dice QuimeraORO o con una sola instrucción con la función CARACTER de Excel.
La siguiente equivalencia a un carácter, aunque no todos letras, se hace con la fórmula
=CARACTER(33+A1)
que da el equivalente de Ascii.
0 ! 10 + 20 5 30 ? 40 I 50 S
1 " 11 , 21 6 31 @ 41 J 51 T
2 # 12 - 22 7 32 A 42 K 52 U
3 $ 13 . 23 8 33 B 43 L 53 V
4 % 14 / 24 9 34 C 44 M 54 W
5 & 15 0 25 : 35 D 45 N 55 X
La fórmula inversa en este caso es
=CODIGO(B1)-33
Puedes cambiar el número 33 por otro mayor para obtener los caracteres que te interesen. Es una cuestión de tanteo.
Avatar de Usuario
QuimeraORO
11
11
Mensajes: 479
Registrado: Dom 10 Jul, 2022 4:40 am
Contactar:

Re: excel...

Mensaje por QuimeraORO »

1X2en3D escribió:
Mar 15 Nov, 2022 9:00 pm
Lo puedes hacer como dice QuimeraORO o con una sola instrucción con la función CARACTER de Excel.
La siguiente equivalencia a un carácter, aunque no todos letras, se hace con la fórmula
=CARACTER(33+A1)
que da el equivalente de Ascii.
0 ! 10 + 20 5 30 ? 40 I 50 S
1 " 11 , 21 6 31 @ 41 J 51 T
2 # 12 - 22 7 32 A 42 K 52 U
3 $ 13 . 23 8 33 B 43 L 53 V
4 % 14 / 24 9 34 C 44 M 54 W
5 & 15 0 25 : 35 D 45 N 55 X
La fórmula inversa en este caso es
=CODIGO(B1)-33
Puedes cambiar el número 33 por otro mayor para obtener los caracteres que te interesen. Es una cuestión de tanteo.
Podría intentarse, pero el usuario se va a confundir casi seguro en alguna conversión, intuyo que quiere algo para no tener que meter el resultado casilla a casilla, sino en una sola un codigo, y mentalmente pensaría que empezando en A y recordando los resultados, solo tendría que meter una sola letra para cada resultado. Veo jodio que cuando un partido acabe 4-1 se acuerde que es @ y cuando sea 1-4 %....

Si no usa caracteres especiales, peor para memorizar, NO le va a llegar con todas las letras..., luego hay que poner dos letras, luego empieza a ser un código muy manual...,

Por otra parte, inicialmente parte del resultado del partido en celdas separadas y en número, pero desde allí no puede empezar la conversión, primero tiene que unirlas para convertirlas en un resultado único de partido en una celda, luego ya no es una sola función, se puede hacer de un tirón en la formula, pero es otro paso más para meter el factor humano.

Lo que he puesto allí arriba está muy estirado, obviamente con fines didácticos, se puede meter todo en una formula y sacarles casi de un tirón, pero eso ya cuando esta acabado todo y testeado, si luego quiere aumentar el rango es fácil, solo hay que tirar de tabla.


- Finalmente, saber si gana local, empate o visitante es poco intuitivo, pero bueno, si quiere el usuario letras, pues letras tiene, y códigos también claro, con su idea, muy económica en recursos y espacio...,

Pero al menos tendrá que hacer algún paso previo para preparar el asunto y luego personalizar los códigos, se podría intentar, pero hay altas posibilidades de que alguien sin experiencia se confunda y no pueda interpretar los datos de un vistazo...

Aunque usted ya lo sabe, me gustaría recalcar, que pasando el código casi neto a columnas, no hay riesgo, las columnas ya las tiene ordenadas excel, cuando se acaben sigue cogiendo por la derecha, pero SIEMPRE ORDENADAS...

Por último hay que considerar a donde ponemos el limite, resultados a goles hay muchos, y además, los códigos resultantes no están ordenados numéricamente, saltan de 5 en 5, o de tres en tres dependiendo donde pare.

En cualquier caso, es una función interesante, y la idea, es muy típica de un "programador", ocupa poco espacio, si se quiere luego almacenar y procesar esos datos, luego se puede "desconvertir" el invento con su formula inversa.

No se, no recuerdo, si la tabla ascii pueda tener otro orden dependiendo del idioma, o sistema operativo. Lo suyo es que no, pero bueno, hay que hacer referencia a datos universales.

Yo estoy casi seguro que buscaba una forma de meter resultados con las letras del teclado, pero no ha calculado que así parando en 5 hay mas de 30 resultados posibles.

En cualquier caso, si en vez de letras y codigos, lo deja en "NETO", o sea, el resultado en número no veo yo mayor problema, ni ninguna ventaja estratégica ni nada, o sea quiero decir:

Pasar de esto:

A1=1 B1=1 a esto otro C1="11" (en numero)
A2=3 B2=2 o bien C1="32"
etc...

Pues ya está, que quiere rellenar una tabla con un empate a 4, pues pone 44 y listo.

¿Que quiere manipular datos estadísticos o almacenarlos?, pues de tener un "numero" 41 o una @ no parece gran diferencia... obviamente si va a usar las letras, entonces si, por que combinaciones de dos letras, cadenas, son variables mucho más pesadas que solo números, y luego ya están esos códigos, más optimizado.

Por terminar, ya no recuerdo..., tendría que mirarlo, pero para programación con esos datos luego, crear una variable para contener un "carácter" ASCII, no se si ocupa menos espacio que para contener un número, supongo que el primero podría definirse algo tipo char, (C), o la otra tipo int, pero computacionalmente operar a la cpu con % $ @ etc, igual le lleva más tiempo que con números "netos", las cpu tienen registros para operar rápido con números enteros.

Comprimir los datos tiene su sentido... Obviamente, si se va a decantar el usuario por poner letras AA AC, ETC.., pues entonces SI, me gusta más su sistema, el de ASCII, ya si nos vamos a poner "estupendamente" y visualmente incomprensibles para el ojo humano, pues entonces ya que más da..., ya de hacerlo, pues hacerlo bien.

Todo depende, espero que no sea para una división de equipos de futbol de niños o algo, hacer una tabla con resultados de muchos goles podría agotar los caracteres "únicos", en ASCII, ... pero todo esta bien.

saludos y gracias por aportar la idea comprimida, me la apunto para alguna cosa, nunca se sabe.

[* PROCRASTINADOR profesional.;-) * Informática y electrónica; BBA; ajedrez, billar y las TIC.
Avatar de Usuario
victrope
11
11
Mensajes: 479
Registrado: Sab 17 Mar, 2018 12:44 am
Contactar:

Re: excel...

Mensaje por victrope »

Si simplemente quieres hacer eso que comentas:

No sé en excel, pero en Libreoffice es con la siguiente Función:

=SI(SI(A1=1 )Y(SI(B1=0));"A")

Igual se te ha olvidado poner la letra entre comillas.

Un saludo



cenicienta escribió:
Dom 13 Nov, 2022 11:06 pm
realmente es tan complicado...

tengo dos columnas A,B donde estan los resultados de los partidos....

10
20
30
00
01
02
22
y quiero poner en la columna C para simplificarlo (acotarlo) el resultado en letras. dando el valor de una letra a un resultado concreto:

10...A
20...B
30...C
00...D
01...E
02...F
22...G
00...D
01...E..........

pense que con si a1=1 y b1=0 entonces c1=A ............pero na de na.


ayuda???......gracias!!
Avatar de Usuario
QuimeraORO
11
11
Mensajes: 479
Registrado: Dom 10 Jul, 2022 4:40 am
Contactar:

Re: excel...

Mensaje por QuimeraORO »

victrope escribió:
Mar 15 Nov, 2022 10:14 pm
Si simplemente quieres hacer eso que comentas:

No sé en excel, pero en Libreoffice es con la siguiente Función:

=SI(SI(A1=1 )Y(SI(B1=0));"A")

Igual se te ha olvidado poner la letra entre comillas.

Un saludo
cenicienta escribió:
Dom 13 Nov, 2022 11:06 pm
realmente es tan complicado...

tengo dos columnas A,B donde estan los resultados de los partidos....

10
20
30
00
01
02
22
y quiero poner en la columna C para simplificarlo (acotarlo) el resultado en letras. dando el valor de una letra a un resultado concreto:

10...A
20...B
30...C
00...D
01...E
02...F
22...G
00...D
01...E..........

pense que con si a1=1 y b1=0 entonces c1=A ............pero na de na.


ayuda???......gracias!!
=SI(SI(A1=1 )Y(SI(B1=0));"A")

efectivamente, lo de los condicionales que le hablaba al usuario pero tiene que hacerlo 30 y pico veces y cambiar los códigos y las letras a mano...

Pero si, a veces lo simplemente sencillo, es lo más ràpido si no están acostumbrados a ello.

¿que tal es libreoffice?, siempre pienso en esas suites, pero nunca doy el paso...

[* PROCRASTINADOR profesional.;-) * Informática y electrónica; BBA; ajedrez, billar y las TIC.
Avatar de Usuario
shadowbit
12
12
Mensajes: 1859
Registrado: Jue 16 Oct, 2003 12:46 am
Contactar:

Re: excel...

Mensaje por shadowbit »

Tienes para elegir, jeje. Yo lo haría de otra forma.

En una hoja me pongo la tabla con la equivalencia a cada conjunto de resultados:

00 A
10 B
20 C
M0 D
01 E
11 F
21 G
M1 H
02 I
12 J
22 K
M2 L
0M M
1M N
2M Ñ
MM O

por ejemplo para el pleno a goles

y en la otra tabla, donde tienes las 2 columnas con los resultados, en la tercera columna pondría:

=BUSCARV(CONCATENAR(A1;B1);Hoja1!$A$1:$B$16;1;0)

Lo arrastro para cubrir todas tus filas y listo.
Avatar de Usuario
victrope
11
11
Mensajes: 479
Registrado: Sab 17 Mar, 2018 12:44 am
Contactar:

Re: excel...

Mensaje por victrope »

QuimeraORO escribió:
Mié 16 Nov, 2022 5:50 am
victrope escribió:
Mar 15 Nov, 2022 10:14 pm
Si simplemente quieres hacer eso que comentas:

No sé en excel, pero en Libreoffice es con la siguiente Función:

=SI(SI(A1=1 )Y(SI(B1=0));"A")

Igual se te ha olvidado poner la letra entre comillas.

Un saludo
cenicienta escribió:
Dom 13 Nov, 2022 11:06 pm
realmente es tan complicado...

tengo dos columnas A,B donde estan los resultados de los partidos....

10
20
30
00
01
02
22
y quiero poner en la columna C para simplificarlo (acotarlo) el resultado en letras. dando el valor de una letra a un resultado concreto:

10...A
20...B
30...C
00...D
01...E
02...F
22...G
00...D
01...E..........

pense que con si a1=1 y b1=0 entonces c1=A ............pero na de na.


ayuda???......gracias!!
=SI(SI(A1=1 )Y(SI(B1=0));"A")

efectivamente, lo de los condicionales que le hablaba al usuario pero tiene que hacerlo 30 y pico veces y cambiar los códigos y las letras a mano...

Pero si, a veces lo simplemente sencillo, es lo más ràpido si no están acostumbrados a ello.

¿que tal es libreoffice?, siempre pienso en esas suites, pero nunca doy el paso...
Hola QuimeraORO,

Pues en la hoja de calculo es un estilo al Excel. Quizás no tiene todas las florituras de Office, pero para calcular sobre una hoja cumple perfectamente su función. Es bastante compatible con las hojas de excel. Por probar no pierdes nada, si no te gusta lo desinstalas y listo.

Un saludo
cenicienta
11
11
Mensajes: 500
Registrado: Mié 08 Sep, 2004 4:57 pm

Re: excel...

Mensaje por cenicienta »

perdonar la tardanza...............

muchas gracias por contestarme:

QuimeraORO y 1X2en3D: muy complicado de seguir por mi parte.

victrope: si es lo que pense pero lo pongo =SI(SI(A1=1 )Y(SI(B1=0));"A") y me da fallo en formula

si(prueba logica;[valor si verdadero];[valor si falso])

shadowbit: perfecto y lo entiendo. para el quinigol seria la leche.....pero me gustaria poder acotar el resultsdo exacto.


gracias!!
saludos!
Avatar de Usuario
shadowbit
12
12
Mensajes: 1859
Registrado: Jue 16 Oct, 2003 12:46 am
Contactar:

Re: excel...

Mensaje por shadowbit »

Pones una hoja con nombre: REFERENCIA
2 COLUMNAS CON ESTOS DATOS
10 A
20 B
30 C
40 D
50 E
60 F
70 G
11 H
21 I
31 J
41 K
51 L
61 M
71 N
12 Ñ
22 O
32 P
42 Q
52 R
62 S
72 T
13 U
23 V
33 W
43 X
53 Y
63 Z
73 AA
14 AB
24 AC
34 AD
44 AE
54 AF
64 AG
74 AH
15 AI
25 AJ
35 AK
45 AL
55 AM
65 AN
75 AÑ
16 AO
26 AP
36 AQ
46 AR
56 AS
66 AT
76 AU
17 AV
27 AW
37 AX
47 AY
57 AZ
67 BA
77 BB

En la hoja donde tienes las 2 columnas con los resultados pones en la tercera columna:

=BUSCARV(A1&B1;REFERENCIAS!$A$1:$B$56;2;0)

y lo arrastras para cubrir todas las filas.
Responder