Thornbury Waste & Recycling hace la recogida de residuos comerciales en North Somerset desde un depósito en Clevedon y una nave satélite en Nailsea. El contrato con el ayuntamiento es sencillo, y su sencillez es toda la historia: 31,40 £ por punto de recogida atendido y mes. Por punto, no por vaciado. Un restaurante que se vacía tres veces por semana es un punto de recogida, igual que un centro social que se vacía una vez al mes.
El parte mensual se monta sobre las hojas de ruta, que llegan con una fila por vaciado. Marzo de 2026 fueron 4.319 filas en una hoja llamada Ruta, con el código de punto en la columna C.
La analista hizo lo que haría cualquiera. Copió la columna C a una hoja aparte. Datos ▸ Herramientas de datos ▸ Quitar duplicados. Una columna marcada. Aceptar.
Se han encontrado y quitado 3.527 valores duplicados. Quedan 792 valores únicos.
792 × 31,40 £ = 24.868,80 £, facturados el 3 de abril y pagados el 2 de mayo.
La ruta atiende 713 puntos de recogida. Lleva dos años atendiendo 713; el número está en una pizarra de la oficina de tráfico de Clevedon.
De Dónde Salieron los Otros Setenta y Nueve
No hubo fraude, ni invención, ni error de fórmula. Setenta y nueve filas donde un punto de recogida real estaba escrito de dos maneras distintas:
- 61 llevaban un espacio al final. La nave de Nailsea sigue metiendo su hoja de ruta en una aplicación antigua de Access que rellena todos los códigos hasta doce caracteres.
BS22-0149yBS22-0149son dos textos distintos, y todas las herramientas de Excel te lo dirán. - 14 llevaban un espacio de no separación,
CARACTER(160), heredado de un portal web del que el equipo comercial copia los puntos nuevos. Se ve exactamente igual que un espacio, no es un espacio, yESPACIOSno lo quita. - 3 estaban guardados como números y no como texto. Tres puntos de una numeración antigua tienen códigos de sólo dígitos, y uno de los dos sistemas de origen los exporta como números.
8821y"8821"son el mismo código y valores distintos. - 1 era una celda vacía. Un vaciado del 14 de marzo se anuló en la acera y la tableta del conductor escribió la fila sin código de punto.
Esa última merece decirse despacio. Una celda vacía se facturó como punto de recogida a 31,40 £ al mes durante catorce meses, y nadie se dio cuenta porque una celda vacía no parece nada.
Lo Que Costó
El equipo de seguimiento de contratos de North Somerset rehizo el parte de marzo contra el registro de puntos del depósito en junio de 2026, dentro de una revisión trienal rutinaria. Recalcularon todos los meses hasta febrero de 2025 — catorce partes, una media de 79 puntos fantasma — y recuperaron 34.728,40 £.
Esa es la parte barata. Las caras fueron una carta del interventor del ayuntamiento, una nota de incumplimiento que se queda en el expediente hasta la nueva licitación de 2028, y once días de una analista financiera reconstruyendo catorce partes mensuales a partir de las hojas de ruta, porque en el libro no había nada que registrara cómo se había obtenido ninguna de las cifras originales. Quitar duplicados no deja rastro: ni fórmula, ni ajustes, ni fecha, ni nada en ninguna celda.
Y aquí está lo que hace que este artículo merezca la pena. Quitar duplicados no hizo nada mal. Hizo exactamente lo que dice. Y lo mismo UNICOS, y CONTAR.SI, y el Recuento distinto del Modelo de datos: los cuatro devuelven 792 en esa columna, y los cuatro son correctos. La pregunta "cuántos valores diferentes hay en esta columna" tiene una respuesta y es 792. La pregunta que hace el contrato es "cuántos puntos de recogida se atendieron", y ninguna herramienta de Excel puede responderla hasta que alguien escriba, en una celda, qué hace que dos códigos sean el mismo código.
Qué cubre esto.
CONTARA,CONTAR,CONTAR.SI,CONTAR.SI.CONJUNTO,SUMAPRODUCTO,ESPACIOS,SUSTITUIR,MAYUSC,IGUAL,LARGOySUMAfuncionan en todas las versiones de Excel y en todas las plataformas.UNICOS,FILTRAR,ORDENARyLETnecesitan Microsoft 365 o Excel 2021 — la vía anterior a 365 es la sección 4, y sigue siendo la elección correcta en un libro que otras personas abren con versiones viejas. El Recuento distinto de una tabla dinámica necesita el Modelo de datos: Excel para Windows 2013 o posterior, y no está disponible en Excel para Mac ni en Excel para la web, donde la respuesta es la sección 3 o la 4. El ejemplo es recogida de residuos porque el contrato paga por punto, pero la forma es la misma en toda conciliación de licencias por usuario, todo informe de visitantes únicos y toda pregunta de "cuántos clientes atendimos de verdad" hecha con prisa.
1) La Columna, Contada de Ocho Maneras
Una Columna de Códigos de Punto, Contada de Ocho Maneras
La columna C de la hoja de ruta de marzo de 2026 tiene 4.319 códigos de punto, uno por vaciado, y el contrato paga por punto. Todas las cifras de esta tabla son una respuesta correcta a la pregunta que se les hizo; sólo una responde a la pregunta que hace el contrato. Lee juntas las dos últimas columnas: el método nunca es el problema, y la diferencia entre 792 y 713 son 79 filas donde el mismo punto de recogida está escrito dos veces de maneras que ninguna fórmula puede adivinar, hasta que alguien decide, en una celda, qué hace que dos códigos sean el mismo código.
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
Tres cosas de esa tabla merecen decirse en voz alta.
Los métodos están de acuerdo entre ellos. Quitar duplicados y =FILAS(UNICOS(C2:C4320)) dicen 792, fila por fila. No es casualidad ni suerte: implementan la misma comparación. Cuando dos herramientas distintas te dan el mismo número equivocado, el instinto es creerlo. Están de acuerdo sobre los datos, no sobre el contrato.
Cada escalón quita una definición de "el mismo". 792 cuenta textos distintos. 728 cuenta textos distintos una vez apartados los espacios normales y el tipo. 714 añade el espacio de no separación. 713 añade "y un blanco no es un punto". Cada escalón es una decisión que tomó alguien, y la cifra sólo es defendible porque las decisiones están en celdas donde un auditor puede leerlas.
La última fila no está en la escalera. 96 es el número de puntos atendidos exactamente una vez en marzo — algo perfectamente razonable de querer, calculado con la misma función, descrito con la misma palabra, y a 617 de la respuesta.
🎯 Escenario: Antes de contar nada, pon dos celdas juntas: =FILAS(C2:C4320) y =CONTARA(C2:C4320). En esta hoja dicen 4.319 y 4.318. Esa diferencia de una fila son todas las celdas vacías de la columna, y es el aviso más barato de este artículo.
2) "Único" Significa Dos Cosas Distintas
Esta es la primera bifurcación, y casi todos los números equivocados del mundo están río abajo de ella.
Con la columna A, B, B, C, C, C:
| Pregunta | Respuesta | Fórmula |
|---|---|---|
| ¿Cuántos valores diferentes? (recuento distinto) | 3 | =FILAS(UNICOS(A2:A7)) |
| ¿Cuántos valores aparecen exactamente una vez? | 1 | =SUMAPRODUCTO(--(CONTAR.SI(A2:A7;A2:A7)=1)) |
Las dos son "valores únicos" en lenguaje corriente. Sólo una es lo que significa un contrato por punto, un recuento de licencias por usuario o un número de clientes distintos.
La segunda tiene sus usos y son reales: piezas pedidas una sola vez en todo el año, pacientes vistos una única vez, el caso de prueba que se ejecutó una vez. También es la fórmula a la que se recurre cuando uno recuerda CONTAR.SI a medias, y te dará calladamente un número que parece plausible — 96 es un número creíble de puntos, hasta el momento en que alguien lo multiplica por 31,40 £.
Di cuál de las dos quieres en la celda de al lado. Una etiqueta no es decoración. Puntos distintos atendidos y Puntos atendidos una sola vez son cinco palabras que habrían terminado esta historia entera en abril de 2025.
🎯 Escenario: Pon las dos fórmulas en la hoja, siempre, con etiqueta. Si salen parecidas, tus datos repiten poco. Si una da 713 y la otra 96, acabas de aprender algo de la ruta además de algo de la fórmula.
3) UNICOS, y el Blanco Que Vuelve Convertido en Valor
UNICOS devuelve la lista; tú cuentas la lista.
=FILAS(UNICOS(C2:C4320)) el número de valores distintos
=UNICOS(C2:C4320) los valores, derramados
=ORDENAR(UNICOS(C2:C4320)) lo mismo, en orden, para mirarlo
Usa FILAS, no CONTARA. CONTARA(UNICOS(...)) da aquí la misma respuesta por casualidad, y da otra distinta en cuanto la lista derramada contiene una cadena vacía, porque CONTARA cuenta "" y FILAS cuenta filas. Una función que siempre cuenta la lista es mejor que dos que a veces lo hacen.
La trampa es el blanco. UNICOS sobre un rango con celdas vacías devuelve 0 por ellas — un cero, en la lista, como valor. Así que =FILAS(UNICOS(C2:C4320)) da 792 donde los códigos distintos son 791, y el extra es una celda vacía ascendida a punto de recogida.
La valla es FILTRAR:
=FILAS(UNICOS(FILTRAR(C2:C4320;C2:C4320<>"")))
Dos cosas que saber de esa expresión. FILTRAR devuelve #¡CALC! cuando no pasa nada la prueba — una columna entera vacía te da un error en vez de un cero, lo cual es correcto y poco útil en un panel, así que envuélvelo donde el cero sea la respuesta sensata:
=SI.ERROR(FILAS(UNICOS(FILTRAR(K2:K4320;K2:K4320<>"")));0)
Y UNICOS también funciona por filas, si tus datos van del otro lado: =COLUMNAS(UNICOS(C2:Z2;VERDADERO)). El segundo argumento le dice que compare columnas, y entonces cuentas columnas.
Si cuentas valores distintos de una columna entera de una Tabla, deja que la Tabla lleve el rango — =FILAS(UNICOS(FILTRAR(Ruta[Punto];Ruta[Punto]<>""))) crece por su cuenta, y un rango que crece solo es un motivo menos para que la cifra del mes que viene esté mal.
🎯 Escenario: Sobre tus propios datos, pon =FILAS(UNICOS(C2:C4320)) y =FILAS(UNICOS(FILTRAR(C2:C4320;C2:C4320<>""))) una al lado de la otra. Si difieren, la diferencia es 1, y ese 1 es un blanco contado como cosa.
4) La Fórmula para Todos los Que No Tienen UNICOS
UNICOS llegó con las matrices dinámicas. En Excel 2019, 2016 y en cualquier libro que alguien abra con una versión vieja en casa de un cliente, la fórmula es esta, y lo es desde los años noventa:
=SUMAPRODUCTO(1/CONTAR.SI(C2:C4320;C2:C4320))
Por qué funciona, que merece entenderse en vez de copiarse. CONTAR.SI(rango;rango) devuelve una matriz de la altura del rango con, para cada celda, el número de veces que aparece el valor de esa celda. Un valor que aparece tres veces aporta 1/3 tres veces, que es 1. Un valor que aparece una vez aporta 1/1 una vez, que es 1. Cada valor distinto aporta exactamente 1 por muchas veces que salga, y la suma es el recuento distinto.
Por qué se rompió aquí. Una celda vacía tiene un CONTAR.SI de 0, 1/0 es #¡DIV/0!, y un solo #¡DIV/0! en una matriz envenena la suma entera. Ese es el error de la fila 8 de la tabla, y es la razón de que la analista dejara de usar la fórmula y se fuera a Quitar duplicados: la fórmula dijo la verdad de una manera que parecía una avería.
El arreglo consiste en vallar los blancos arriba y abajo de la fracción a la vez:
=SUMAPRODUCTO((C2:C4320<>"")/CONTAR.SI(C2:C4320;C2:C4320&""))
El numerador es 0 en una fila vacía, así que las filas vacías no aportan nada. El &"" del criterio convierte el criterio del blanco en una cadena vacía, que CONTAR.SI sí puede contar, así que el divisor nunca es cero y nunca produce el error que el numerador iba a descartar de todos modos.
Lo que cuesta. Esta fórmula compara cada celda con todas las demás: 4.319 filas son 18,6 millones de comparaciones, que Excel hace sin pestañear. 200.000 filas son 40.000 millones, que no. Pasadas unas 20.000 filas, lleva el cálculo a una columna clave más UNICOS, o a una tabla dinámica del Modelo de datos — sección 7 — en vez de esperar un recálculo que se puede cronometrar con un hervidor.
🎯 Escenario: Coge cualquier columna que ya hayas contado con UNICOS y pásale la forma con SUMAPRODUCTO al mismo rango. Cuando las dos discrepen, has encontrado una diferencia de tipo o de mayúsculas, y la sección 5 dice cuál.
5) Qué Considera CONTAR.SI Que Es el Mismo Valor
Las dos familias de fórmulas no definen "el mismo" igual, y en esta columna se diferencian exactamente en 3. La diferencia no es un fallo de ninguna; es una propiedad de CONTAR.SI que resulta útil la mitad de las veces y peligrosa la otra mitad.
CONTAR.SI pliega los números y el texto que parece número. CONTAR.SI(rango;"8821") encuentra el número 8821 igual que el texto "8821". Así que la forma con SUMAPRODUCTO trata los tres códigos guardados como número como el mismo valor que sus gemelos de texto, y devuelve 788 frente a los 791 de UNICOS en la columna original. Para un código de punto, CONTAR.SI acierta por accidente y UNICOS acierta literalmente. Para una columna donde "0049" y 49 son cosas de verdad distintas — un código de producto, un código de sucursal, un centro de coste — CONTAR.SI se equivoca en silencio y no lo dirá.
Las dos pliegan las mayúsculas. "bs22-0149" y "BS22-0149" son un solo valor para CONTAR.SI, para UNICOS, para Quitar duplicados y para un Recuento distinto del Modelo de datos. Excel pliega mayúsculas en casi todas partes, y por eso ninguno de los 79 fantasmas de aquí era una diferencia de capitalización: los dos sistemas de origen discrepan en mayúsculas constantemente y no le ha costado un penique a nadie.
Si de verdad necesitas un recuento distinto sensible a mayúsculas — distinguir "ab" de "AB", que importa en hashes, códigos de barras con dígito de control y algunas referencias bancarias — IGUAL es la única comparación de Excel que ve las mayúsculas. Cuenta primeras apariciones con un rango que se expande:
L2: =SI(SUMAPRODUCTO(--IGUAL($C$2:C2;C2))=1;1;0) arrastra hacia abajo
=SUMA(L2:L4320) recuento distinto con mayúsculas
CONTAR.SI lee comodines en su criterio. Un valor con * o ? es un patrón, no una cadena, así que GATO* encuentra GATOS y el recuento sale alto. Escápalos con una virgulilla — SUSTITUIR(SUSTITUIR(C2;"~";"~~");"*";"~*") — o no uses CONTAR.SI en columnas que los contengan. UNICOS no tiene comodines ni ese problema.
El criterio de CONTAR.SI se corta a los 255 caracteres. El texto más largo devuelve #¡VALOR!. Los campos de texto libre, los asuntos de correo y las URL pegadas llegan ahí, y el error es el buen desenlace: el malo es una comparación truncada que no notas. Donde los valores sean largos, cuenta distintos con UNICOS, o usa como clave un extracto más corto.
Ninguna de las dos ignora los espacios. Eso es la sección 9, y es la que costó 34.728,40 £.
🎯 Escenario: En una celda libre, =CONTAR(C2:C4320) sobre una columna de identificadores. CONTAR sólo cuenta números, así que en una columna de códigos tiene que dar 0. Aquí dice 3, y esos 3 son toda la discrepancia entre tus dos fórmulas.
6) Quitar Duplicados Es una Edición, No un Recuento
Quitar duplicados borra filas. Es una operación sobre los datos que de paso muestra un recuento, y el recuento era lo único que alguien quería.
Tres consecuencias, y las tres pasaron aquí.
Destruye lo que contó. La copia de la columna C en la hoja aparte pasó de 4.319 filas a 792 y las filas originales ya no están. En una copia eso es inofensivo. Hazlo sobre la hoja de ruta — que alguien lo hará, con prisa, algún día — y los vaciados, las fechas, los pesos y los números de vehículo de esas 3.527 filas se van con ellas, con sólo un Ctrl+Z entre tú y una reconstrucción.
Compara sólo las columnas que marcas, y conserva la primera fila que encuentra. Marca sólo Punto y la fila que sobrevive se queda con la fecha y el peso del primer vaciado de ese punto, el que fuera. Nada en esa fila está mal, y nada en ella es representativo tampoco.
No deja registro. El número 792 existió en un cuadro de diálogo durante cuatro segundos. Nada en el libro dice qué columna se deduplicó, si estaba marcada la casilla de encabezado, ni cuándo. Catorce cifras mensuales se produjeron así, y la reconstrucción de junio tuvo que empezar por las hojas de ruta, porque los partes no contenían ningún cálculo.
Si lo que quieres es la lista y no el recuento, y la quieres sin destruir nada, eso es Datos ▸ Filtro avanzado ▸ Sólo registros únicos, con Copiar a otro lugar marcado. Escribe los valores distintos en otro sitio y deja el origen intacto — la misma respuesta que UNICOS, disponible en todas las versiones, y sigue siendo una operación de una vez que no registra nada de sí misma.
🎯 Escenario: Donde se informe un recuento deduplicado cada mes, sustituye la herramienta por una fórmula en una celda, aunque la fórmula sea más larga. Un número que puedes volver a obtener en junio es un número; un número que alguien leyó en un cuadro de diálogo en abril es una anécdota.
7) El Recuento de la Tabla Dinámica No Es un Recuento Distinto
Arrastra el campo Punto al área de Valores y Excel ofrece Cuenta de Punto, que cuenta filas: 4.318 — la misma cifra que CONTARA, porque es la misma pregunta. Nada en la caché normal de una tabla dinámica cuenta valores distintos, y muchísimas cifras de "clientes únicos" de muchísimos informes mensuales son este número.
El Recuento distinto existe, y necesita el Modelo de datos. Monta la dinámica con Insertar ▸ Tabla dinámica y marca Agregar estos datos al Modelo de datos; luego, en Configuración de campo de valor, baja al final de la lista de resúmenes, más allá de Cuenta, Promedio y Desvest, hasta Recuento distinto. Sobre la columna C informa 792, que es el recuento distinto correcto de lo que esa columna contiene, y sobre una columna clave limpia informa 713.
Es la vía más rápida con diferencia cuando los datos son grandes — cuenta distintos en el motor en vez de comparar 18 millones de pares de celdas en la hoja — y desglosa un recuento distinto por depósito, por mes o por vehículo sin otra fórmula. Los costes son reales y conviene conocerlos antes de montar un informe encima: el Recuento distinto es Excel para Windows 2013 o posterior, no está en Excel para Mac ni en Excel para la web, una dinámica del Modelo de datos no se deja usar con IMPORTARDATOSDINAMICOS con tanta libertad como una normal, y el modelo se guarda dentro del libro, que engorda.
Los subtotales no cuadran, y es correcto. Un recuento distinto de puntos por depósito da 509 a Clevedon y 213 a Nailsea, que suman 722 frente a un total general de 713. Nueve puntos los atienden los dos depósitos, y un recuento distinto cuenta cada uno una vez en la fila de cada depósito y una vez en el total. Todos los informes de recuento distinto del mundo tienen esta propiedad, todos los lectores acaban viéndola, y la única defensa es una línea de texto debajo de la tabla que lo diga.
🎯 Escenario: Si en un informe mensual aparecen las palabras "único" o "distinto", abre la dinámica y mira la Configuración de campo de valor. Si dice Cuenta, el número ha estado mal todo el tiempo que lleva existiendo el informe.
8) Recuentos Únicos por Grupo
La pregunta casi nunca es "cuántos puntos distintos" a secas. Es puntos distintos por depósito, por mes, por vehículo, por contrato.
Con matrices dinámicas, mete la prueba de grupo dentro de FILTRAR:
=FILAS(UNICOS(FILTRAR($K$2:$K$4320;($D$2:$D$4320=H2)*($K$2:$K$4320<>""))))
El * es Y — multiplica las condiciones, no intentes usar Y, que colapsa una matriz en un único VERDADERO. H2 lleva el nombre del depósito, así que la fórmula se arrastra por una tablita de depósitos. Para el desglose entero en una celda, =UNICOS(D2:D4320) derrama la lista de depósitos al lado.
Sin matrices dinámicas, la idea de CONTAR.SI se extiende a CONTAR.SI.CONJUNTO:
=SUMAPRODUCTO(($D$2:$D$4320=H2)/CONTAR.SI.CONJUNTO($D$2:$D$4320;$D$2:$D$4320&"";$K$2:$K$4320;$K$2:$K$4320&""))
El divisor cuenta ahora cada combinación de depósito y punto, así que un punto atendido cuatro veces desde Clevedon aporta 1/4 cuatro veces y el depósito se queda con un punto. Las filas de otros depósitos tienen numerador 0 y caen. El &"" de los dos criterios hace el mismo trabajo de vallar blancos que antes.
Un aviso sobre cómo leer el resultado. Como en la sección 7, los recuentos distintos por grupo no suman el recuento distinto total salvo que cada valor pertenezca exactamente a un grupo. Aquí suman 722 frente a 713. Si alguien tiene que cuadrar esos dos números con prisa, dará por hecho que uno está mal.
🎯 Escenario: Monta la tabla de depósitos con UNICOS derramando los grupos y la fórmula de arriba al lado; luego pon =SUMA(...) debajo y =FILAS(UNICOS(FILTRAR(K;K<>""))) al lado. Etiqueta la diferencia como "puntos en dos rutas" en vez de esperar a que te pregunten.
9) La Columna Clave, Que Es la Respuesta de Verdad
Todas las secciones anteriores cuentan lo que hay en las celdas. Esta es la sección donde alguien decide qué es un código de punto.
Una expresión, en una columna auxiliar, basta para los cuatro problemas de esta columna:
K2: =MAYUSC(ESPACIOS(SUSTITUIR(C2;CARACTER(160);" ")))
Leyéndola de dentro hacia fuera:
SUSTITUIR(C2;CARACTER(160);" ")convierte los espacios de no separación en espacios normales.CARACTER(160)es lo que trae consigo una copia desde una página web; se dibuja idéntico a un espacio en todas las fuentes que trae Excel, yESPACIOSno lo toca. Eran 14 de los 79.LIMPIARtampoco lo toca:LIMPIARquita los caracteres del 0 al 31, y el 160 no está entre ellos.ESPACIOSquita los espacios del principio y del final y reduce los interiores a uno. Eran 61 de los 79. Además, de paso, devuelve texto — así que los tres códigos guardados como números salen como texto y dejan de ser un valor aparte. Es un efecto secundario que conviene conocer en los dos sentidos:ESPACIOSsobre una columna de números de verdad los convierte en texto y tuSUMAse va a cero.MAYUSCes cinturón y tirantes. Todos los métodos de este artículo ya pliegan mayúsculas, así que no cambia nada — pero hace explícita la intención, y protege la columna si alguien la cuenta más adelante con una comparaciónIGUALsensible a mayúsculas o la exporta a un sistema al que sí le importe.
Luego cuenta la columna clave, no la C, con el método que encaje con tu versión:
=FILAS(UNICOS(FILTRAR(K2:K4320;K2:K4320<>""))) 365 / 2021 → 713
=SUMAPRODUCTO((K2:K4320<>"")/CONTAR.SI(K2:K4320;K2:K4320&"")) cualquiera → 713
Dinámica del Modelo de datos, Recuento distinto de Clave Windows 2013+ → 713
Los tres coinciden, porque por fin se les hizo la misma pregunta.
Dos notas sobre su uso. Un LET lo deja en una sola celda si prefieres no añadir columna: =LET(k;MAYUSC(ESPACIOS(SUSTITUIR(C2:C4320;CARACTER(160);" ")));FILAS(UNICOS(FILTRAR(k;k<>"")))). Y no normalices en silencio: una columna clave que junta calladamente dos códigos es el mismo fallo en la otra dirección. Pon al lado un recuento de lo que cambió: =SUMAPRODUCTO(--(C2:C4320<>K2:K4320)) dice 78 en esta hoja, y 78 es un número que alguien debería tener que aprobar.
🎯 Escenario: Añade la columna clave a la hoja desde la que informas este mes, y pon =SUMAPRODUCTO(--(C2:C4320<>K2:K4320)) en la celda de encima. Cualquier cosa distinta de 0 es el tamaño del problema que llevas contando desde que existe el informe.
10) Parejas Distintas de Dos Columnas
"Cuántos punto-día atendimos" es un recuento distinto sobre dos columnas a la vez, y la vía evidente es una clave concatenada:
=FILAS(UNICOS(K2:K4320&"|"&TEXTO(E2:E4320;"aaaa-mm-dd")))
Funciona, y tiene un modo de fallo que hay que descartar: si el separador puede aparecer dentro de alguno de los valores, dos parejas distintas pueden producir una sola clave. A|B con C y A con B|C son los dos A|B|C. Elige un carácter que los datos no puedan contener, y compruébalo: =SUMAPRODUCTO(--ESNUMERO(ENCONTRAR("|";K2:K4320))) tiene que dar 0.
Con matrices dinámicas no hace falta la clave. UNICOS sobre un rango de dos columnas devuelve filas distintas:
=FILAS(UNICOS(D2:E4320)) parejas distintas de depósito y fecha, directamente
Sin separador, sin TEXTO, sin colisión: compara la fila como fila. Es también la manera honesta de contar clientes distintos cuando la identidad es una combinación: nombre más código postal, proyecto más cliente, pieza más revisión.
Y fíjate en lo que hace TEXTO en la primera fórmula: una columna de fechas que arrastre hora hará que cada vaciado sea su propio día distinto. TEXTO(...;"aaaa-mm-dd") o ENTERO lo aplanan. Una marca de tiempo escondida en una columna de fechas es uno de los motivos más frecuentes de que un recuento distinto salga sospechosamente cerca del número de filas.
🎯 Escenario: Cuenta punto-días de las dos maneras sobre tus propios datos: clave concatenada y UNICOS de dos columnas. Si difieren, tu separador aparece en los datos, y la forma de dos columnas es la que acierta.
11) Siete Comprobaciones de una Celda
Ponlas en la hoja, no en tu cabeza. Cada una es una celda, y cada una pilla uno de los setenta y nueve.
- ¿Hay blancos?
=FILAS(C2:C4320)-CONTARA(C2:C4320)→ 1. Cualquier cosa distinta de cero significa que un blanco está a punto de convertirse en valor. - ¿Hay espacios sueltos?
=SUMAPRODUCTO(--(C2:C4320<>ESPACIOS(C2:C4320)))→ 61. Filas cuyo texto cambia al recortarlo. - ¿Hay espacios de no separación?
=SUMAPRODUCTO(--ESNUMERO(ENCONTRAR(CARACTER(160);C2:C4320&"")))→ 14. Los queESPACIOSno ve. - ¿Hay números entre los códigos?
=CONTAR(C2:C4320)→ 3. En una columna de identificadores tiene que ser 0. - ¿Coinciden las dos familias de fórmulas?
=FILAS(UNICOS(FILTRAR(K2:K4320;K2:K4320<>"")))contra=SUMAPRODUCTO((K2:K4320<>"")/CONTAR.SI(K2:K4320;K2:K4320&"")). Iguales significa que no quedan sorpresas de tipo ni de comodines. - ¿Cuánto cambió la normalización?
=SUMAPRODUCTO(--(C2:C4320<>K2:K4320))→ 78. El número que alguien firma. - ¿Cuadra la factura?
=FILAS(UNICOS(FILTRAR(K2:K4320;K2:K4320<>"")))*31,4→ 22.388,20 £, contra la cifra de la factura. Si esta celda hubiera existido en abril de 2025, las otras seis no habrían hecho falta nunca.
🎯 Escenario: Tres de ellas — la 1, la 2 y la 7 — se añaden en noventa segundos a un informe que ya haces. Pásalas por las cifras del mes pasado antes de pasarlas por las de este.
12) Doce Trampas
- "Único" significa valores distintos para una persona y aparece-una-sola-vez para otra. 713 y 96 de la misma columna. Etiqueta la celda.
- Un espacio al final es un valor distinto. Para Quitar duplicados,
UNICOS,CONTAR.SIy el Recuento distinto por igual. PrimeroESPACIOS, después contar. ESPACIOSno quitaCARACTER(160). El espacio de no separación que sale de toda página web y todo PDF le sobrevive. Quítalo conSUSTITUIRexplícitamente.UNICOSdevuelve una celda vacía como0, así que una fila en blanco se vuelve un valor distinto. Ponle valla conFILTRAR.SUMAPRODUCTO(1/CONTAR.SI(...))da#¡DIV/0!si una celda está vacía. Usa la forma(rango<>"")/CONTAR.SI(rango;rango&""), que lo resuelve en los dos lados de la fracción.CONTAR.SIpliega8821con"8821"yUNICOSno. Las dos dan recuentos distintos diferentes en columnas de tipo mezclado, y cuál acierta depende de tus datos, no de Excel.- El criterio de
CONTAR.SIlee comodines. Un valor con*o?encuentra más que a sí mismo. Escápalo con~, o cuenta conUNICOS. - El criterio de
CONTAR.SIse corta a los 255 caracteres. El texto largo da#¡VALOR!en el mejor caso. - Todo pliega mayúsculas menos
IGUAL. Si"ab"y"AB"tienen que contar como dos, monta el recuento sobreIGUAL; si no, deja de preocuparte por las mayúsculas del todo. - La Cuenta de un campo en una dinámica es un recuento de filas. El Recuento distinto necesita el Modelo de datos, y es sólo de Windows.
- Los recuentos distintos por grupo no suman el total. 509 + 213 = 722 frente a 713, porque nueve puntos están en dos rutas. Dilo debajo de la tabla.
- Quitar duplicados borra filas y no registra nada. Es una edición con un recuento en la esquina, y el recuento desaparece cuatro segundos después.
Thornbury sigue contando sus puntos de recogida en Excel, y sigue contándolos cada mes, y el parte sigue yendo al ayuntamiento como una hoja de cálculo.
Lo que cambió en Ruta son tres celdas y una columna. La columna K lleva =MAYUSC(ESPACIOS(SUSTITUIR(C2;CARACTER(160);" "))). Encima del encabezado están el recuento distinto, el número de filas que la columna clave modificó y el cuadre de la factura — 713, 78, 22.388,20 £ — cada uno con una etiqueta que un técnico del ayuntamiento puede leer sin que nadie se la explique. La cifra de la pizarra de la oficina de tráfico está en una cuarta celda, escrita a mano, y una quinta dice si las dos coinciden.
La lección general no es sobre una función. Es que un recuento distinto es una definición antes que un cálculo, y Excel nunca te va a pedir la definición. Cogerá una columna, comparará los valores exactamente como están guardados y te dará un número seguro de sí mismo — 792, correcto, defendible, y a 79 puntos de recogida de lo que dice el contrato. Quitar duplicados no se equivocó el 3 de abril de 2025. Nunca se le hizo la pregunta, porque nadie la había escrito.
