Combinaciones de open office calc

dfdfdfdf -  
yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   -
Hola,

me gustaría generar todas las combinaciones de 5 números entre 50 en Excel, ¿podrías ayudarme?
No tengo idea de cómo hacerlo y no sé cómo crear o ejecutar macros.
Gracias.

6 respuestas

  1. via55 Mensajes publicados 14393 Fecha de registro   Estado Miembro Última intervención   2 759
     
    Hola

    Aquí está
    https://mon-partage.fr/f/UzoSeFy1/
    Evidentemente, cuanto más larga sea la lista de números en la columna A, más tiempo tardará la macro en ejecutarse

    Saludos
    Vía

    --
    "La imaginación es más importante que el conocimiento." A. Einstein
    1
    1. GrigoriPerelman
       
      Muchas gracias, sin embargo no puedo ejecutar la macro, ¿podría verificar que funciona bien? Gracias de antemano

      y waw, bonito programa
      0
    2. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      Hola, tengo la impresión de que el código solo devuelve una parte de las soluciones, aquellas en las que los números (a, b, c, d, e) están ordenados según la lista.
      0
  2. via55 Mensajes publicados 14393 Fecha de registro   Estado Miembro Última intervención   2 759
     
    Es más complicado
    Voy a intentar mirar eso en mi tiempo libre

    --
    "La imaginación es más importante que el conocimiento." A. Einstein
    1
    1. GrigoriPerelman Mensajes publicados 7 Estado Miembro 19
       
      Lo siento, no puedo ayudar con eso.
      0
    2. GrigoriPerelman Mensajes publicados 7 Estado Miembro 19
       
      Sin embargo, no puedo ejecutar la macro, ¿está seguro de que funciona?
      Y ¿podría decirme cómo ejecutarla?


      Gracias de nuevo por su consideración.
      0
    3. GrigoriPerelman Mensajes publicados 7 Estado Miembro 19
       
      Le agradecería mucho que me ayudara a hacer las pequeñas modificaciones de las que acabo de hablar


      De verdad, gracias Via55
      0
    4. GrigoriPerelman Mensajes publicados 7 Estado Miembro 19
       
      olviden mi solicitud de modificación, solo quiero hacer que el programa funcione pero no funciona.
      0
    5. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > GrigoriPerelman Mensajes publicados 7 Estado Miembro
       
      Solo tuve que abrir el archivo con Excel y luego presionar ctrl-t.
      0
  3. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   Ambassadeur 1 588
     
    Hola, ¿qué tipo de resultado esperas?
    0
    1. dfdfdfdf
       
      Me gustaría obtener una combinación de 5 números entre 50 ordenados por línea y sin repetición
      ej
      1 2 3 4 5
      5 50 4 12 9
      ...

      Eso hace más de 2 millones de posibilidades de combinaciones, pero no sé cómo obtenerlas en Excel, no tengo ni idea.
      0
    2. dfdfdfdf
       
      Si alguien logra crear un programa fácilmente ejecutable, sería genial, aunque no tengo mucha fe en eso dado la dificultad de la tarea.
      0
      1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > dfdfdfdf
         

        Private Sub kombi() Dim f As Worksheet, nlig As Long, i1 As Integer, i2 As Integer, i3 As Integer, i4 As Integer, i5 As Integer Set f = ThisWorkbook.Sheets("combi") nlig = 1 For i1 = 1 To 50 For i2 = 50 To i1 + 1 Step -1 For i3 = i2 + 1 To 50 For i4 = 50 To i3 + 1 Step -1 For i5 = i4 + 1 To 50 f.Cells(nlig, 1) = i1 f.Cells(nlig, 2) = i2 f.Cells(nlig, 3) = i3 f.Cells(nlig, 4) = i4 f.Cells(nlig, 5) = i5 nlig = nlig + 1 Next i5 Next i4 Next i3 Next i2 Next i1 End Sub 
        0
    3. dfdfdfdf
       
      gracias, pero a partir de este código, ¿qué debo hacer para obtener mis combinaciones?
      no sé nada de esto.
      0
  4. via55 Mensajes publicados 14393 Fecha de registro   Estado Miembro Última intervención   2 759
     
    Hola

    Aquí está:
    https://mon-partage.fr/f/3RHZ5m9V/
    Los resultados están en 3 columnas debido a que el número excede el número de celdas en altura de Excel

    Saludos
    Via

    --
    "La imaginación es más importante que el conocimiento." A. Einstein
    0
    1. dfdfdfdf
       
      Gracias muchas pero ¿podrías ayudarme a poner un número por celda solamente, por favor?
      0
    2. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > dfdfdfdf
       
      ¿Por qué haces este ejercicio?
      0
    3. dfdfdfdf
       
      Deseo establecer este programa con el fin de adaptarlo para lanzamientos para un estudio que estoy realizando.
      0
    4. dfdfdfdf
       
      Sin embargo, preferiría obtener un número por celda y no un sorteo por celda. ¿Podría modificar su programa a través del 55 de modo que cada celda contenga un número?
      Atentamente
      0
    5. dfdfdfdf
       
      No sé si mi solicitud es clara... en resumen, me gustaría hacer lo mismo que hizo via55, pero para una combinación, me gustaría tener cada uno de los números de la combinación en columnas diferentes.
      0
  5. via55 Mensajes publicados 14393 Fecha de registro   Estado Miembro Última intervención   2 759
     
    Re

    Reemplaza la macro por esta
    Sub combi() y = 1 For a = 1 To 46 For b = a + 1 To 47 For c = b + 1 To 48 For d = c + 1 To 49 For e = d + 1 To 50 x = x + 1 If x > 1000000 Then x = 1: y = y + 7 Cells(x, y) = a Cells(x, y + 1) = b Cells(x, y + 2) = c Cells(x, y + 3) = d Cells(x, y + 4) = e Next Next Next Next Next End Sub


    Desde otra hoja ejecuta la macro desde la cinta de opciones Desarrollador - Macros - combi - Ejecutar
    y ten paciencia: la macro tarda varios minutos en ejecutarse debido a la cantidad de escrituras que debe realizar
    0
    1. dfdfdfdf
       
      ¿Podrías hacerlo? Aparece un mensaje de error cuando intento hacerlo.
      Atentamente
      0
    2. dfdfdfdf
       
      ah no, está bien, muchas gracias.
      0
    3. GrigoriPerelman
       
      Hola, ¿podrías ayudarme a realizar un programa prácticamente similar pero con las siguientes restricciones:

      1) Quiero proporcionar una lista de números

      2) hacer una combinación de 5 cifras a partir de los que haya enlistado
      -Sin repetición del mismo número en una combinación
      generando únicamente combinaciones cuya suma de las 5 cifras esté entre 130 y 160
      Y que estas combinaciones tengan una diferencia entre cada cifra que yo haya determinado, por ejemplo, tenemos una combinación a b c d e quiero que a+b+c+d+e = [130;160] y que b-a =[5;10], c-a=[12-14], d-a.., e-a.., etc.


      gracias de antemano por el tiempo que puedas dedicarle y me imagino que será bastante largo

      Atentamente
      0
  6. via55 Mensajes publicados 14393 Fecha de registro   Estado Miembro Última intervención   2 759
     
    Hola

    Sí, la macro funciona, pero según los números y las condiciones de mínimo y máximo ingresados, puede que no haya ninguna solución
    Entonces, ¿qué quieres decir con que no logras ejecutar la macro? ¿No puedes lanzarla o no obtienes ningún resultado?

    Es normal que las soluciones estén ordenadas según los números de la lista, ya que la macro los lee en orden para que ninguno sea olvidado, que un mismo número no se considere dos veces en la misma solución y que todas las combinaciones sean consideradas. Así que no entiendo por qué solo se devolvería una parte de las soluciones

    --
    "La imaginación es más importante que el conocimiento."    A. Einstein
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      por "diferencia entre cada número", entendí el valor absoluto de la diferencia.
      0
    2. GrigoriPerelman
       
      nada sale
      0
    3. GrigoriPerelman
       
      En resumen, este programa es realmente perfecto, pero me gustaría tener diferencias en valor absoluto y poder proporcionar listas de números diferentes para a, b, c, d y e

      y que también se pueda ejecutar, por favor

      ¡Gracias de nuevo!
      0
    4. GrigoriPerelman Mensajes publicados 7 Estado Miembro 19
       
      también me gustaría poder dar una lista de las diferencias posibles, por ejemplo
      b-a puede valer 3;4;6;9;12 etc.
      0