Tengo una hoja de cálculo de Excel con una lista de seminarios y clases que los estudiantes han tomado que (cuando se resumen) se ve así:
(A)___ClassName________|(B)_________Tags____________|
Astrobiology | astro, bio, sci |
Extremophiles | chem, bio, sci |
Human Space Habitation | astro, bio, med, engi, sci | etc.
Me gustaría poder extraer etiquetas individuales de esto y obtener un recuento asociado para cada etiqueta en otra hoja, de modo que para lo anterior:
__Tag__|_Frequency_|
astro | 2 |
bio | 3 |
sci | 3 |
chem | 1 | etc.
He estado tratando de hacer esto solo usando funciones, y puedo obtener una lista única de cadenas de etiquetas (por ejemplo, "astro, bio, sci") usando
{=INDEX(User1!Tags,MATCH(0,COUNTIF($A$1:A1,User1!Tags),0))}
pero no he podido extraer las etiquetas con éxito. Me gustaría mantener el archivo "macro advertencia" sin errores, si es posible, pero soy nuevo en sobresalir, así que si estoy haciendo esto de la manera incorrecta, ¡hágamelo saber!
es posible?
Copie su columna de etiquetas en una nueva hoja y luego:
C1
) y se define con referencias fijas en todo (es decir, signos '$').Es posible que el primer paso no sea obligatorio, pero está destinado a eliminar espacios que de otro modo interferirían con el conteo.
fuente
Así que esta pregunta me intrigó y quise descubrir cómo resolverlo con una macro. Sé que dijiste que te gustaría evitar una macro, pero no creo que esto se pueda hacer solo con una función.
El siguiente código recorre la celda B2: B25 (esto se puede editar o cambiar a un parámetro o a las celdas seleccionadas, pero esto parece más fácil por ahora). Utiliza una clase personalizada llamada KeyValue para agregar el nombre de la etiqueta y el número de ocurrencias. Esto podría mejorarse con el uso de un objeto Diccionario pero eso requiere otros complementos. Separa las etiquetas delimitadas por comas de cada celda y cuenta la frecuencia. Luego genera esta lista en las dos primeras columnas de la segunda hoja de trabajo.
Para agregar el código debe hacer lo siguiente. Primero en el Libro de trabajo, debe habilitar la barra de herramientas del Desarrollador y desde allí hacer clic en el
Visual Basic
botón. Luego agregue un nuevo Módulo de clase y asígnele un nombreKeyValue
. Pega el siguiente código:Luego, en la Hoja 1, agregue el siguiente código:
Haga clic en el botón Ejecutar para que cuente las etiquetas.
fuente