Separar artículos concatenados en filas: 4 enfoques (fórmulas, Power Query y Python)

Caso interesante con cuatro enfoques muy distintos para resolver un mismo problema: una tabla tiene una columna de artículos concatenados con ";" por cada cliente (ej: "Art1; Art2; Art3") y se necesita "explotar" cada artículo en su propia fila, repitiendo el cliente correspondiente.

Leo propone resolverlo con funciones modernas de Excel 365, usando ENCOL para convertir el texto separado en columna y SECUENCIA en horizontal para manejar un número variable de separadores. El truco: donde hay {1\2} se puede sustituir con SECUENCIA(;20) para más flexibilidad, ya que ENCOL anula las columnas vacías automáticamente.

Gerson Pineda aporta un enfoque alternativo con AGRUPARPOR y EXCLUIR, combinando agrupación y filtrado en una sola expresión.

Por el lado de Power Query, Gerson también comparte una solución elegante con una sola transformación:

``
= Table.ExpandListColumn(
Table.TransformColumns(
Origen;
{{"Articulos"; each Text.Split(_; "; ")}}
);
"Articulos"
)
`

Text.Split convierte el texto concatenado en una lista, y Table.ExpandListColumn expande cada elemento en su propia fila.

Y la solución más concisa viene de John con Python en Excel:

`python
xl("B4:C8",1).set_index("Cliente").Articulos.str.split("; ").explode()
`

Una sola línea que lee el rango, indexa por cliente, separa los artículos y los explota en filas.

Cuatro enfoques (fórmulas dinámicas, AGRUPARPOR`, Power Query y Python) para un mismo problema, cada uno con sus ventajas según el contexto y la versión de Excel disponible.

Más contenido de Excel en InflueXcel