Cómo combinar un conjunto de datos para crear combinaciones únicas [duplicado]

0

Esta pregunta ya tiene una respuesta aquí:

En primer lugar, no tengo experiencia con scripts de Excel, solo fórmulas básicas. He visto esta otra pregunta en SU ​​pero no estoy seguro de si eso es exactamente lo que necesito o cómo adaptarlo a mis necesidades.

Esto es lo que estoy intentando:

Tengo una hoja de cálculo con 3 columnas y 10 filas, cada una de ellas con valores únicos. Por ejemplo:

Column A
--------
White 
Black 
Blue 
etc (until 10 items)

Column B
--------
USA
Canada 
Mexico 
etc (until 10 items)

Column C
--------
English
French 
Spanish 
etc (until 10 items)

Entonces en total hay 30 elementos. Me gustaría crear una nueva tabla con esas 3 columnas y 1000 filas , donde cada fila tendría una combinación única de esos 3 elementos (por lo que 2 filas nunca tendrán los mismos 3 elementos). Solo para aclarar, el orden de las columnas debe ser el mismo (A, B, C) y, por supuesto, los elementos de una columna siempre permanecen en esa columna.

Ejemplos de filas resultantes:

White | USA | English
White | USA | French
Black | USA | English
Black | Canada | English
... up to 1000 combinations

¡Cualquier ayuda sería apreciada!

EDITAR

El punto de esta pregunta es: 1. Entender si la solución proporcionada en la respuesta vinculada se aplica a mi caso 2. Saber si hay otras formas de resolver esto que no sean scripting (fórmulas, herramientas de Excel, etc.)

Albert
fuente
Entonces, ¿básicamente quieres que todas las permutaciones sean correctas?
Eric F
Es la misma pregunta. Si no comprende la respuesta, comience con una pregunta, pero haga la pregunta específica a qué se está quedando atrapado mientras implementa la solución sugerida (en lugar de simplemente preguntar lo mismo nuevamente y simplemente decir que no comprende la respuesta). Incluya su investigación más allá de simplemente vincular una pregunta. IE: ¿Qué intentaste ya? ¿Dónde exactamente te quedas atascado? Si solo desea una respuesta más nueva / diferente sobre la pregunta existente, coloque una recompensa para llamar la atención.
Ƭᴇcʜιᴇ007
@Eric F correcto
Albert
@ TECHIE007 Bueno, menciono en mi Q que no tengo experiencia en el uso de secuencias de comandos, por lo que esa respuesta no me ayuda mucho. Esperaba que haya otras formas de hacer esto que no impliquen secuencias de comandos (como fórmulas, alguna herramienta que no conozco en Excel, etc.). Esa pregunta también indica que tiene 3 tablas diferentes con la información en una columna, solo tengo una tabla con 3 columnas. Entonces, como puede ver, para un usuario experto de Excel, esa podría ser la misma pregunta obvia, pero para usuarios no experimentados que podría no ser tan obvio. Así que aquí tienes 2 razones diferentes por las que creo que mi pregunta es válida.
Albert
¿Puedes aclarar de dónde obtienes tu cifra de 1000? Si, como usted dice, los "elementos de una columna siempre permanecen en esa columna", ¿eso no da como resultado un número total de posibilidades de solo 100, no 1000?
XOR LX

Respuestas:

2

En la respuesta a continuación, supongo que sus datos iniciales están en las celdas A1: C10 y no tienen encabezados. La solución no usa secuencias de comandos . Solo se usan fórmulas de Excel.

  1. Ingrese la siguiente fórmula =MOD((ROW()-1),10)+1en la celdaD1
  2. Entrar =MOD(INT((ROW()-1)/10),10)+1en la celdaE1
  3. Entrar =MOD(INT(INT((ROW()-1)/10)/10),10)+1en la celdaF1
  4. Seleccione las celdas D1:F1y arrástrela hacia la fila 1000 para llenar el área D1:F1000con combinaciones únicas de índices.
  5. Entrar =INDEX(A$1:A$10,D1)en la celdaG1
  6. Seleccione la celda G1y arrástrela hacia la derecha a la celdaI1
  7. Seleccione las celdas G1:I1y arrástrela hacia la fila 1000 para llenar el área G1:I1000con combinaciones únicas de datos iniciales.

Explicación:

Las fórmulas en las celdas D1, E1 y F1 calculan el número de centésimas, décimas y unidades en el número de fila actual (el número de fila se ajusta en -1). Esto proporciona una variedad de índices únicos. La función INDEX (range, row_num) devuelve el valor del rango dado el número de fila.

Avsek
fuente
@Awsek muchas gracias por esto, ¡lo intentaré tan pronto como pueda!
Albert
@Awsek ¡FUNCIONA! muchas gracias por su ayuda, realmente lo aprecio :)
Albert