Jump to content

combinaciones de 5 trabajadores agrupados de 2 en 2 sin repeticion


kises

Recommended Posts

buenas tardes:

Necesito crear combinaciones entre 5 trabajadores para agruparlos de 2 en 2 y sin que se repita la pareja. esto es realmente sencillo hacerlo en papel pero, por necesidades del trabajo necesito plasmarlo mediante formulas en excel, para que lo calcule automáticamente.

no se por donde empezar, tengo 5 chicas:

-Ana

-Carmen

-Eustakia

-Ramona

-Lola

Están chicas rotarían cada semana 2 de ellas para un puesto nuevo.

Como puedo hacer para que aparezcan los nombres en el calculo?

Creo que queda claro no obstante, soy nueva en el foro si necesitáis mas informacion, no habría problema.

Muchas gracias, un saludo.

Kise

Link to comment
Share on other sites

Hola Toldeman, kises.

Mientras nuestro amigo termina de confeccionar el ejemplo, subo una UDF que creo hace lo que él quiere:

Public Function ElegirParejas(ByRef Datos As Variant) as Variant
    Dim lngResultado As Long
    Dim lngDatos As Long
    Dim lngInicio As Long
    Dim lngFin As Long
    Dim i As Long
    Dim j As Long

    If TypeOf Datos Is Excel.Range Then
        Datos = Application.Transpose(Datos.Columns(1).Value2)
    End If

    lngInicio = LBound(Datos)
    lngFin = UBound(Datos)
    lngDatos = lngFin - lngInicio + 1

    ReDim arrResultado(1 To Application.Combin(lngDatos, 2), 1 To 2)


    For i = lngInicio To lngFin
        For j = i + 1 To lngFin
            lngResultado = lngResultado + 1
            arrResultado(lngResultado, 1) = Datos(i)
            arrResultado(lngResultado, 2) = Datos(j)
        Next j
    Next i

    ElegirParejas = arrResultado

End Function

Puedes usar la UDF en una hoja de cálculo:

=elegirparejas(a1:a5)

o desde VBA:

Sub prueba()

    Dim arr As Variant

    arr = ElegirParejas(Array(1, 2, 3, 4, 5, 6))

End Sub

En ambos casos el resultado será una matriz de 2 columnas x n filas (siendo n el número de parejas resultantes). En tu ejemplo combin(5,2) el resultado es 10 parejas (filas).

Para usarla en una hoja de cálculo, ya que la función devuelve una matriz, debes seleccionar primero un área con el número esperado de celdas, en tu caso un área de 2 columnas x 10 fila e ingresas la fórmula con Ctrl+Mayús+Intro (ctrl+shift+enter) y te dará las parejas.

No sobra mencionarlo, en Excel tienes la función COMBINAT para saber el número de combinacioens posibles, por ejemplo, =combinat(5;2) te da como resultado 10, que son las parejas posibles con 5 personas.

Book1.xls

Link to comment
Share on other sites

Guest Cacho R

¿Y, kises?...

¿Te ha sido de utilidad "algo" de lo que te hemos sugerido?...

Saludos para todos.

Cacho.

Link to comment
Share on other sites

Guest Cacho R

Doce días de falta de participación del generador de la consulta son "muchos días de falta de participación": ¿Convendría cerrarla?, ¿No?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy