Find Jobs
Hire Freelancers

Reducir el tiempo en unos sencillos cálculos (macro) en Excel

max €20 EUR

Terminado
Publicado hace más de 9 años

max €20 EUR

Pagado a la entrega
Buenos días, necesito realizar en Excel (a través de una macro, o como sea) los siguientes cálculos, de la manera en la que explico. A primera vista parecen muy complicados, pero son muy sencillos, es siempre el mismo proceso. Adjunto el Excel que actualmente utilizamos, ya tiene programados estos cálculos, pero tarda mucho tiempo. El objetivo es reducir el tiempo, de la manera en la que explico más abajo, y de manera que cumplan las condiciones que se exigen (también detalladas más abajo). Es un pequeño proyecto casero sencillo, y ofrecemos un presupuesto de 20-30€ (2-3 horas de trabajo) como explicamos más abajo. Empiezo a explicar estos cálculos, lo más detalladamente posible: Llamaremos “CADENA de caracteres” a una secuencia de siempre 14 caracteres, y tres posibles signos distintos (A, B o C, siempre). &nbsp;El orden importa, no sería lo mismo AAAAAAAAAAAAAB que AAAAAAAAAAAABA, por ejemplo. En total, los cálculos se tendrán que realizar con en torno a 70.[eliminado] cadenas, aproximadamente. Para ver más sencillos los datos que hay calcular, voy a ir explicándolo como si tuviéramos solo 4 cadenas. Imaginemos que sólo tuviéramos estas 4 cadenas: AAAAAAAAAAAAAA&nbsp; AAAAAAAAAAAAAB&nbsp; AAAAAAAAAAABCA&nbsp; AAAAAAAAABCCBB El objetivo es: hallar cuantas cadenas tienen un signo diferente respecto de la primera, cuantas cadenas dos signos diferentes respecto de la primera, cuantas cadenas tres signos diferentes respecto de la primera, y cuantas cadenas cuatro signos diferente respecto de la primera. Hasta ahí, todo respecto de la primera.&nbsp; Este proceso, posteriormente, se tendría que hacer no sólo respecto de la primera, sino respecto de cada una de las cadenas.&nbsp; Explico cómo sería el proceso más detalladamente. Por ejemplo, respecto de la primera cadena quedaría así:&nbsp; AAAAAAAAAAAAAA (Cadena analizada) AAAAAAAAAAAAA<strong>B</strong> (Tiene un solo signo diferente) AAAAAAAAAAA<strong>BC</strong>A (Tiene dos signos diferentes) AAAAAAAAAAA<strong>CC</strong>A (Tiene dos signos diferentes) Por tanto, finalmente quedaría así: (Supondremos que 1SD quiere decir un signo diferente, 2SD dos signos diferentes, 3SD tres signos diferentes, y 4SD, cuatro signos diferentes). &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1SD 2SD 3SD 4SD AAAAAAAAAAAAAA &nbsp; &nbsp; 1 &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp; 0 &nbsp; &nbsp;&nbsp; Este proceso habría que realizarlo con las 4 cadenas, de manera que al final sólo nos quedaríamos con estos datos últimos por cada cadena (1SD, 2SD, 3SD, 4SD). Posteriormente habría que seguir el mismo proceso con la segunda cadena, sería: AAAAAAAAAAAAA<strong>A </strong>(Tiene un signo diferente) AAAAAAAAAAAAAB (Cadena analizada) AAAAAAAAAAA<strong>BCA</strong> (Tiene tres signos diferentes) AAAAAAAAAAA<strong>CCA</strong> (Tiene tres signos diferentes) Y finalmente, el resultado a mostrar, (mostramos también el resultado de la primera cadena calculado anteriormente) debería ser éste: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1SD 2SD 3SD 4SD AAAAAAAAAAAAAA &nbsp; 1 &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp; 0 &nbsp; &nbsp; AAAAAAAAAAAAAB &nbsp; 1 &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; 1 &nbsp; &nbsp; Así hasta analizar las dos cadenas que faltan, 4 en total en este caso. Este proceso tendría que utilizarse hasta terminar de analizar en nuestro caso las en torno a 70.[eliminado] cadenas que el programilla obtiene al final, una vez calculados todos los datos. El proceso es sencillo, pero al intervenir tantas cadenas, el principal problema que nos surge es el tiempo. Tenemos un Excel que ya realiza estos cálculos, pero sólo llega a analizar 30.000 cadenas (a partir de ahí da error, porque tarda demasiado), tardando en total 1h 30 min más o menos. Lo hemos adjuntado más abajo para que sirva de ayuda y de ejemplo. El objetivo es lograr un Excel similar a éste en el que se puedan analizar en torno a las 70.[eliminado] cadenas en el menor tiempo posible. (Lo ideal sería 1h máx. en caso de las 120.000 cadenas, y en torno a 30-35 min. En caso de las 70.000, o algo más de tiempo si no fuera posible). Hay que tener en cuenta que a medida que se aumenta el número de cadenas, el tiempo aumenta de manera exponencial, no linealmente (porque cada cadena que se añade tiene que compararse con cada vez más cadenas). Sin embargo, es posible reducir al menos a la mitad el tiempo, haciendo la mitad de las comparaciones, de la manera que explico a continuación, por eso creo que es posible realizarlo en el tiempo que he comentado anteriormente. Imaginemos que tenemos las siguientes cadenas que se ven en la imagen -dos párrafos más abajo- (tienen sólo 5 caracteres para simplificar y que se vea más fácil): AAAAA AAAAB AACBB AABBB Los resultados finales serían los datos de 1SD, 2SD, 3SD y 4SD, pero si mostrásemos el análisis completo (que luego en los resultados finales como digo no se muestra), vemos que se forman dos triángulos iguales (lo he pintado de colores para que se vea claro). La parte de abajo es igual a la de arriba, cómo si lo mirásemos con un espejo. (VER IMAGEN ADJUNTADA [login to view URL]) Esto sucede porque, imaginemos que tenemos tres cadenas: Cadena 1 Cadena 2 Cadena 3 &nbsp; El programa analiza la cadena 1-2, 1-3, 2-1 y 2-3 y 3-1 y 3-2. Pero el análisis de la 1-2 y 2-1 es el mismo, el de la 1-3 y 3-1 también, y el de la 2-3 y 3-2 también, por eso se forma el triángulo. (Es decir, como digo se podrían calcular la mitad de las comparaciones). &nbsp; Por si no se entienden bien los números de los dos triángulos, desarrollo el proceso como he explicado anteriormente. Los números del cuadro salen de aquí: AAAAA &nbsp;(C: Cadena analizada)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AAAAB&nbsp; (Tiene 1 signo diferente)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AACBB&nbsp; (Tiene 3 signos diferentes)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AABBB&nbsp; (Tiene 3 signos diferentes)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; AAAAA &nbsp;(Tiene 1 signo diferente) AAAAB&nbsp; (C: Cadena analizada) AACBB&nbsp; (Tiene 2 signos diferentes)&nbsp; AABBB&nbsp; (Tiene 2 signos diferentes)&nbsp;&nbsp;&nbsp; &nbsp; (Y lo mismo con las dos cadenas que siguen).&nbsp;&nbsp;&nbsp; &nbsp; En definitiva, a primera vista parecen unos cálculos complicados, pero son muy sencillos, es siempre el mismo proceso. El objetivo es programarlo en Excel (a través de una macro, o como sea), de la manera que he explicado para evitar la mitad de las comparaciones, de manera que al analizar en torno a 70.[eliminado] cadenas, no lleve más de 1 hora. Adjuntamos también el Excel que utilizamos actualmente (que realiza todas las comparaciones, y por eso lo máximo que permite es analizar 30.000 cadenas, tardando en torno a 1h y media aproximadamente), también realizado por un compañero que nos ayudó de esta plataforma. (En un primer momento muestra los datos calculados juntos, y sólo habría que darle a ‘Ejecutar dividir' para que los mostrase cada número en una cuadrícula, como debería ser. Mostrar los datos calculados juntos no es necesario, él lo realizó así para intentar ahorrar algo de tiempo.) Este Excel calcula también la 5SD, esa NO es necesaria. Sólo hace falta calcular la 1SD, 2SD, 3SD y 4SD, como he explicado anteriormente. Adjuntamos este Excel que comentamos programado con los cálculos ya explicados, el objetivo, como digo, sería realizar en otro Excel, estos cálculos, pero programándolo de la forma que he explicado para evitarnos la mitad de las comparaciones y que al analizar en torno a 70.[eliminado] cadenas no lleve más de una hora. Como ya damos el Excel y los cálculos realizados, que simplemente se limitan al mismo proceso una y otra vez, y el objetivo sería únicamente reprogramarlo para reducir el tiempo a la mitad, habíamos pensado en un presupuesto de 20-30€, pues no creemos que lleve más de 2-3 horas, la clave está en programarlo de la manera explicada para reducir el tiempo lo máximo posible. (La situación económica es la que es, nos gustaría, pero no podemos permitirnos pagar más). El análisis tiene que cumplir el tiempo máximo (120.000 cadenas no pueden tardar más de 1h15min. o 1h30min. como muchísimo. Lo ideal sería algo menos. Si el Excel supera esos tiempos, no nos serviría, pues ya nos valdría con el que tenemos). Pagamos por Nubelo, o por Paypal, como se prefiera, al que nos comunique que ha logrado realizar este pequeño proyecto casero correctamente y dentro de los tiempos, no tenemos preferencia por nadie. Una vez efectuemos el pago, borraremos el anuncio. (Si lo desean, proporcionamos archivo .txt de 70.[eliminado] columnas para comprobar los tiempos). Muchas gracias. (Adjuntado se muestra nuestro Excel, con los cálculos explicados, pero rcon el problema ya explicado de que realiza todas las comparaciones y no cumple la condición del tiempo -tarda mucho, y solo llega a analizar 30.000 cadenas-). Gracias, un saludo.&nbsp;
ID del proyecto: 12372669

Información sobre el proyecto

5 propuestas
Proyecto remoto
Activo hace 10 años

¿Buscas ganar dinero?

Beneficios de presentar ofertas en Freelancer

Fija tu plazo y presupuesto
Cobra por tu trabajo
Describe tu propuesta
Es gratis registrarse y presentar ofertas en los trabajos
Adjudicado a:
Avatar del usuario
Buen día. Puedo hacerme cargo del desarrollo que proponéis en las condiciones indicadas en el documento adjunto, donde podréis encontrar los resultados de una simulación realizada sobre un conjunto de datos aleatorio que replica el escenario real. No suelo optar a proyectos de estas características, ya que me dedico principalmente a proporcionar soluciones de negocio y Web pero en este momento estoy evaluando la plataforma Nubelo para un uso futuro y el proyecto me ha parecido interesante como ejercicio. En caso de necesitar cualquier aclaración, por favor, contacten conmigo. ACTUALIZACIÓN: - Se ofrece al cliente un descuento comercial del 50%. - Se informa al cliente de una mejora de los tiempos sobre la oferta inicial del 50% - Se indica al cliente que las nuevas condiciones no incluyen la presentación remota del producto y que toda la prueba y validación le corresponderá en exclusiva. - La aplicación tienen una garantía de 6 meses contra defectos pero no soporte. - Entrega en 24 horas tras la verificación del pago en nubelo escrow. Marco Antonio Regueira.
€20 EUR en 1 día
4,5 (1 comentario)
2,4
2,4
5 freelancers están ofertando un promedio de €20 EUR por este trabajo
Avatar del usuario
Buenos días: Soy Jonathan Grajirena, para agilizar el proceso se podria realizar un ordenación inicial teniendo en cuenta cuantas veces las se repite una misma cadena y crear una especie de bloques reduciendo asi la comparativa entre cadenas a bloques de cadenas. Yo creo que podría agilizar el tema de comparación con el excel.
€20 EUR en 1 día
0,0 (0 comentarios)
0,0
0,0
Avatar del usuario
Buenos días Si es de su interés, quisiera llegar a una negociación por la macro que están solicitando. el desarrollo de la misma está culminado. El costo por el desarrollo y el cual les hago saber por este medio es negociable y es mayor al que uds. presupuestan, sin embargo el mismo es negociable. Duración del desarrollo y pruebas del buen funcionamiento de la misma es de cuatro (4) horas. Saludos y esperando su pronta respuesta. César A. Chacón A. Lic. en Computación
€20 EUR en 1 día
0,0 (0 comentarios)
0,0
0,0
Avatar del usuario
Solución por fórmulas. Sólo habría que definir la carga y que usen Excel reciente. La carga puede ser por macro. Hice pruebas de las fórmulas con sus ejemplos sin problemas. Y pensando que los datos sean siempre comparaciones de 1 caracter.
€20 EUR en 14 días
0,0 (0 comentarios)
0,0
0,0
Avatar del usuario
Saludos Esto parece un problema de bioinformatica. Existen varias alternativas para mejorar el desempeño, por favor revisar propuesta extendida en el documento. La aplicación propuesta cuenta con las siguientes características: - Recibir archivo Excel - Procesar información en python - Entregar archivo Excel con resultados - Emplear el algoritmo propuesto por ustedes Si les interesa la otra propuesta (ver documento) o requieren mas información con gusto responderé a sus inquietudes Hasta pronto Carlos Andres Lopez Apisceris Colombia
€20 EUR en 12 días
0,0 (0 comentarios)
0,0
0,0

Sobre este cliente

Bandera de SPAIN
Spain
4,0
2
Miembro desde ene 14, 2014

Verificación del cliente

¡Gracias! Te hemos enviado un enlace para reclamar tu crédito gratuito.
Algo salió mal al enviar tu correo electrónico. Por favor, intenta de nuevo.
Usuarios registrados Total de empleos publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Cargando visualización previa
Permiso concedido para Geolocalización.
Tu sesión de acceso ha expirado y has sido desconectado. Por favor, inica sesión nuevamente.