Combinar varios números de una sola cifra...
Me gustaria saber si en excel se podría hacer alguna fórmula para combinar 5 números de una cifra en tres números de dos cifras... Ejemplo, tengo los números: 3, 0, 6, 1, 5 con esos números puedo obtener los números 30, 61, 15, 03, 16, 51, 35, etc. Etc, supongamos que logro obtener 20 o 25 números de dos cifras, pero quisiera combinar esos números de dos cifras en grupo de tres, ejemplo; de la combinaciones que obtuve de una cifra, ligarlas así: 30-61-15, 30-35-03, 16-51-¿61 etc, etc, se podría?
1 respuesta
·
·
¡Hola Johnny!
A ver si me aclaro.
Tomas 5 cifras distintas
0, 1, 3, 5, 6
Formas sus variaciones tomadas de 2 en 2 que son V(5,2) = 5·4 = 20
01, 03, 05, 06,
10, 13, 15, 16,
30, 31, 35, 36,
50, 51, 53, 56
¿O formas sus variaciones con repetición VR(5,2) = 5^2 =25
Que añadiría 00, 11, 33, 55, ¿66 a las anteriores?
Y luego dices de tomar estos números de tres cifras de tres en tres.
¿Pero tienes que decir cómo se pueden tomar?
a) ¿Se pueden repetir números dentro del trio?
b) ¿Se tiene en cuenta el orden?
Si a) y b) entonces VR(20,3)=8000 o VR(25,3)=15625
Si a) y no b) entonces CR(20,3)=C(22,3)=1540 o CR(25,3)=C(27,3)=2925
Si no a) y b) V(20,3) = 6840 o V(25,3) = 13800
Si no a) y no b) C(20,3)=1140 o C(25,3)=2300
Y respecto a lo de hacerlo con alguna función de Excel ni en el mejor de los sueños, si acaso con alguna macro en Excel y con bastante esfuerzo de programación.
Espero las aclaraciones.
Saludos.
:
:
Hola Valero, podria decirse que si, pero en el conjunto de dos de arriba faltaria mas numeros, ejemplo 63, 65, 61, y si, era con la idea de que se pudiera hacer en excel...
Saludos Cordiales,
Johnny,
Si, es verdad que se me olvidaron los que empezaban por 6, los 60,61,63,65. Pero esa no es la duda, tienes que decirme estas cosas.
1) ¿Entran el 00, 11, 33, 55, 66 en los números de dos cifras?
2) ¿En las ternas se pueden repetir números? 31-31-31
3) ¿Hay qué poner todas o si están los mismos números solo hay que poner una? Es decir, habria que poner
10-35-60, 10-60-35, 35-10-60, 35-60-10, 60-10-35, 60-35-10
¿O solo con 10-35-60 es suficiente?
Si esas contestaciones son demasidos modelos, necesito concretar.
No estás obligado a valorar la respuesta hasta el final, pero si has querido valorar por adelantado esta pregunta no se contesta por una puntuación de buena solo, lleva trabajo como para puntuarla como Excelente varias veces.
Saludos.
:
:
No, ya con la combinación 10-35-60, es suficiente, en los numero de 2 cifras no entrarían 00, 11, 55 etc, tampoco es necesario repetir números 31-31-31.
Saludos Cordiales,
Johnny
Abajo hay unos botones, yo no sé cómo estarán ahora porque hace bastante que no hago preguntas, pero creo que habrá uno que pone excelente, ese es el que debes pulsar.
La respuesta tardará un poco porque tengo bastantes preguntas por contesta, pero ya sé lo que quieres, son las combinaciones de 20 elementos tomadas de 3 en 3. Y estoy capacitado para ello, hace pocos días hice esta macro para una pregunta parecida:
https://drive.google.com/file/d/0B3nG6r7qbZZ_dUtmU1VGSE9DTlU/view?usp=sharing
Que con alguna pequeña modificación serviría para lo tuyo, pero no se cuántas horas o días tendrás que esperar.
Saludos.
:
:
Esto es lo que hecho, creo que funciona pero lo he probado poco.
Puedes usar las cifras que quieras no solo 5, las añades en la primera fila de izquierda a derecha, donde haya un corte o algo que no sea cifra se paran de contar las cifras.
Tampoco hace falta que lo s grupos sean de 3 parejas, puedes elegir entre 2 y 10.
Cuida no te pases porque pueden salir muchísimas filas y no poder hacerlo el ordenador y quedar un fichero muy grande si lo guardas.
Y aquí lo puedes descargar
https://drive.google.com/file/d/0B3nG6r7qbZZ_SjF5ZFdIdXozQ0E/view?usp=sharing
Espero que sea lo que querías. Yo te dejo por muchas horas hasta que pueda ver lo que comentes.
Una línea más para que no se coman el enlace.
Saludos
:
:
¡Ah por cierto, esta es la macro por si a alguien le interesa!
Sub Combinar() 'By ValeroASM Dim i, j, k, fila, colu, nuci, nupare, nupagru As Integer Dim cifras(9), bolas(89), comprobador(89), combiant(9) As Integer Dim parejas(89), texto As String Dim fin As Boolean i = 0 While InStr("0123456789", Cells(1, i + 1)) <> 0 And Len(Cells(1, i + 1)) = 1 And (i <= 9) cifras(i) = Cells(1, i + 1) comprobador(i) = cifras(i) i = i + 1 Wend nuci = i If nuci < 10 Then For i = nuci + 1 To 10 Cells(1, i) = "" Next End If If nuci < 2 Then Exit Sub For i = 0 To nuci - 2 For j = 0 To nuci - 2 - i If comprobador(j) > comprobador(j + 1) Then k = comprobador(j) comprobador(j) = comprobador(j + 1) comprobador(j + 1) = k End If Next Next For i = 1 To nuci - 1 If comprobador(i) = comprobador(i - 1) Then res = MsgBox("Número repetido " & comprobador(i), vbCritical) Exit Sub End If Next Cells.Range("A3:J11").Clear fila = 3: colu = 1: k = 0 For i = 0 To nuci - 1 For j = 0 To nuci - 1 If i <> j Then Cells(fila, colu) = Str(cifras(i)) + Str(cifras(j)) parejas(k) = Cells(fila, colu) colu = colu + 1: If colu = 11 Then colu = 1: fila = fila + 1 k = k + 1 End If Next Next nupare = k Cells.Range("L1:L" & Rows.Count).Clear nupagru = Cells(13, "H") If nupagru < 2 Or nupagru > 10 Then nupagru = 3 Cells(13, "H") = 3 End If j = nupare k = nupagru For i = 1 To nupagru - 1 j = j * (nupare - i) k = k * (nupagru - i) Next Cells(1, "O") = j / k fila = 1 texto = parejas(combiant(0)) For i = 0 To nupagru - 1 combiant(i) = i If i <> 0 Then texto = texto + "-" + parejas(combiant(i)) Next Cells(fila, "L") = texto Do colu = nupagru - 1 Do While combiant(colu) = nupare - nupagru + colu colu = colu - 1 If colu = -1 Then fin = True Exit Do End If Loop If Not fin Then fila = fila + 1 combiant(colu) = combiant(colu) + 1 For i = colu + 1 To nupagru - 1 combiant(i) = combiant(i - 1) + 1 Next texto = parejas(combiant(0)) For i = 1 To nupagru - 1 texto = texto + "-" + parejas(combiant(i)) Next Cells(fila, "L") = texto If fila Mod 1000 = 0 Then Cells(1, "N") = fila End If Loop Until fin Cells(1, "N") = fila MsgBox ("FIN") End Sub
Y no olvides subirme la nota.
Ah, falla si el número de combinaciones es mayor que 1048000 porque ese es número de filas máximo y no lo he tenido en cuenta, podría dedicarse más de una columna para resultados para solucionarlo si hiciera falta
Hola Angel, como te dije esta todo perfecto, lo único que no acepta repetición de número, ejemplo, 4,3,4,8...
Ah, pero es que yo pensaba que tendría que ser así, todos distintos, por eso impuse que si se repetían números no se hiciesa nada a la espera de que se solucionara. Es que la repetición de números plantea ciertos problemas no imposibles de solucionar pero habría que hacer algúnos arreglos, en el ejemplo que pones las ternas que tuvieran 44 saldrían dos veces, una por los dos 4 en el orden natural y otra en el opuesto. ¿Supongo qué no querrás que sea así no? Y ya no te cuento nada si se repiten tres cifras o más
Yo no te digo que no se pueda hacer, basta con conforme se van creando las parejas comparar con las que ya hay para no repetir ninguna. Pero es que no entiendo lo que significan esas ternas de parejas, por eso no sé si habría que rechazar las repetidas o no, eso depende del significado que tenga lo que haces.
- Compartir respuesta