Se ha escrito bastante sobre el tema de obtener, a partir de una lista, posibles combinaciones sin repetición.
En este artículo emplearemos la función List.TransformMany para llegar a nuestro listado de combinaciones... en este caso, sencillo, tomados de dos en dos...
Veamos nuestro código creado en una Consulta en blanco dentro del editor de Power Query:
La clave es el uso de List.Transformmany que se encarga de recorrer cada elemento de la lista del primer argumento (nuestra lista de letras {"A","B","C","D","E","F"} ), sobre cada elemento de la lista del segundo argumento (la misma lista de letras{"A","B","C","D","E","F"} ).
El tercer argumento realiza el proceso de transformación, donde procedemos a ordenar alfabéticamente ambos elementos en primer lugar, lo que nos facilitará la etapa posterior de eliminar 'duplicados'.
En este tercer argumento, además, aplicamos una condición para dejar fuera aquellos pares transformados con elementos iguales
:OOO
En este artículo emplearemos la función List.TransformMany para llegar a nuestro listado de combinaciones... en este caso, sencillo, tomados de dos en dos...
Veamos nuestro código creado en una Consulta en blanco dentro del editor de Power Query:
let //Nuestra lista de elementos a combinar dos a dos Lista={"A","B","C","D","E","F"}, //para generar las combinaciones posibles //excluyendo la de dos elementos iguales Combinaciones = List.TransformMany( Lista, (dos)=> Lista, (uno, dos)=> let orden=List.Sort({uno,dos}) in if orden{0}=orden{1} then null else orden{0} & " | " & orden{1} ), //List.Distinc se encarga de eliminar combinaciones repetidas... SinRepeticion=List.Distinct(List.RemoveNulls(Combinaciones)) in SinRepeticion
La clave es el uso de List.Transformmany que se encarga de recorrer cada elemento de la lista del primer argumento (nuestra lista de letras {"A","B","C","D","E","F"} ), sobre cada elemento de la lista del segundo argumento (la misma lista de letras{"A","B","C","D","E","F"} ).
El tercer argumento realiza el proceso de transformación, donde procedemos a ordenar alfabéticamente ambos elementos en primer lugar, lo que nos facilitará la etapa posterior de eliminar 'duplicados'.
En este tercer argumento, además, aplicamos una condición para dejar fuera aquellos pares transformados con elementos iguales
:OOO
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.