Encontrar palabras comunes entre dos textos con fórmulas
Reto de LinkedIn que un miembro trae al grupo: dadas dos columnas con frases, encontrar las palabras que aparecen en ambas. La comunidad despliega un arsenal de enfoques con funciones modernas.
Enfoque "perpendicularidad" (Leo): dividir un texto por filas y el otro por columnas, comparar con = para crear una matriz de coincidencias, y filtrar los aciertos. Dos variantes:
Con ENCOL ignorando errores:
``
=MAP(A2:A6; B2:B6; LAMBDA(a; b;
LET(D; DIVIDIRTEXTO;
c; D(a;; " ");
UNIRCADENAS(" - ";; ENCOL(SI(c = D(b; " "); c; z); 2))
)
))
`
Con REPETIR (más elegante):
`
=MAP(A2:A6; B2:B6; LAMBDA(a; b;
LET(D; DIVIDIRTEXTO;
c; D(a;; " ");
UNIRCADENAS(" - ";; REPETIR(c; c = D(b; " ")))
)
))
`
Con BYROW + SUMA + ENFILA (Alejandro): construye una matriz booleana comparando cada palabra, suma por filas para identificar coincidencias, y filtra con ENFILA:
`
=MAP(A2:A6; B2:B6; LAMBDA(_a; _b;
UNIRCADENAS(" - "; 1;
ENFILA(
SI(BYROW(N(ENCOL(DIVIDIRTEXTO(_a; " ")) = DIVIDIRTEXTO(_b; " ")); SUMA);
ENCOL(DIVIDIRTEXTO(_a; " ")); z);
2
)
)
))
`
Con FILTRAR + COINCIDIRX (Gerson): filtra las palabras del primer texto quedándose solo con las que existen en el segundo, usando COINCIDIRX como test de existencia:
`
=MAP(A2:A6; B2:B6; LAMBDA(x; y;
LET(D; DIVIDIRTEXTO;
a; D(x; " ");
UNIRCADENAS(" - ";; FILTRAR(a; SI.ND(COINCIDIRX(a; D(y; " "));)))
)
))
``
Cada solución ilustra una filosofía distinta: comparación matricial (Leo), iteración por filas (Alejandro) y filtrado directo (Gerson). Un caso perfecto para ver cómo el mismo problema se puede atacar desde ángulos muy diferentes.
El reto
Un reto que empieza en LinkedIn y aterriza en el grupo: dadas dos columnas de frases, encontrar las palabras que aparecen en ambas. La comunidad respondió con un pequeño arsenal de funciones modernas, cada una con una filosofía distinta.
Enfoque 1: "perpendicularidad" (Leo)
La técnica estrella: dividir un texto por filas y el otro por columnas, de modo que al compararlos con = se genera una matriz de coincidencias. Donde hay cruce, esa palabra está en los dos textos. Leo lo envuelve en MAP para aplicarlo fila a fila:
=MAP(A2:A6; B2:B6; LAMBDA(a; b;
LET(D; DIVIDIRTEXTO;
c; D(a;; " ");
UNIRCADENAS(" - ";; REPETIR(c; c = D(b; " ")))
)
))DIVIDIRTEXTO parte cada frase en palabras; una versión desborda por columnas y la otra por filas. REPETIR(c; c = D(b;" ")) deja solo las palabras que coinciden, y UNIRCADENAS las une con un separador. Hay una variante equivalente con ENCOL que ignora los cruces fallidos.
Enfoque 2: BYROW + SUMA (Alejandro)
Alejandro parte de la misma matriz booleana, pero la resuelve por filas: compara cada palabra del primer texto con todas las del segundo, suma por filas con BYROW y SUMA para saber cuáles tienen al menos una coincidencia, y filtra el resultado con ENFILA. Es la lectura "cuenta cuántas veces aparece cada palabra en el otro texto y quédate con las que suman algo".
Enfoque 3: FILTRAR + COINCIDIRX (Gerson)
El más directo conceptualmente. Gerson divide el primer texto en palabras y usa COINCIDIRX como test de existencia contra el segundo: si la palabra existe, pasa el filtro; si no, SI.ND la descarta:
=MAP(A2:A6; B2:B6; LAMBDA(x; y;
LET(D; DIVIDIRTEXTO;
a; D(x; " ");
UNIRCADENAS(" - ";; FILTRAR(a; SI.ND(COINCIDIRX(a; D(y; " "));)))
)
))COINCIDIRX devuelve la posición si encuentra la palabra; SI.ND convierte los "no encontrado" en algo que FILTRAR descarta. Sin matrices intermedias: filtras directamente por existencia.
Funciones clave
DIVIDIRTEXTO: parte una frase en palabras, y puede desbordar por filas o por columnas según el argumento.MAPyLAMBDA: aplican la lógica a cada par de celdas.REPETIRyENCOL: dejan solo las coincidencias en el enfoque matricial.BYROWySUMA: colapsan la matriz de comparación a un recuento por palabra.FILTRARyCOINCIDIRX: el dúo del enfoque directo, usando la búsqueda como test de existencia.UNIRCADENAS: reensambla las palabras comunes en un texto legible.
Conclusión
Comparación matricial (Leo), iteración por filas (Alejandro) o filtrado directo (Gerson): tres ángulos para el mismo problema. Si buscas brevedad, el enfoque de "perpendicularidad" con REPETIR es de los más elegantes; si buscas claridad, FILTRAR con COINCIDIRX se lee casi como una frase. Es exactamente el tipo de puzzle que la comunidad de Influexcel desmonta cada semana desde varios frentes a la vez.
Más casos con estas funciones
Más contenido de Excel en InflueXcel
- Buscar prefijos de longitud variable en otra columna: BYROW, MAP, REGEX y COINCIDIRX CasoInteresante problema planteado por un miembro: tiene una columna A con ~1.200 referencias de longitud variable y una columna C con ~276 text
- Filtro multicriteria dinámico con LET, FILTRAR y LAMBDA CasoHéctor comparte con la comunidad una fórmula avanzada para filtrar una tabla de productos/servicios por múltiples criterios opcionales (clav
- Por qué BYROW y ENCOL solo devuelven una columna y cómo solucionarlo CasoInteresante problema técnico planteado por un miembro de la comunidad: aplica DIVIDIRTEXTO a una columna creada con ENCOL esperando obtener
- Eliminar celdas vacías al concatenar con DIVIDIRTEXTO y BYROW CasoJuan plantea lo que parece una duda sencilla: tiene filas con valores y celdas vacías intercaladas, y necesita concatenar solo los valores n
- Filtrar filas con todos los valores a cero: 4 enfoques con FILTRAR y BYROW CasoJuan tiene una tabla grande donde muchas filas contienen solo ceros y necesita filtrarlas para quedarse solo con las que tienen datos reales
- Filtrar con múltiples condiciones usando matrices booleanas y BYROW CasoInteresante problema planteado por un miembro sobre cómo filtrar datos que cumplan varias condiciones simultáneas usando operaciones matrici
- Filtrar una tabla por una lista de valores: una LAMBDA propia y su inversa TutorialTe pasan una lista de 30 números de albarán y hay que sacar esas filas de una tabla de miles. Con el autofiltro es marcar casillas una a una
- ¿MAP o BYROW? Descubre cuándo usar cada una Tutorial¿MAP o BYROW? Descubre cuándo usar cada una y cómo estas funciones pueden transformar tu forma de trabajar en Excel. En este vídeo aprenderá
- Validar datos en Excel con máscaras de formato (sin VBA) TutorialValidar que un código, una matrícula o un NIF siguen el formato correcto suele acabar en una macro. No hace falta: con una función personali
- Combinaciones de N elementos tomados de K en K: fórmulas con REDUCE y LAMBDA CasoSebas comparte un archivo con un listado de 11 elementos y necesita generar todas las combinaciones posibles tomados de 2 en 2 (sin repetici