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.)
Respuestas:
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.
=MOD((ROW()-1),10)+1
en la celdaD1
=MOD(INT((ROW()-1)/10),10)+1
en la celdaE1
=MOD(INT(INT((ROW()-1)/10)/10),10)+1
en la celdaF1
D1:F1
y arrástrela hacia la fila 1000 para llenar el áreaD1:F1000
con combinaciones únicas de índices.=INDEX(A$1:A$10,D1)
en la celdaG1
G1
y arrástrela hacia la derecha a la celdaI1
G1:I1
y arrástrela hacia la fila 1000 para llenar el áreaG1:I1000
con 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.
fuente