Tengo las siguientes dos tablas (acortadas):
A1:A5 - Tabla de datos
URL
shop.samsung.com/au/accessories/mobile-accessories
samsung.com/us/amp/us/smartphones/galaxy-s9
samsung.com/us/appliances/electric-ranges
samsung.com/global/business/semiconductor/minisite/SSD/notice.html
E1:F5 - Tabla de referencia
If Folder Contains Value
mobile-accessories Mobile Accessories
smartphones Mobile Phone
appliances/electric-ranges Cooking Appliance
appliances/refrigerators Semiconductor
Estoy intentando crear una fórmula que observe la tabla de URL, verifique si la cadena tiene una coincidencia parcial en la columna "Si la carpeta contiene" de la tabla de referencia y devuelva el valor. Por ejemplo, si elijo el primer enlace (A2), esperaría que la fórmula devuelva "Accesorios móviles", ya que A2 contiene "accesorios móviles" en la URL.
Sé cómo hacer lo contrario (simplemente haga una búsqueda virtual con un comodín antes/después), pero no puedo encontrar una manera de hacerlo. Cualquier orientación será apreciada
Respuesta1
Sólo me preguntaba sielectrodomésticos/refrigeradoresdebe asignarse aSemiconductorcomo lo has demostrado en tu ejemplo. aunque puede sernegocios/semiconductorespodría asignarse aSemiconductor. Pero eso no es un problema.
En este ejemplo, los datos de la URL de muestra están en A1:A5, la tabla de asignación está en E1:F5. Ahora en B2 coloque la siguiente fórmula y presione CTRL+ SHIFT+ ENTERdesde dentro de la barra de fórmulas para crear una fórmula matricial. La fórmula ahora estará entre llaves para indicar que es una fórmula matricial.
Arrástrelo hacia abajo hasta las filas deseadas.
=IFERROR(INDEX($F$2:$F$5,MAX(IF(ISERROR(SEARCH($E$2:$E$5,A2)),0,ROW($E$2:$E$5))-ROW($F$1))),"No Category")
El IFERROR externo se agrega solo con fines estéticos, solo para mostrar el texto "Sin categoría" si no se encuentra ninguna coincidencia. Si su versión de EXCEL es anterior a 2007, puede eliminarla. En lugar del mensaje "Sin categoría", la fórmula simplemente devolverá un error para tales casos o, alternativamente, también puede usar una combinación de construcción IF(ISERROR()).