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
1
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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas