Tras la actualización de Excel para Mac del 16 de abril, muchos usuarios descubrieron que en las tablas dinámicas desaparecieron los filtros de texto “Contiene” y “No contiene”, mostrando solo filtros de fecha/tiempo. Aquí explico por qué ocurre, cómo diagnosticarlo y qué soluciones prácticas aplicar hoy mismo.
Resumen de la incidencia
Al abrir el menú de filtros de un campo de tabla dinámica que debería ser de texto (etiquetas de fila, columna o filtro de informe), en lugar de ver las opciones habituales de Filtros de etiqueta —entre ellas Contiene y No contiene— el menú muestra filtros orientados a fechas (p. ej., Ayer, Última semana, Entre…). Las vistas antiguas que ya tenían aplicado “Contiene” pierden esa modalidad si se toca el filtro.
- Situación actual: comportamiento consistente con un bug introducido en la compilación del 16 de abril de Excel para Mac. Se reproduce en diferentes equipos y perfiles. En versiones previas, el filtro funciona con normalidad.
- Alcance: tablas dinámicas basadas en orígenes donde Excel infiere o convierte el campo como fecha/tiempo. Afecta tanto a tablas dinámicas nuevas como a algunas existentes si se edita el filtro.
- Impacto: imposibilidad de usar “Contiene/No contiene” desde el menú de filtros de etiqueta estándar.
Síntomas y señales claras
- El menú contextual del campo ofrece categorías como Filtros de fecha, pero no Filtros de etiqueta.
- Valores que parecen fechas (como “03-04-24” o “2024/04/03”) gatillan filtros de tiempo.
- Si una tabla dinámica antigua tenía “Contiene” aplicado y editas el filtro, al volver a abrirlo desaparece la opción y se sustituyen por filtros de fecha.
- En otras apps o versiones (o al abrir el mismo libro en Windows) el menú sí muestra “Contiene/No contiene”.
Cómo reproducir el fallo
- Crea una tabla con un campo de texto que incluya cadenas como “03-04-24 oferta”, “abril-16 promo” o códigos con guiones.
- Genera una tabla dinámica y coloca ese campo como etiqueta de fila o filtro.
- Abre el desplegable de filtros del campo. Verás filtros de fecha, no de etiqueta; “Contiene/No contiene” no aparecen.
Por qué ocurre
Excel determina el tipo de datos de cada campo y, si lo reconoce como fecha/tiempo, la UI de la tabla dinámica prioriza filtros temporales. La compilación del 16 de abril introduce un comportamiento por el que ciertos patrones textuales (p. ej., “03-04-24”, “23/07”, “2024-04”) o incluso algunos códigos mixtos se tratan como fechas aunque el origen sea texto. De ahí que “Contiene/No contiene” desaparezcan de la interfaz de filtros del campo en la tabla dinámica.
Soluciones y atajos que funcionan ahora mismo
Usar la barra de búsqueda del filtro para simular “Contiene”
Es la alternativa más rápida cuando necesitas una coincidencia puntual:
- Abre el desplegable del campo en la tabla dinámica.
- Escribe la cadena deseada en el cuadro de búsqueda.
- Haz clic en Seleccionar todo para marcar solo los elementos encontrados.
- Confirma el filtro.
Efecto práctico: filtra como si fuese “Contiene”.
Ventajas: cero cambios en el origen; acción inmediata. Limitaciones: proceso manual si debes aplicar muchos criterios diferentes o combinaciones complejas.
Crear una columna auxiliar en el origen de datos
Es la solución más sólida para procesos repetibles y criterios complejos. Añade una columna calculada que indique “Sí/No” según si hay coincidencia. Luego filtra por esa columna en la tabla dinámica.
Fórmulas ejemplo (español):
/ No sensible a mayúsculas/minúsculas /
=SI(ESNUMERO(HALLAR("texto",[@Campo])),"Sí","No")
/\ Sensible a mayúsculas/minúsculas \/
\=SI(ESNUMERO(ENCONTRAR("texto",\[@Campo])),"Sí","No")
/\ Varios términos (O) \/
\=SI(O(ESNUMERO(HALLAR("A",\[@Campo])),ESNUMERO(HALLAR("B",\[@Campo]))),"Sí","No")
/\ Varios términos (Y) \/
\=SI(Y(ESNUMERO(HALLAR("A",\[@Campo])),ESNUMERO(HALLAR("B",\[@Campo]))),"Sí","No")
/\ No contiene \/
\=SI(NO(ESNUMERO(HALLAR("texto",\[@Campo]))),"Sí","No")
Equivalentes en inglés:
=IF(ISNUMBER(SEARCH("text",[@Field])),"Yes","No")
=IF(ISNUMBER(FIND("Text",[@Field])),"Yes","No")
Tras agregar la columna:
- Actualiza la tabla dinámica (Datos → Actualizar todo).
- Usa el nuevo campo como Filtro o como etiqueta y filtra por “Sí”.
Consejo: si tu configuración regional usa ;
en lugar de ,
, sustituye los separadores en las fórmulas.
Forzar el tipo de datos como texto y recrear/actualizar la tabla dinámica
Si un campo “parece” una fecha, Excel lo tipa como tal. Convierte el origen a texto para recuperar los filtros de etiqueta clásicos:
- Aplica formato Texto al rango/columna antes de rellenarlo.
- Precede los valores con
'
(apóstrofo) para fijarlos como texto. - Usa una columna nueva con
=TEXTO(A2,"@")
y referencia esa columna en la tabla dinámica. - Como alternativa, utiliza Texto en columnas (Datos) y fuerza el tipo Texto para la columna afectada.
Después, pulsa Datos → Actualizar todo o crea una tabla dinámica nueva desde el origen ya textual.
Evitar tocar filtros que aún funcionan
Si tienes vistas que siguen filtrando como necesitas, duplica la hoja o el archivo y evita editar ese filtro hasta que llegue el parche. Es un salvavidas mientras estandarizas el origen.
Volver temporalmente a una versión previa o cambiar de canal
Si tu organización lo permite, en Ayuda → Buscar actualizaciones (Microsoft AutoUpdate) puedes cambiar de canal o reinstalar una compilación estable anterior donde el filtro funcionaba. Evalúa con TI las implicaciones de soporte y seguridad.
Reportar el problema a Microsoft
Desde el icono de Comentarios (arriba a la derecha), elige No me gusta algo y describe el fallo. Cuantos más reportes, mayor prioridad.
Comparativa rápida de soluciones
Método | Cuándo usar | Esfuerzo | Pros | Contras |
---|---|---|---|---|
Barra de búsqueda del filtro | Necesidades puntuales | Bajo | Rápido, sin tocar el origen | Manual para muchos criterios; no persistente |
Columna auxiliar | Procesos recurrentes, criterios complejos | Medio | Reutilizable, auditable, automatizable | Requiere mantener fórmula y refrescar |
Forzar tipo texto | Campos mal tipados como fecha | Medio | Recupera “Contiene/No contiene” nativos | Puede afectar ordenación y cálculos numéricos |
No tocar filtros que funcionan | Vistas críticas ya establecidas | Bajo | Evita romper la vista actual | No soluciona el origen del problema |
Volver a versión previa | Entornos controlados | Medio/Alto | Restaura la funcionalidad original | Riesgo de incompatibilidades y políticas de TI |
Guía paso a paso con columna auxiliar
Supón un origen con la columna Descripción y quieres simular “Contiene = ofert”.
- Convierte el origen en Tabla (Insertar → Tabla) y nómbrala (p. ej., tVentas).
- Añade la columna Coincide con la fórmula:
=SI(ESNUMERO(HALLAR("ofert",[@Descripción])),"Sí","No")
- Actualiza la tabla dinámica (Datos → Actualizar todo).
- Arrastra Coincide al área Filtros de la tabla dinámica y filtra por Sí.
Variantes útiles:
- Celda de criterio: coloca el texto buscado en
$E$1
y usa:=SI(ESNUMERO(HALLAR($E$1,[@Descripción])),"Sí","No")
- Múltiples palabras (O):
=SI(O(ESNUMERO(HALLAR("promo",[@Descripción])), ESNUMERO(HALLAR("descuento",[@Descripción]))),"Sí","No")
- Excluir términos:
=SI(Y(ESNUMERO(HALLAR("ofert",[@Descripción])), NO(ESNUMERO(HALLAR("test",[@Descripción])))),"Sí","No")
Forzar texto sin perder información
Si la columna contiene valores que Excel interpreta como fecha, asegúrate de preservarlos como texto:
- Si te basta con ver el valor literal, usa:
=TEXTO(A2,"@")
- Si necesitas mantener números y texto, crea dos columnas: una para cálculo (numérica) y otra para filtro (texto).
- Evita cambiar el tipo en medio de la cadena ETL; hazlo en el origen o al principio del flujo (Power Query, al importar CSV, etc.).
Buenas prácticas para prevenir el problema
- Define explícitamente el tipo de datos del origen y mantenlo consistente en cada actualización.
- Evita formatos ambiguos como “03-04-24” si son códigos; usa prefijo (p. ej., “C-03-04-24”) o separadores distintos.
- Documenta reglas de nombres y estandariza mayúsculas/minúsculas.
- Congela vistas críticas duplicando hojas cuando entregues informes a terceros.
- Automatiza criterios con columna auxiliar y celda de parámetro para reducir ediciones en el filtro de la tabla dinámica.
Checklist de diagnóstico rápido
- ¿El campo muestra filtros de fecha? Probable tipado como fecha.
- ¿El origen es texto pero contiene patrones con guiones o barras? Excel podría inferir fecha.
- ¿Al recrear la tabla dinámica desde un origen forzado a texto vuelve “Contiene”? Si sí, confirma la causa.
- ¿Una columna auxiliar resuelve el caso? Adóptala como estándar hasta que llegue el parche.
Preguntas frecuentes
¿Por qué en el autofiltro de una tabla normal sí me aparece “Contiene” y en la tabla dinámica no?
Porque la tabla dinámica impone su propia UI de filtrado basada en el tipo de campo. Si Excel lo interpreta como fecha, te ofrecerá filtros de tiempo en la dinámica, aunque el origen sea texto.
¿Puedo usar comodines?
En la barra de búsqueda del filtro no los necesitas; busca por subcadena. En la columna auxiliar puedes simularlos con HALLAR
o ENCONTRAR
(“Contiene” ≈ subcadena encontrada).
¿Afecta a segmentaciones?
Las segmentaciones filtran valores discretos; no tienen operador “Contiene”. Sin embargo, su caja de búsqueda te permite encontrar elementos por subcadena, útil como apoyo visual.
¿Perderé el orden numérico si fuerzo texto?
Para propósito de filtrado, sí podrías perder orden numérico natural. Mantén una columna numérica paralela para cálculos/ordenaciones y otra textual para filtros.
¿Cuándo conviene volver a una versión previa?
Solo si tu operación depende fuertemente de esos filtros y TI lo aprueba. Evalúa riesgos de seguridad y compatibilidad.
Ejemplo práctico listo para copiar
Imagina la tabla tTickets con las columnas ID, Asunto, Notas. Quieres filtrar asuntos que contengan “incidencia” pero no “prueba”.
=SI(Y(ESNUMERO(HALLAR("incidencia",[@Asunto])),
NO(ESNUMERO(HALLAR("prueba",[@Asunto])))),"Sí","No")
Después, refresca la tabla dinámica y filtra Coincide = Sí. Si “Asunto” a veces se interpreta como fecha por valores tipo “24/04”, añade una columna AsuntoTxt con:
=TEXTO([@Asunto],"@")
y usa AsuntoTxt en tus filtros y etiquetas.
Notas importantes y recordatorios
- Cuando el campo está tipado como fecha, Excel solo mostrará filtros de fecha. Para ver “Contiene/No contiene” nativos, el campo debe ser texto.
- Tras modificar el origen de datos o el tipo, recuerda Actualizar (Datos → Actualizar todo) o recrear la tabla dinámica.
- Si compartes el libro, documenta el criterio en una celda visible y protege fórmulas de la columna auxiliar.
Conclusión
La desaparición de “Contiene/No contiene” en tablas dinámicas de Excel para Mac tras la actualización del 16 de abril es consistente con un bug que fuerza filtros de fecha cuando el campo se interpreta (a veces indebidamente) como temporal. Mientras llega la corrección, tienes tres rutas seguras: usar la barra de búsqueda para casos puntuales, introducir una columna auxiliar para flujos repetibles o forzar el tipo texto en el origen y reconstruir/actualizar la tabla dinámica. Como medidas de contención, evita modificar filtros que funcionan, considera volver temporalmente a una compilación estable y reporta el problema para acelerar su resolución.
Apéndice: plantillas de fórmulas útiles
/ Plantilla base (insensible a mayúsculas) /
=SI(ESNUMERO(HALLAR("criterio",[@Campo])),"Sí","No")
/\ Sensible a mayúsculas/minúsculas \/
\=SI(ESNUMERO(ENCONTRAR("Criterio",\[@Campo])),"Sí","No")
/\ Criterio en celda (\$E\$1) \/
\=SI(\$E\$1="","",SI(ESNUMERO(HALLAR(\$E\$1,\[@Campo])),"Sí","No"))
/\ Varios términos (lista en RangoPalabras\[Palabra]) — requiere 365 \/
\=SI(SUMA(--ESNUMERO(HALLAR(RangoPalabras\[Palabra],\[@Campo])))>0,"Sí","No")
/\ No contiene ninguno de los términos de la lista \/
\=SI(SUMA(--ESNUMERO(HALLAR(RangoPalabras\[Palabra],\[@Campo])))=0,"Sí","No")
Tip final: si trabajas con CSV, define el tipo texto al importar; evita que Excel convierta códigos con guiones o barras en fechas. Estándar + columna auxiliar = filtros previsibles, reproducibles y auditables.