/ / Dividir múltiples entradas separadas por comas de múltiples columnas a nuevas filas con datos únicos en excel macro VBA - vba, excel-vba, excel

Divida varias entradas separadas por comas de varias columnas en nuevas filas con datos únicos en Excel macro VBA: vba, excel-vba, excel

Quiero separar los valores en Excel con datos únicos. Tengo un montón de datos como a continuación.

1 Apple,Orange,Apricot  Fruit,Vegetable  Cat1,Cat2
2 Aubergine,Avocado     Vegetable        Cat2,Cat3,Cat4
3 Banana                Fruit            Cat5

Solo quiero dividir los valores anteriores como los valores divididos a continuación usando Excel VBA. Varias columnas contienen valores separados por comas. Tiene que dividir los valores en nuevas filas con datos únicos.

1 Apple      Fruit      Cat1
1 Apple      Fruit      Cat2
1 Apple      Vegetable  Cat1
1 Apple      Vegetable  Cat2
1 Orange     Fruit      Cat1
1 Orange     Fruit      Cat2
1 Orange     Vegetable  Cat1
1 Orange     Vegetable  Cat2
1 Apricot    Fruit      Cat1
1 Apricot    Fruit      Cat2
1 Apricot    Vegetable  Cat1
1 Apricot    Vegetable  Cat2
2 Aubergine  Vegetable  Cat2
.......................

¿Me puedes ayudar?

Respuestas

1 para la respuesta № 1

Bueno, eso se parece mucho a una tarea para alguien inscrito en un curso de introducción al desarrollo de software.

Tu primer LOOP es tomar la cuerda"Apple, Orange, Apricot", que tiene como máximo 22 caracteres y explota por el COMMA, luego recorre sus elementos. Su segundo LOOP anidado es hacer lo mismo con la cadena "Fruit, Vegetable" que tiene como máximo 17 caracteres y explotarla con el COMMA, luego recorrer sus elementos. Su tercer LOOP anidado anidado es ... usted tiene la idea. Dado que Apple se asigna tanto a Frutas y Vegetales como a Cat1 y Cat2, la salida termina teniendo 4 instancias de Apple. Este tipo de extracción también se conoce como producto cartesiano, donde 1x2x2 = 4.

Por lo tanto, el propósito de esto es enseñarle cómo dividir una cadena en un carácter de coma, luego usar la matriz resultante de cadenas separadas por comas para recorrer una acción.

¿Por qué no hay una recompensa de reputación de 200 puntos en¿esta pregunta? Hmm ... difícil de decir (estoy bromeando). Pero por el lado positivo, es lo suficientemente simple como para que yo pueda responderlo, ¡eso es algo! Que tengas un buen día.