Soy un novato en las hojas de cálculo, así que espero que me perdones si hago una pregunta súper obvia.
¿Es posible usar etiquetas en Excel / Google Spreadsheet? Estoy creando una hoja de cálculo para registrar todos los artículos y libros que estoy leyendo. Digamos que estoy leyendo "Yo, Claudio". Quiero darle estas etiquetas: historia, ficción, biografía, discapacidad, política, drama. Entonces, si quiero mostrar todos los artículos / libros etiquetados con "política", tal vez pueda buscar / mostrar / pivotar con esa etiqueta.
Quizás preferiblemente, las etiquetas deben estar todas en una celda con cada palabra separada por una coma. Si cada palabra estuviera en una celda propia, creo que la mesa sería realmente desordenada.
También estoy abierto a otras soluciones de etiquetado.
¡Gracias!
fuente
Respuestas:
Hasta donde sé, no hay características integradas que puedan analizar y resumir etiquetas separadas por comas en Excel. Por supuesto, puede crear su propia solución con funciones de hoja de trabajo y un poco de VBA. Aquí hay una solución rápida para hacer esto.
Paso 1 : Presione Alt+ F11para abrir el panel del editor VBA en Excel. Inserte un nuevo módulo y péguelo en este código para una función personalizada.
Esta función le permitirá crear listas separadas por comas para resumir los datos de etiqueta que tiene.
Paso 2 : en una hoja de trabajo, ingrese en una celda (H2 en el ejemplo a continuación) la etiqueta que desea buscar. En la celda a la derecha, ingrese la siguiente fórmula presionando Ctrl+ Shift+ Enter.
Al presionar Ctrl+ Shift+ Enter, está ingresando la fórmula como una fórmula de matriz. Aparecerá rodeado por
{...}
en la barra de fórmulas. Tenga en cuenta que en la fórmula$B$2:$B$6
está el rango que contiene todas las etiquetas para los elementos enumerados en$A$2:$A$6
.EDITAR:
si no le importa que sus coincidencias aparezcan en una columna en lugar de en una lista en una celda, puede devolver coincidencias para las etiquetas utilizando solo las funciones de la hoja de trabajo.
Donde sus títulos se encuentran en
Column A
, las etiquetas están enColumn B
, y la etiqueta que está buscando está enH2
, puede utilizar la siguiente fórmula de matriz enI2
y llenar hacia abajo tanto como sea necesario:La fórmula funciona formando primero una matriz de números en función de si las etiquetas de cada fila contienen el término de búsqueda. Si se encuentra una coincidencia, el número de fila se almacena en la matriz. Si no se encuentra, 2000000 se almacena en la matriz. A continuación, la
SMALL(<array>,ROW()-1)
parte de la fórmula devuelve elROW()-1
valor más pequeño de la matriz. A continuación, este valor se pasa como un argumento de índice a laINDEX()
función, donde se devuelve el valor en ese índice en la matriz de títulos. Si se pasa un número mayor que el número de filas en la matriz de títulosINDEX()
como argumento, se devuelve un error. Como 2000000 se pasa como argumento cuando no se encuentran coincidencias, se devuelve un error. LaIFERROR()
función luego regresa""
en este caso.Es importante comprender cómo
ROW()
se usa en esta fórmula. Si desea mostrar su lista de resultados comenzando en una fila diferente, deberá ajustar el segundo argumento de laSMALL()
función para que devuelva el primer valor más pequeño de la matriz. Por ejemplo, si su lista de resultados comienza en la Fila 1 en lugar de la Fila 2, usaría enSMALL(...,ROW())
lugar deSMALL(...,ROW()-1)
.Además, si su lista de títulos y etiquetas no comienza en la Fila 1, también deberá ajustar la fórmula. El segundo argumento de la
IF()
función debe ajustarse para que una coincidencia en la primera fila de sus datos devuelva 1. Por ejemplo, si su lista de títulos comienza en la Fila 2 en lugar de la Fila 1, necesitará la fórmula para incluir enIF(...,ROW($A$2:$A$7)-1,...)
lugar deIF(...,ROW($A$1:$A$6),...)
.fuente
CONCATENATE
función en Excel no puede tomar una matriz como argumento (solo lee el primer elemento de la matriz si lo prueba). La función VBA está hecha para crear listas separadas por comas a partir de una matriz de valores.Si bien hacer esto programáticamente funciona bien, en algunos casos encontré que un enfoque manual me funcionó. Usando columnas para etiquetas, puede etiquetar fácilmente un elemento de fila ingresando un 0 en la columna. Luego tiene una fila e ingresa 1s en cada una de las columnas de etiquetas para esa fila (puede colorear esta fila). Luego, cuando ordena por una de las etiquetas, la fila 1s (azul) actúa como un separador. Entre sus resultados filtrados (0s) y todo lo demás (_).
Esto tiene algunas ventajas. 1. No tiene que escribir su etiqueta cada vez. 2. Puede hacer referencias cruzadas fácilmente para verificar si tiene elementos duplicados o similares que se pueden reducir a uno.
fuente
Otra idea:
Use la funcionalidad de filtro incorporada. Filtre por la columna Etiquetas, luego puede buscar filas que contengan una etiqueta determinada.
Una fila con la lista de etiquetas: comedia, horror, romance
aparecería al buscar cualquiera de esas tres etiquetas.
fuente
Mi enfoque que no es VBA es enumerar etiquetas en una columna (digamos la columna H), separando los elementos con comas. A partir de ahí, uso una combinación de "Texto en columnas" y "Eliminar duplicados" para obtener mi lista de etiquetas. Copio más allá de esto en la fila de encabezado de mi hoja principal (en este caso, comenzando en la columna L. Luego, en cada celda debajo de los encabezados de etiquetas individuales, ingrese lo siguiente:
Esto ofrece lo mejor de ambos mundos: la columna de etiqueta (H) es fácil de leer para las personas; Las columnas de etiquetas individuales (con sus 0 y 1) son fáciles de leer para la computadora. Es dinámico si permanece dentro del conjunto de etiquetas dado; de lo contrario, debe agregar su nueva etiqueta a la fila del encabezado y luego copiar sus fórmulas.
A partir de ahí, las tablas dinámicas son tu amigo.
fuente
No me queda claro exactamente cómo desea utilizar las etiquetas. Pero en Google Sheets, puede usar la función SPLIT () para dividir una cadena de etiquetas (delimitadas por espacios, comas o lo que desee) en varias otras celdas, y estoy seguro de que incluso Excel tiene una función que puede buscar un celda para una etiqueta.
fuente