Buscar combinaciones en excel con condición

Bueno el detalle es el siguiente tengo un listado de números de 4 cifras pero dividido en 4 columnas cada uno .como podría a través de una macro colocar 2 números que compogan a ese numero y me de todas las combinaciones de acuerdo a mi listado ejemplo:

Tengo el 1234 pero separado en columna seria en la columna A el 1, columna B el 2, columna C el 3, columna DE el 4 claro esta en una misma fila ; el detalle es que a través de una macro con mgxbox de 4 cuadros al colocar digamos en el cuadro 2 el numero 2 y en el cuadro 3 el numero 3; busque de mi listado todas las posibles números como el 4231,8235,6234, y que se pueda realizar para todas las posibles combinaciones o sea las dos primeras las dos ultimas la primera y la tercera la segunda y la cuarta

1 Respuesta

Respuesta
1

La macro que resuelve esta consulta ya te la envié desde otra entrada. En tu libro quedó en hoja Bogotá.

Tomo esta consulta para enviarte la macro resolviendo la de los 2 nros iniciales.

Sdos.

Elsa

Que renglón tengo que dejar para las dos primeras cifras

For Each n In Range("F1:Q40")
If n = lookup Or Left(n.Value, 2) = Left(lookup, 2) Or Right(n.Value, 2) = Right(lookup, 2) Or _
(Left(n.Value, 1) = Left(lookup, 1) And Right(n.Value, 1) = Right(lookup, 1)) Or _
(Left(n.Value, 1) = Left(lookup, 1) And Mid(n.Value, 3, 1) = Mid(lookup, 3, 1)) Or _
(Mid(n.Value, 2, 1) = Mid(lookup, 2, 1) And Right(n.Value, 1) = Right(lookup, 1)) Or _
(Mid(n.Value, 2, 1) = Mid(lookup, 2, 1) And Mid(n.Value, 3, 1) = Mid(lookup, 3, 1)) Then
n.Interior.ColorIndex = 44
'se agrega el nro a la col Y
Range("Y" & x) = n
x = x + 1

No es en esta macro donde debes hacer los cambios sino en la última que te envié para encontrar las 2 últimas.

Son varias instrucciones modificadas y así quedó:

Sub coincidencias_2primeras()
'x Elsamatilde
Dim n As Range
Dim lookup
'se toma el valor ubicado en Z1 (* ver nota al pie)
If [Z1] = "" Then Exit Sub
'se recorre el rango buscando las 2 primeras coincidencias
lookup = Left([Z1], 2)
'se limpia la col Y
Columns("Y:Y").Clear
x = 2
For Each n In Range("F1:Q40")
    If Left(n, 2) = lookup Then
        n.Interior.ColorIndex = 55   'color celeste
        'se agrega el nro a la col Y
        Range("Y" & x) = n
        x = x + 1
    Else   'opcional quitar color a los no coincidentes.
        n.Interior.Color = xlNone
    End If
Next n
MsgBox "Fin del proceso.", , "INFORMACIÓN"
End Sub

Adjunto imagen del resultado.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas