excel - total - funcion indice y coincidir con valores repetidos
Excel-Hacer coincidir subcadena de la lista de opciones-INDEX, MATCH y FIND usados juntos (2)
Me gustaría buscar un título de película específico dentro de una lista de títulos de video, buscar MATCH y usar Index para devolver su descripción. Sé que esto se puede hacer con una búsqueda de texto en un filtro a través de la Columna A, pero me gustaría hacerlo con una fórmula.
** EDIT: Creo que la primera versión de esta pregunta me hizo parecer que solo tengo algunas películas y títulos. Estas estadísticas pueden ayudar:
Column A: 2,000 Total Video Titles (movie titles can appear more than once)
Column E: 50 Movie Titles
Column F: 50 Movie Descriptions
Ejemplo:
A B
Title Description
Spiderman Review and BTS
Best Dark Knight clips
Bloopers: Liar Liar
Interviews with The Departed cast
..1,996 más títulos de videos
En otras dos columnas, tengo los títulos y las descripciones:
E F
Title Description
Dark Knight Dark Knight Description
Spiderman Spider Man Description
The Departed The Departed
Liar Liar Liar Liar Description
... 46 títulos de películas y descripciones más
EDITAR: Agregar más títulos de video:
Row A (video titles) B (description)
48 Titanic romantic scenes
49 Dumb and Dumber bloopers
50 BTS Schindler''s List
51 Story behind Get Out movie
52 Who are the X-Men?
Dentro de B2, puedo escribir
=if(isnumber(find("Spiderman",A2)),index(F2:F4,match("Spiderman",E2:E4,0)))
Luego puedo repetir esta fórmula para cada película, pero la lista completa contiene más de 50 películas hasta el momento. Me gustaría crear algo como esto:
{Index($F$2:$F$4,match(TRUE,isnumber(find($E$2:$E$4,A2)),0))}
De esta manera, busco A2 para ver si FIND devuelve CUALQUIER coincidencia de la lista, luego devuelvo la descripción usando INDEX. Pero esta fórmula no está funcionando. ¿Qué hice mal?
Dos ideas,
1) Tener una columna auxiliar en la column B
y obtener la descripción en la column C
Fórmula en la column B
,
=MATCH("*"&E2&"*",A:A,0)
Fórmula en la column C
,
=INDEX(E:F,MATCH(ROW(),B:B,0),2)
2) Hacerlo al revés con una simple fórmula de igualación de index
,
Fórmula en la column G
(título original),
=INDEX(A:A,MATCH("*"&E2&"*",A:A,0),1)
En mi opinión, esto no se puede resolver solo con la fórmula.
El uso de VBA podría hacer.
Primero, agrega un nuevo módulo.
Segundo, agregue la función a continuación:
Function GetRow(xCell As Range, xRange As Range)
i = 2
Do
If Cells(i, xRange.Column).Value = "" Then
Exit Do
ElseIf InStr(1, Cells(xCell.Row, xCell.Column).Value, Cells(i, xRange.Column).Value) > 0 Then
GetRow = Cells(i, xRange.Column + 1).Value
End If
i = i + 1
Loop
End Function
En tercer lugar, agregue la fórmula en todas las filas en la columna B:
=GetRow($A7; E:E)