Obtener ex Microsoft Excel todas las combinaciones posibles con unos números determinados
Qué pena molestarte pero hace días tengo una inquietud, para poder resolver una aplicación que estoy trabajando; lastimosamente con los conocimientos que tengo (en Excel) no he podido resolverlo, espero me puedas ayudar, la pregunta es la siguiente: Como puedo hacer para obtener todos los posibles números que se pueden dar (conocido como diagrama de árbol; pero no quiero el diagrama de árbol sino todos los números posibles). Ejemplo
Primera posición segunda posición tercera posición cuarta posición 1 4 6 7 2 8 7 3 9 2 Los posibles números serian: 1467, 1463, 1477, 1473, 1427,1423 etc.
1 Respuesta
Respuesta de vichufirefox
1
1
vichufirefox, Ing. de Sistemas. Windows XP Office 2003 y 2007 Lenguaje C, C++ y...
Viendo tu necesidad, he creado dos macros para realizar tu inconveniente... Te soy sincero, la verdad no se si la solución que yo te planteo sera la más adecuada pero si te aseguro que te resolverá el inconveniente lo más proto posible... me demore en contestarte, ya que no había visto el correo... Abre el editor de visual basic (Herramientas -> Macro -> Editor Visual Basic... o presionas Alt + F11)y pega las siguientes macros... Public totalreg As Integer Public Sub NumerosPosibles() Dim PNA, PNB, PNC, PND, Concadenar, ResultadoFinal As String Dim ColA, ColB, ColC, ColD As Integer PNumeros = "" Range("A2").Select ContarReg ColA = totalreg Range("B2").Select ContarReg ColB = totalreg Range("C2").Select ContarReg ColC = totalreg Range("D2").Select ContarReg ColD = totalreg If (ColA <> 0) Or (ColB <> 0) Or (ColC <> 0) Or (ColD <> 0) Then For A = 1 To ColA PNA = Range("A" + Trim(Str(A + 1))).Value For B = 1 To ColB PNB = Range("B" + Trim(Str(B + 1))).Value For C = 1 To ColC PNC = Range("C" + Trim(Str(C + 1))).Value For D = 1 To ColD PND = Range("D" + Trim(Str(D + 1))).Value & ", " Concadenar = Concadenar & PNA & PNB & PNC & PND Next D Next C Next B Next A ResultadoFinal = Left(Concadenar, Len(Trim(Concadenar)) - 1) Range("F9:J20").Value = "Los posibles números serian: " & ResultadoFinal Range("F9:J20").Select Else MsgBox "No hay datos en las Columnas..." End If End Sub Public Function ContarReg() totalreg = 0 Do While Not IsEmpty(ActiveCell) If ActiveCell.Value = "" Then Exit Do End If totalreg = totalreg + 1 ActiveCell.Offset(1, 0).Select Loop End Function Y después ejecutas la macro (Herramientas -> Macro -> Macros... y seleccionas la macro con el nombre de NumerosPosibles y haces clic en run). Veras que un rango combinado te colocara el resultado... De todas formas, si quieres dame tu correo y yo te mando un archivo y también te doy el código comentariado para que sepas que hace... Por favor si esta respuesta soluciona tu inconveniente, no se te olvide en calificar al "Experto"... Que tengas un buen día
Se me olvidaba decirte que la macro que hice se basa en que los datos están en las columnas A, B, C y D. A B C D 1 Primera posición segunda posición tercera posición cuarta posición 2 3 4 Por favor si esta respuesta soluciona tu inconveniente, no se te olvide en calificar al "Experto"... Que tengas un buen día