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.
Public Function CCARRAY(rr As Variant, sep As String)
'rr is the range or array of values you want to concatenate. sep is the delimiter.
Dim rra() As Variant
Dim out As String
Dim i As Integer
On Error GoTo EH
rra = rr
out = ""
i = 1
Do While i <= UBound(rra, 1)
If rra(i, 1) <> False Then
out = out & rra(i, 1) & sep
End If
i = i + 1
Loop
out = Left(out, Len(out) - Len(sep))
CCARRAY = out
Exit Function
EH:
rra = rr.Value
Resume Next
End Function
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.
=IFERROR(CCARRAY(IF(NOT(ISERROR(FIND(H2,$B$2:$B$6))),$A$2:$A$6),", "),"No matches found.")
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 en Column B
, y la etiqueta que está buscando está en H2
, puede utilizar la siguiente fórmula de matriz en I2
y llenar hacia abajo tanto como sea necesario:
=IFERROR(INDEX($A$1:$A$6,SMALL(IF(NOT(ISERROR(FIND($H$2,$B$1:$B$6))),ROW($B$1:$B$6),2000000),ROW()-1)),"")
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 el ROW()-1
valor más pequeño de la matriz. A continuación, este valor se pasa como un argumento de índice a la INDEX()
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ítulos INDEX()
como argumento, se devuelve un error. Como 2000000 se pasa como argumento cuando no se encuentran coincidencias, se devuelve un error. La IFERROR()
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 la SMALL()
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 en SMALL(...,ROW())
lugar de SMALL(...,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 en IF(...,ROW($A$2:$A$7)-1,...)
lugar de IF(...,ROW($A$1:$A$6),...)
.