Saltar al contenido

combinaciones de 5 trabajadores agrupados de 2 en 2 sin repeticion


kises

Recommended Posts

publicado

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

publicado

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

Invitado Cacho R
publicado

¿Y, kises?...

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

Saludos para todos.

Cacho.

Invitado Cacho R
publicado

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?

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.