El mes cerró en 2.014,69 repartidos en doce movimientos de tarjeta, y una línea del resumen se cuestionó: Viajes, 1.624,30, frente a un presupuesto de 1.600,00. Veinticuatro con treinta por encima. No es un escándalo — es el tipo de número que se explica en una frase y se apunta para vigilarlo el mes que viene.
Los viajes de ese mes fueron 1.570,30. Veintinueve con setenta por debajo.
Dos cosas distintas salieron mal y las dos las hizo un solo carácter. Una regla que decía DELTA* se escribió para pillar la aerolínea y pilló una empresa de banda ancha llamada Deltacom, moviendo 89,00 a Viajes. Una regla que decía *CAB* se escribió para pillar los taxis y pilló un pedido de Cabletech, moviendo 143,00 detrás. Y 178,00 de Eurostar no encajaron con ninguna regla, así que no se contaron en ningún sitio. Suma 232,00 que no viajaron, resta 178,00 que sí, y el resumen sale 54,00 alto — justo lo suficiente para cruzar la línea del presupuesto y cambiar el signo de la desviación.
Qué cubre esto.
CONTAR.SI,CONTAR.SI.CONJUNTO,SUMAR.SI,SUMAR.SI.CONJUNTO,COINCIDIR,BUSCARV,HALLAR,ENCONTRAR,IGUAL,ESNUMERO,SUSTITUIRySUMAPRODUCTOfuncionan en todas las versiones de este siglo, y todo lo esencial aquí está construido con ellas.BUSCARX,FILTRAR,LETy las matrices derramadas requieren Microsoft 365 o Excel 2021; donde se usa alguna, al lado va el equivalente antiguo. Los comodines en sí son idénticos en todas las versiones y en todos los idiomas de Excel:*,?y~son los mismos tres caracteres diga lo que diga la interfaz.
1) Doce Líneas y Cinco Reglas
El extracto está en A1:D13. Las reglas que alguien escribió para categorizarlo están en F2:G6:
| Regla (F) | Categoría (G) | Escrita para pillar |
|---|---|---|
DELTA* | Viajes | la aerolínea |
*HOTEL* | Viajes | hoteles |
*CAB* | Viajes | taxis |
*COFFEE* | Comidas | cafeterías |
*BROADBAND* | Telecom | la línea de la oficina |
Cinco reglas, en ese orden, gana la primera que coincide. Esto es lo que le hacen de verdad a las doce filas:
| Fila | Descripción | Importe | Regla que coincidió | Va a | Debería ser |
|---|---|---|---|---|---|
| 2 | DELTA AIR LINES 0062 | 612,40 | DELTA* | Viajes | Viajes |
| 3 | SQ *BLUE BOTTLE | 18,60 | — | nada | Comidas |
| 4 | DELTACOM BROADBAND | 89,00 | DELTA* | Viajes | Telecom |
| 5 | HILTON GARDEN HOTEL | 486,90 | *HOTEL* | Viajes | Viajes |
| 6 | CABLETECH SUPPLIES | 143,00 | *CAB* | Viajes | Oficina |
| 7 | SQ *BLUE BOTTLE COFFEE | 24,15 | *COFFEE* | Comidas | Comidas |
| 8 | GREEN CAB CO | 43,00 | *CAB* | Viajes | Viajes |
| 9 | TST* THE OLIVE TREE | 96,20 | — | nada | Comidas |
| 10 | EUROSTAR 7213 | 178,00 | — | nada | Viajes |
| 11 | PAYPAL *SPOTIFY | 11,99 | — | nada | Suscripciones |
| 12 | AMZN MKTP US*2H4 | 61,45 | — | nada | Oficina |
| 13 | DELTA AIR LINES 0091 | 250,00 | DELTA* | Viajes | Viajes |
Siete filas coincidieron con algo. Cinco no coincidieron con nada, y esas cinco valen 366,24 — el 18% de la tarjeta. Nadie se dio cuenta, porque una fila que no coincide con ninguna regla no da error: da un blanco, y un blanco en una columna de categoría parece una fila a la que alguien todavía no ha llegado.
Un Mes de Tarjeta de Empresa, las Doce Descripciones Sobre Las Que Se Construyen Todas las Fórmulas de Este Artículo
Fecha del movimiento en A2:A13, la descripción tal cual la envió el banco en B2:B13, el importe en C2:C13 y la tarjeta en D2:D13. La columna C suma 2.014,69. Cinco de las doce descripciones llevan un asterisco literal — filas 3, 7, 9, 11 y 12 — porque así es como escriben su cadena de comercio Square, Toast, PayPal y Amazon Marketplace, y cada uno de esos asteriscos es un comodín en cuanto la descripción se usa como criterio de CONTAR.SI. Los viajes reales son las filas 2, 5, 8, 10 y 13, por 1.570,30. La fila 4 es una factura de banda ancha y la fila 6 es un pedido de material, y las dos están a punto de acabar en Viajes por reglas escritas para otras filas.
fxLas celdas con fórmulas están resaltadas en verde
Pasa el mouse sobre las celdas con fórmulas para ver la fórmula y resaltar las celdas referenciadas
🎯 Escenario: Antes de escribir una sola regla, pon =SUMA(C2:C13) en algún sitio y apunta la respuesta: 2.014,69. Cada categorización de este artículo se comprueba contra ese único número, y la comprobación cuesta una celda. Un resumen de categorías que no vuelve a sumar el total del extracto no es un resumen, es una opinión.
2) Las Dos Filas Que Se Fueron a Viajes
Léete DELTA* literalmente, porque Excel lo hace: el texto DELTA, seguido de cualquier número de caracteres cualesquiera, y nada más en la celda. "DELTACOM BROADBAND" es el texto DELTA seguido de COM BROADBAND. Coincide, exactamente como está diseñado, y el diseño es el problema.
=SUMAR.SI($B$2:$B$13;"DELTA*";$C$2:$C$13) → 951,40
=SUMAR.SI($B$2:$B$13;"DELTA AIR*";$C$2:$C$13) → 862,40
Los 89,00 que hay entre esos dos números son la factura de banda ancha. Nada de la primera fórmula está roto — hace lo que dice, y lo que dice es más amplio que lo que se quería decir.
*CAB* es el mismo error con los dos extremos abiertos: cualquier cosa, luego CAB, luego cualquier cosa. "GREEN CAB CO" vale. También "CABLETECH SUPPLIES", y también valdría "CABINA DE OBRA" y cualquier otra palabra con esas tres letras dentro.
=SUMAR.SI($B$2:$B$13;"*CAB*";$C$2:$C$13) → 186,00
=SUMAR.SI($B$2:$B$13;"* CAB *";$C$2:$C$13) → 43,00
Los 143,00 de diferencia son el pedido de Cabletech, y lo único que cambia entre las dos fórmulas es un espacio a cada lado de CAB. "GREEN CAB CO" tiene un espacio antes y otro después de esas tres letras; "CABLETECH SUPPLIES" no tiene ninguno. La sección 4 va de por qué eso hace de límite de palabra y de dónde deja de funcionar.
La costumbre que hay que llevarse de los dos pares: un patrón con comodines no se confirma leyéndolo, se confirma contándolo. Pon =CONTAR.SI($B$2:$B$13;F2) al lado de cada regla y lee el número de aciertos antes de fiarte de la regla.
🎯 Escenario: Para cada regla que escribas, escribe al lado su número de aciertos: =CONTAR.SI($B$2:$B$13;F2). Con estos datos esa columna dice 3, 1, 2, 1, 1. El 3 de DELTA* es toda la historia — dos vuelos y algo más — y se ve antes de que nadie haya totalizado una categoría.
3) En Qué Lado de la Función Va el Patrón
Esta es la parte que decide cómo se puede construir una tabla de reglas, y casi nunca está escrita en ningún sitio.
En la familia *.SI el patrón va en el criterio. El rango lleva valores normales; el criterio lleva el patrón:
=CONTAR.SI(B4;"DELTA*") → 1
=SUMAR.SI($B$2:$B$13;F2;$C$2:$C$13)
En la familia de búsqueda el patrón va en el valor buscado. La matriz lleva valores normales; lo que buscas es el patrón:
=BUSCARV("DELTA*";$B$2:$C$13;2;FALSO) → 612,40
=COINCIDIR("*HOTEL*";$B$2:$B$13;0) → 4
=BUSCARX("*HOTEL*";$B$2:$B$13;$C$2:$C$13;;2) → 486,90
Y en cualquier comparación normal — =, SI, FILTRAR, SUMAPRODUCTO(--(B2:B13="DELTA*")) — no hay patrones en absoluto. * es un asterisco:
=B4="DELTA*" → FALSO
=CONTAR.SI(B4;"DELTA*") → 1
=SUMAPRODUCTO(--(B2:B13="DELTA*")) → 0
Hay una tercera posición que vigilar, que es el rango. =SUMAPRODUCTO(--(CONTAR.SI($B$2:$B$13;"DELTA*")>0)) devuelve 1, no 3 ni una columna de VERDADEROs: CONTAR.SI sobre un rango de varias celdas devuelve un único número — aquí 3 — así que la comparación es un solo VERDADERO. Para tener una respuesta por fila, o apuntas CONTAR.SI a una sola celda y arrastras, o usas ESNUMERO(HALLAR(...)), que sí está hecha para recibir un rango por ese lado.
La consecuencia para una tabla de reglas es directa, y pilla a quien va primero a la función más nueva. Una tabla de reglas guarda patrones en una columna y prueba cada uno contra una descripción. BUSCARX con modo de coincidencia 2 lee sus comodines en el valor buscado, así que =BUSCARX(B2;$F$2:$F$6;$G$2:$G$6;"Sin categoría";2) le pide a Excel que trate la descripción como patrón y las reglas como literales — justo lo contrario del diseño — y devuelve "Sin categoría" en las doce filas. Nada da error. La columna simplemente se llena de una palabra creíble.
CONTAR.SI es la función que sí acepta una matriz de patrones, porque su argumento de criterio la admite:
=CONTAR.SI(B4;$F$2:$F$6) → {1;0;0;0;1}
Una celda probada contra cinco patrones, y la respuesta dice que la fila 4 coincide con la regla 1 y con la regla 5. Esa matriz es el motor de la sección 8.
🎯 Escenario: Cuando una búsqueda que debería coincidir devuelve el valor de "no encontrado" en todas las filas, comprueba el lado en el que está el patrón antes que ninguna otra cosa. Un comodín en el lado equivocado de una función no da error — simplemente no coincide nunca, que es exactamente igual que una tabla de reglas que falta.
4) La Celda Entera, o Cualquier Parte de la Celda
CONTAR.SI y su familia comparan contra la celda entera. HALLAR y ENCONTRAR buscan un fragmento en cualquier posición. Esa única diferencia explica por qué una tabla de reglas necesita asteriscos y una prueba con HALLAR no:
=CONTAR.SI($B$2:$B$13;"CAB") → 0
=CONTAR.SI($B$2:$B$13;"*CAB*") → 2
=SUMAPRODUCTO(--ESNUMERO(HALLAR("CAB";$B$2:$B$13))) → 2
La segunda y la tercera son la misma prueba escrita dos veces. La primera es el error que todo el mundo comete una vez: un criterio de CAB pide una celda cuyo contenido completo sean las tres letras C, A, B, y ningún extracto bancario ha contenido nunca una.
Excel no tiene límite de palabra, ni \b, ni una opción de "palabra completa" en las fórmulas. El sustituto es rellenar con espacios tanto el valor como el patrón, para que un espacio haga de límite:
=CONTAR.SI($B$2:$B$13;"* CAB *") → 1
=SUMAPRODUCTO(--ESNUMERO(HALLAR(" CAB ";" "&$B$2:$B$13&" "))) → 1
Una fila: "GREEN CAB CO". "CABLETECH SUPPLIES" no tiene espacio delante de su CAB, así que desaparece — 143,00 fuera de Viajes al precio de dos espacios. El relleno de la segunda fórmula importa: sin él, una descripción que empiece por la palabra fallaría, porque no hay espacio delante.
🎯 Escenario: Ten claras las dos formas por lo que necesita cada una: un criterio de la familia *.SI describe la celda entera, así que casi siempre necesita asteriscos; un texto buscado para HALLAR describe un fragmento, así que casi nunca los necesita. Un asterisco dentro de un HALLAR es legal y casi siempre es alguien aplicando la costumbre equivocada.
5) Las Cinco Filas Que No Coincidieron con Nada
Las filas 3, 9, 10, 11 y 12 no coincidieron con ninguna regla, y valen 366,24. Cuatro son comercios cuya descripción quien escribió las reglas no había visto nunca; la quinta, los 178,00 de Eurostar, son justo el viaje que debería estar en el total que se estaba discutiendo.
La fórmula que las encuentra es la cuenta de reglas que coinciden por fila:
=SUMAPRODUCTO(CONTAR.SI(B2;$F$2:$F$6))
Arrastrada hacia abajo, esa columna dice 1, 0, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1. Se ven dos cosas a la vez: cinco ceros y un 2. Y el total de esa columna es 8 frente a 7 filas que coincidieron con algo:
=SUMAPRODUCTO(CONTAR.SI($B$2:$B$13;$F$2:$F$6)) → 8
=SUMAPRODUCTO(--(CONTAR.SI($B$2:$B$13;$F$2:$F$6)>0)) — cuenta reglas que aciertan, no filas
Ocho aciertos sobre siete filas significa que exactamente una fila está reclamada dos veces, y la columna por fila dice cuál: la fila 4, la factura de banda ancha, coincidió con DELTA* y con *BROADBAND*.
El dinero que no coincidió con nada sale de la misma idea:
=SI(SUMAPRODUCTO(CONTAR.SI(B2;$F$2:$F$6))=0;C2;0) — una fila
=SUMA($C$2:$C$13)-SUMAR.SI($H$2:$H$13;"<>Sin categoría";$C$2:$C$13) → 366,24
donde H es la columna de categoría de la sección 8. O, con una columna auxiliar de aciertos en I: =SUMAR.SI($I$2:$I$13;0;$C$2:$C$13) → 366,24.
🎯 Escenario: No dejes nunca que un categorizador devuelva un blanco. Devuelve la palabra "Sin categoría" y pon =SUMAR.SI(H2:H13;"Sin categoría";C2:C13) en el resumen, al lado de las categorías. Un blanco es invisible en una tabla dinámica y un cubo con nombre y 366,24 dentro no lo es.
6) Los Asteriscos Que Están de Verdad
Cinco de las doce descripciones llevan un asterisco literal, porque así es como se escriben las pasarelas de pago: SQ * es Square, TST* es Toast, PAYPAL * es PayPal, y Amazon Marketplace mete uno en medio de una referencia de pedido. Esto no son datos exóticos. Es el aspecto que tiene un fichero de tarjeta.
Ahora usa una de esas descripciones como criterio, que es lo que hace cualquier control de duplicados o cualquier subtotal por comercio:
=CONTAR.SI($B$2:$B$13;B3) → 2
=SUMAR.SI($B$2:$B$13;B3;$C$2:$C$13) → 42,75
B3 es "SQ *BLUE BOTTLE", que aparece una vez. CONTAR.SI lo lee como el texto SQ , y luego cualquier cosa, así que coincide con B3 y con B7 — y el total por comercio vuelve como 42,75 en vez de 18,60, inflando ese comercio en 24,15. En un fichero real con doscientas filas de Square, eso es un análisis por comercio que nadie puede cuadrar.
El carácter de escape es la virgulilla, ~. ~* significa un asterisco literal, ~? una interrogación literal, ~~ una virgulilla literal:
=CONTAR.SI($B$2:$B$13;"SQ ~*BLUE BOTTLE") → 1
Escribir eso a mano para cada comercio no es un plan. Para escapar un valor que viene de una celda, sustituye los tres caracteres — la virgulilla primero, o las que añades para los asteriscos se escapan a su vez:
=CONTAR.SI($B$2:$B$13;SUSTITUIR(SUSTITUIR(SUSTITUIR(B3;"~";"~~");"*";"~*");"?";"~?")) → 1
La alternativa es dejar de usar funciones de patrón para comparaciones exactas:
=SUMAPRODUCTO(--IGUAL($B$2:$B$13;B3)) → 1
=SUMAPRODUCTO(--IGUAL($B$2:$B$13;B3);$C$2:$C$13) → 18,60
IGUAL no lee comodines y no ignora mayúsculas. Es más lenta y es correcta, y en una columna de cadenas de comercio ese es el cambio que quieres.
🎯 Escenario: Siempre que el valor de una celda se use como criterio — marcas de duplicados, subtotales por clave, recuentos de cuadre — pregúntate si esa columna puede contener *, ? o ~. Los ficheros de tarjeta, los códigos de producto, las rutas de archivo y el texto de las fórmulas pueden. =SUMAPRODUCTO(--ESNUMERO(ENCONTRAR("*";B2:B13))) lo responde en una celda: en esta hoja, 5.
7) HALLAR, ENCONTRAR e IGUAL
Tres funciones que parecen intercambiables y no lo son:
| Comodines | Mayúsculas | Si no encuentra | |
|---|---|---|---|
HALLAR | sí | las ignora | #¡VALOR! |
ENCONTRAR | no | las distingue | #¡VALOR! |
IGUAL | no | las distingue | FALSO |
Que HALLAR respete los comodines es lo que sorprende, y aparece en cuanto vas a buscar un asterisco literal:
=SUMAPRODUCTO(--ESNUMERO(HALLAR("*";$B$2:$B$13))) → 12
=SUMAPRODUCTO(--ESNUMERO(ENCONTRAR("*";$B$2:$B$13))) → 5
Doce contra cinco. HALLAR("*";...) pregunta "¿contiene esta celda alguna secuencia de caracteres, incluida ninguna?", cosa que hacen todas. ENCONTRAR es la única de las dos que lee un asterisco como un asterisco, y cinco es la respuesta verdadera.
El mismo par decide las preguntas de mayúsculas. CONTAR.SI, SUMAR.SI y HALLAR ignoran las mayúsculas, así que delta* y DELTA* son la misma regla; si una categoría depende de verdad de las mayúsculas — algunos códigos contables sí —, ENCONTRAR e IGUAL son las únicas herramientas que lo verán.
🎯 Escenario: Usa por defecto ESNUMERO(HALLAR(...)) para "¿contiene esto aquello?", porque ignorar mayúsculas es lo que quieres en nombres de comercio. Cambia a ENCONTRAR por exactamente dos motivos: el fragmento que buscas contiene * o ?, o las mayúsculas forman parte del significado.
8) Una Categoría por Fila: Gana la Primera
La tabla de reglas tiene que producir una respuesta por fila, en orden de regla, con un valor de reserva con nombre. CONTAR.SI contra la matriz de patrones da el vector de coincidencias; COINCIDIR saca el primer 1:
=SI.ERROR(INDICE($G$2:$G$6;COINCIDIR(1;CONTAR.SI(B2;$F$2:$F$6);0));"Sin categoría")
En Microsoft 365 es una fórmula normal. En Excel 2019 y anteriores, confírmala con Ctrl+Mayús+Entrar. Arrastrada por H2:H13 produce:
| Categoría | Filas | Total |
|---|---|---|
| Viajes | 2, 4, 5, 6, 8, 13 | 1.624,30 |
| Comidas | 7 | 24,15 |
| Telecom | — | 0,00 |
| Sin categoría | 3, 9, 10, 11, 12 | 366,24 |
| 2.014,69 |
Vuelve a sumar el extracto exactamente, que es la única virtud de esta versión: cada fila va a un sitio y solo a uno. Telecom es 0,00 porque su único movimiento se lo quedó DELTA* tres reglas antes — gana la primera coincidencia, y el orden de las reglas es el conjunto de reglas.
Ahora compara el resumen que la mayoría construiría, un SUMAR.SI por regla:
=SUMAR.SI($B$2:$B$13;F2;$C$2:$C$13)
| Regla | Total |
|---|---|
DELTA* | 951,40 |
*HOTEL* | 486,90 |
*CAB* | 186,00 |
*COFFEE* | 24,15 |
*BROADBAND* | 89,00 |
| 1.737,45 |
Viajes es 1.624,30 en los dos. Pero este suma 1.737,45 sobre filas que valen 1.648,45, porque los 89,00 se cuentan en Viajes y en Telecom. Las categorías suman más que los movimientos que cubren, y la diferencia es exactamente la ambigüedad de la sección 5.
Dos construcciones distintas, dos respuestas equivocadas distintas, y solo una de ellas se puede siquiera cuadrar. La versión con columna de categoría se puede comprobar contra 2.014,69; la versión de un SUMAR.SI por regla no se puede comprobar contra nada.
🎯 Escenario: Construye primero la columna de categoría y el resumen a partir de ella, nunca un SUMAR.SI por regla directo al informe. =SUMAR.SI($H$2:$H$13;"Viajes";$C$2:$C$13) lee de una columna que puedes revisar fila a fila, y =SUMA(C2:C13)-SUMA(resumen) demuestra que nada está duplicado ni caído.
9) Apretar las Reglas Hasta Que la Hoja Cuadre
El arreglo no es una fórmula más lista. Son diez reglas mejores, ordenadas de la más específica a la más general, y la tilde usada donde los datos llevan asteriscos de verdad:
| Regla (F) | Categoría (G) | Por qué está escrita así |
|---|---|---|
*BROADBAND* | Telecom | por encima de DELTA AIR*, para que una palabra de telecom gane en una fila de telecom |
DELTA AIR* | Viajes | dos palabras, no cinco letras |
*HOTEL* | Viajes | igual que antes |
EUROSTAR* | Viajes | la regla que no existía |
* CAB * | Viajes | espacios haciendo de límite de palabra |
SQ ~** | Comidas | SQ literal, * literal, y luego cualquier cosa |
TST~** | Comidas | Toast, la misma forma |
PAYPAL ~** | Suscripciones | PayPal, la misma forma |
AMZN* | Oficina | Amazon Marketplace |
CABLETECH* | Oficina | nombrada directamente, porque es un proveedor |
Vuelve a calcular la columna de categoría y el resumen cuadra:
| Categoría | Total |
|---|---|
| Viajes | 1.570,30 |
| Comidas | 138,95 |
| Oficina | 204,45 |
| Telecom | 89,00 |
| Suscripciones | 11,99 |
| Sin categoría | 0,00 |
| 2.014,69 |
Viajes son 1.570,30 frente a un presupuesto de 1.600,00: 29,70 por debajo, donde la primera versión decía 24,30 por encima. En la tarjeta no cambió nada. Dos reglas se estrecharon, una se escribió, y tres aprendieron a leer un asterisco como un asterisco.
Fíjate en lo que hace el orden. *BROADBAND* por encima de DELTA AIR* es cinturón y tirantes — la regla estrecha de la aerolínea ya excluye a Deltacom — pero el orden es el único desempate que tiene una tabla de primera coincidencia, y poner lo específico encima de lo general es la costumbre que sobrevive a la siguiente regla que alguien añada con prisa.
🎯 Escenario: Escribe las reglas de lo específico a lo general, y vuelve a mirar los aciertos después de cada inserción. Una regla añadida arriba del todo puede quitarle filas en silencio a tres reglas de más abajo, y el único síntoma es un total de categoría que se ha movido.
10) Tres Comprobaciones Que Lo Mantienen Honesto
Una: la columna de aciertos. =SUMAPRODUCTO(CONTAR.SI(B2;$F$2:$F$11)) arrastrada por las filas. Un 0 es un movimiento sin categoría, un 2 o más es una ambigüedad que ahora mismo está decidiendo el orden de las reglas por ti. Con las cinco reglas originales: cinco ceros y un 2.
Dos: el cuadre. =SUMA(C2:C13)-SUMAR.SI($H$2:$H$13;"<>";$C$2:$C$13) tiene que dar 0,00, y el resumen de categorías tiene que sumar 2.014,69. Si el resumen está hecho con un SUMAR.SI por regla, esta comprobación no puede pasar ni se puede conseguir que pase.
Tres: las reglas que no disparan nunca. =CONTAR.SI($B$2:$B$13;F2)=0 al lado de cada regla. Una regla sin aciertos o es lastre de un fichero antiguo o es una regla con el patrón mal escrito — CAB en vez de *CAB* es el clásico, y devuelve cero en vez de quejarse.
Dos más que merecen la pena cuando el fichero es grande: =SUMAPRODUCTO(--ESNUMERO(ENCONTRAR("*";$B$2:$B$13))) para saber cuánto de los datos lleva asteriscos literales antes de usar nada de eso como criterio, y =SUMAPRODUCTO(--(LARGO($F$2:$F$11)>255)) para pillar una regla que se ha pasado del límite del criterio.
🎯 Escenario: Pon las tres comprobaciones en un bloque de tres celdas arriba de la hoja de reglas, no en una pestaña oculta. Una tabla de reglas es código, y estas son sus pruebas; el día que alguien añada *AIR* para pillar una segunda aerolínea, la columna de aciertos es lo que le dirá que además le ha quitado dos filas a DELTA AIR*.
11) Doce Trampas
=B4="DELTA*"da FALSO y=CONTAR.SI(B4;"DELTA*")da 1. La misma cadena es un patrón en un sitio y texto en otro, y nada en la fórmula te dice cuál.- El criterio de la familia
*.SIcompara con la celda entera."CAB"no encuentra nada en ninguna descripción real;"*CAB*"encuentra dos. Casi todos los "¿por qué mi CONTAR.SI devuelve 0?" son esto. - Los comodines no se aplican a los números.
=CONTAR.SI($C$2:$C$13;"6*")da 0, porque los importes son numéricos. Los mismos dígitos guardados como texto sí coincidirían, así que la respuesta cambia con el formato de la celda. =CONTAR.SI(rango;"*")cuenta solo celdas de texto — ni números, ni fechas, ni blancos. En B2:B13 son 12; en C2:C13 son 0."<>*"cuenta las que no son texto, que son 12 en la columna C.- Los comodines se ignoran dentro de un criterio de comparación.
">DELTA*"compara alfabéticamente contra la cadena literal; no significa "posterior a cualquier cosa que empiece por DELTA". BUSCARVrespeta los comodines solo con coincidencia exacta.BUSCARV("DELTA*";...;FALSO)funciona; la misma búsqueda conVERDADEROtrata el patrón como texto y devuelve lo que le toque a la coincidencia aproximada.BUSCARXrespeta los comodines solo en el modo de coincidencia 2, y solo en el valor buscado. Su modo por defecto lee*como asterisco, así que un patrón se convierte en silencio en un "no encontrado".HALLARrespeta los comodines;ENCONTRARno.HALLAR("*";A1)es 1 en todas las celdas. Para localizar un*o un?literales,ENCONTRARes la única opción.- La tilde escapa, y hay que escaparla a ella primero.
SUSTITUIRla~antes que el*y la?, o los escapes que acabas de meter se escapan a su vez. - Buscar y reemplazar también lee comodines. Reemplazar
*por nada vacía todas las celdas que coincidan en lugar de quitar asteriscos;~*es lo que querías decir, y Ctrl+Z es lo que vas a necesitar si se te olvida. - Un criterio de texto de más de 255 caracteres devuelve
#¡VALOR!. Una regla montada por concatenación puede cruzar esa línea sin que nadie la edite. - El autofiltro y el filtro avanzado tienen sus propios valores por defecto. El "Contiene" del autofiltro escribe
*texto*por ti; el filtro avanzado trata un criterio pelado como empieza por, así que escribirDeltaen un rango de criterios reproduce el fallo original de este artículo en un cuadro de diálogo en vez de en una fórmula.
Práctica
Con las doce filas de la cuadrícula de arriba:
- Cuenta antes de totalizar. Pon las cinco reglas originales en F2:F6 y
=CONTAR.SI($B$2:$B$13;F2)al lado de cada una. ¿Qué regla tiene el número de aciertos equivocado para lo que se escribió, y cómo lo sabrías sin leer las descripciones? - Los dos números de viaje. Escribe la fórmula única que devuelve 1.624,30 y la fórmula única que devuelve 1.570,30, y di qué fila se mueve entre ellas y por qué.
- Encuentra la ambigüedad. En
I2:I13, cuenta con cuántas reglas coincide cada fila. ¿Cuál devuelve 2, cuáles cinco devuelven 0, y cuánto suma la columna? - El asterisco que es real. Explica por qué
=CONTAR.SI($B$2:$B$13;B3)devuelve 2, y luego escribe dos fórmulas distintas que devuelvan 1 — una escapando el valor y otra sin usar comodines en absoluto. - Un límite de palabra. Escribe el criterio que pilla "GREEN CAB CO" y no "CABLETECH SUPPLIES", luego escribe la versión con
HALLARde la misma prueba y di para qué sirve el relleno de espacios. - Cuadra. Construye la columna de categoría con las reglas apretadas de la sección 9 y demuestra que el resumen suma 2.014,69. Después añade
*AIR*→ Viajes arriba del todo y di, sin ejecutarlo, qué le pasa a Viajes y por qué.
Resumen
Un comodín no es una comodidad, es un segundo idioma metido dentro de tus fórmulas, y Excel nunca te dice en qué idioma se está leyendo un argumento concreto. DELTA* en el criterio de un CONTAR.SI es un patrón; esos mismos seis caracteres en =B4="DELTA*" son texto; y los asteriscos que el banco puso en "SQ *BLUE BOTTLE" son un patrón en cuanto esa celda se usa como criterio y texto en todos los demás sitios.
Así que: mantén el patrón en el lado de la función que lo lee — el criterio en la familia *.SI, el valor buscado en la familia de búsqueda, en ningún sitio en una comparación normal. Escribe patrones que describan la celda entera para CONTAR.SI y fragmentos para HALLAR, y rellena con espacios cuando necesites el límite de palabra que Excel no tiene. Escapa con ~ siempre que un valor de los datos se convierta en criterio, o usa IGUAL y deja de leer patrones del todo. Y cuenta los aciertos: una regla con su número de aciertos al lado anuncia que DELTA* pilla tres filas cuando debería pillar dos, y una regla sin ese número no anuncia nada hasta la reunión de cierre.
La alternativa es la versión con la que empezó este artículo: 1.624,30 informados, 1.570,30 gastados, una factura de banda ancha archivada en Viajes, y una conversación de presupuesto sobre 24,30 que nunca estuvo ahí de verdad.
