🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

DSUM y DCOUNT en Excel — Suma y cuenta las filas que coinciden con una tabla de criterios

|

DSUM y DCOUNT en Excel — Suma y cuenta las filas que coinciden con una tabla de criterios

ResumenDSUM(database, field, criteria) totaliza una columna, pero solo las filas que coinciden con un rango de criterios: un pequeño bloque de celdas cuya fila superior repite los encabezados de tus columnas y cuyas filas de abajo detallan las condiciones. =DSUM(A1:E200, "Amount", H1:H2) suma Amount de cada fila que coincida con lo que pongas en H1:H2. DCOUNT tiene la misma forma, pero cuenta las celdas numéricas del campo (usa DCOUNTA para contar también texto). Dos reglas sostienen a toda la familia: el argumento database debe incluir la fila de encabezados, y en el bloque de criterios misma fila = Y, filas apiladas = O. El fallo nº1: un encabezado de criterios que no coincide exactamente con un encabezado del rango de datos no coincide con nada y devuelve 0 sin avisar. Funciona en todas las versiones de Excel.

=DSUM(A1:E200, "Amount", H1:H2)      ' total de Amount de las filas que coinciden con el criterio de H1:H2
=DCOUNT(A1:E200, "Amount", H1:H2)    ' cuántas filas coincidentes tienen un NÚMERO en Amount
=DCOUNTA(A1:E200, "Rep", H1:H2)      ' cuenta las filas coincidentes con un Rep informado (vale texto)

Casi todo el trabajo de «suma con una condición» en Excel se hace hoy con SUMIFS: las condiciones tecleadas directamente en la fórmula. Las funciones D responden a la misma pregunta de otra manera, y esa diferencia es justo el punto: escribes las condiciones como una tabla visible en la hoja y apuntas la fórmula hacia ella. Suena aparatoso hasta que te topas con una pregunta de tres ramas O y un umbral calculado; en ese momento, un bloque de celdas que un revisor puede leer le gana a una fórmula que tiene que descifrar.

Nota: en una interfaz de Excel en español estas funciones aparecen como DSUM = BDSUMA, DCOUNT = BDCONTAR y DCOUNTA = BDCONTARA. También mencionadas: DGET = BDEXTRAER, SUMIFS = SUMAR.SI.CONJUNTO. Las fórmulas de abajo usan los nombres en inglés; el comportamiento es idéntico.

Lo que aprenderás

  • El modelo mental: el rango de criterios es tu consulta, escrita en la cuadrícula
  • Los tres argumentos, y por qué database debe incluir la fila de encabezados
  • Cómo el bloque de criterios codifica Y (misma fila) y O (filas apiladas)
  • Por qué DCOUNT devuelve 0 en una columna de texto, y cuándo recurrir a DCOUNTA
  • El truco (y la trampa) de «una fila de criterios vacía coincide con todo»
  • El criterio de decisión: cuándo DSUM le gana a SUMIFS, y cuándo no

El modelo mental: tu consulta vive en la hoja

Toda función D lee tres cosas: una tabla de datos, la columna de la que quieres un número y un rango de criterios. Esta última es la idea que ninguna otra parte de Excel utiliza. En lugar de enterrar las condiciones dentro de la fórmula, construyes una tabla diminuta —una fila de encabezados que coinciden con tus datos y una o más filas de condiciones debajo— y le pasas su dirección a la función.

' Los datos (A1:E200) tienen encabezados: Region | Product | Rep | Units | Amount
' El bloque de criterios (H1:H2):
'   H1: Region      <- un encabezado copiado de los datos, exacto
'   H2: West        <- la condición
=DSUM(A1:E200, "Amount", H1:H2)      ' -> total de Amount donde Region = West

Léelo como una frase: de esta tabla, suma la columna Amount para las filas que satisfacen la pequeña tabla de H1:H2. Toda la potencia —y cada uno de los tropiezos— viene de que ese bloque de criterios es datos, no código. Puedes editarlo, un revisor ve exactamente qué se preguntó y puedes apuntar diez fórmulas distintas al mismo bloque. Pero como la coincidencia es por el texto del encabezado, una errata ahí falla en silencio.

Los tres argumentos, y la fila de encabezados es obligatoria

=DSUM(database, field, criteria). Los tres son imprescindibles para trabajar de verdad, y el primero pilla a la gente de inmediato:

  • database — la tabla completa incluyendo su fila de encabezados (A1:E200, no A2:E200). Los encabezados no son adorno: son la vía por la que field y el bloque de criterios encuentran sus columnas. Empieza en la fila 2 y obtendrás #VALUE! o, en silencio, la columna equivocada.
  • fieldqué columna procesar. Tres maneras de nombrarla, ordenadas según lo bien que sobreviven a las ediciones:
=DSUM(A1:E200, "Amount", H1:H2)   ' por el texto del encabezado (entre comillas) — lo más claro, se mueve con la columna
=DSUM(A1:E200, E1, H1:H2)         ' por una celda que contiene el encabezado — bueno para informes parametrizados
=DSUM(A1:E200, 5, H1:H2)          ' por número de columna (la 5ª) — frágil; se rompe si las columnas se mueven
  • criteria — el rango que contiene tu bloque de encabezado y condiciones (H1:H2). Vive fuera del rango de datos, normalmente unas columnas a la derecha o unas filas más arriba.

Prefiere el encabezado entre comillas ("Amount"). Se lee con naturalidad y sigue funcionando cuando alguien inserta una columna y convierte el 5º campo en el 6º.

El bloque de criterios: Y en horizontal, O en vertical

Esta es la destreza que comparte toda la familia, así que vale la pena clavarla. El rango de criterios es una minitabla. Su fila superior son encabezados; cada fila de debajo es un conjunto de condiciones. Las condiciones de una misma fila deben cumplirse todas (Y); cada fila adicional es una alternativa (O).

' Y — una fila: Region West Y Amount mayor que 1000
'   H1: Region    I1: Amount
'   H2: West      I2: >1000
=DSUM(A1:E200, "Amount", H1:I2)

' O — filas apiladas: Region West O Region East
'   H1: Region
'   H2: West
'   H3: East
=DSUM(A1:E200, "Amount", H1:H3)

Amplía el rango de criterios para abarcar cada columna y fila que use tu bloque: en el ejemplo O es H1:H3, en el ejemplo Y es H1:I2. Los operadores (>, <, >=, <>) van directos a la celda como texto: >1000, <>West. Los criterios de texto no distinguen mayúsculas de minúsculas y, por defecto, coinciden desde el principio: un criterio de North también coincide con Northwest. Para forzar una coincidencia exacta, escribe ="=North". Los comodines también funcionan: Jo* coincide con Jones y Johnson.

El fallo más habitual de toda esta página: el encabezado de criterios debe coincidir con un encabezado del rango de datos carácter por carácter. Ammount, Region (con un espacio al final) o region frente a Region — Excel no avisa, simplemente no coincide con ninguna fila y devuelve 0. Cuando una función D devuelve 0 o un total demasiado bajo, revisa primero cómo está escrito el encabezado.

DCOUNT cuenta números; DCOUNTA cuenta todo

DCOUNT y DCOUNTA son la división COUNT/COUNTA trasplantada a un rango de criterios, y la distinción muerde exactamente igual.

=DCOUNT(A1:E200, "Amount", H1:H2)    ' cuenta filas donde Amount es un NÚMERO — p. ej. 34
=DCOUNT(A1:E200, "Rep", H1:H2)       ' cuenta celdas numéricas en Rep -> 0 (¡Rep es texto!)
=DCOUNTA(A1:E200, "Rep", H1:H2)      ' cuenta filas donde Rep no está en blanco -> 34

DCOUNT solo cuenta las celdas que contienen un número en el campo elegido. Apúntalo a una columna de texto como Rep y devolverá obedientemente 0: no es un error, solo un cero que parece «sin coincidencias». Cuando lo que quieres es cuántos registros coincidentes existen al margen del contenido, usa DCOUNTA sobre cualquier columna siempre informada, u omite por completo el argumento field: =DCOUNT(A1:E200, , H1:H2) cuenta todas las filas coincidentes. La regla práctica: contar un número → DCOUNT; contar registros → DCOUNTA.

«Coincidir con todo»: la fila de criterios vacía

Dale a un bloque de criterios un encabezado y una celda vacía debajo, y esa condición coincide con todas las filas. Es la manera de totalizar una columna entera con una función D, y resulta útil de vez en cuando para un bloque de criterios que activas y desactivas escribiendo un valor o borrándolo.

'   H1: Region
'   H2:            <- vacía: sin restricción
=DSUM(A1:E200, "Amount", H1:H2)      ' -> el total general de Amount, todas las regiones

La trampa es la otra cara: una fila en blanco accidental dentro de un bloque O de varias filas amplía toda la consulta a «todo», porque esa fila vacía coincide con todas las filas. Si un DSUM devuelve de repente el total general cuando esperabas una porción, busca una fila de condición en blanco perdida en el rango de criterios.

El criterio de decisión: DSUM frente a SUMIFS

Para la mayoría de los totales con condiciones, SUMIFS es la opción por defecto acertada: es compacta, portátil y no necesita ningún bloque auxiliar en la hoja. Entonces, ¿cuándo es DSUM la mejor herramienta? Cuando la propia pregunta deba ser visible y editable:

  • Lógica O compleja. SUMIFS no tiene un O nativo; lo apilas dentro de SUM({…}) o añades fórmulas. DSUM hace O añadiendo una fila, legible de un vistazo.
  • Una pregunta que los usuarios cambiarán. Un bloque de criterios es un pequeño panel de control. Colegas que no tocan fórmulas pueden cambiar West por East, o >1000 por >5000, sin tocar ninguna fórmula.
  • Condiciones basadas en fórmulas. DSUM acepta un criterio como =E2>AVERAGE(E:E) —«por encima del pedido medio»— calculado en vivo. (Más sobre esto en la guía de funciones de base de datos.)
  • Auditabilidad. En un modelo financiero, una tabla de criterios visible es documentación. El revisor lee la pregunta, no una fórmula anidada.

Reserva SUMIFS para el día a día de «pon este total con condición en esta celda» y para cualquier cosa que vayas a copiar hacia abajo por una columna. Recurre a DSUM cuando los criterios merezcan vivir en la hoja, y cuando necesites la extracción de exactamente un registro que solo DGET ofrece.

Cómo ayuda ExcelMaster

La fricción con las funciones D nunca es el DSUM: es construir bien el bloque de criterios —encabezados que coinciden con los datos, Y en una fila, O hacia abajo por las filas, el rango dimensionado para abarcarlo todo—. Dile a ExcelMaster «totaliza Amount de los pedidos de West o East por encima de 1.000» y dispondrá la tabla de criterios, escribirá los encabezados para que coincidan con tus datos y redactará el =DSUM(...) que apunta a ella. Pega un DSUM que se empeña en devolver 0 y comprobará al sospechoso de siempre —una errata en un encabezado— y lo arreglará.

Preguntas frecuentes

¿Cuál es la diferencia entre DSUM y SUMIFS?

Ambas totalizan una columna con condiciones. SUMIFS toma sus condiciones como argumentos dentro de la fórmula; DSUM las lee de un rango de criterios en la hoja: un bloque de celdas de encabezado y celdas de condición. DSUM maneja la lógica O y los criterios basados en fórmulas de forma más legible y mantiene la pregunta visible para su revisión; SUMIFS es más compacta y portátil. Usa SUMIFS por defecto y DSUM cuando los criterios deban ser editables en la cuadrícula.

¿Por qué mi DSUM devuelve 0?

Casi siempre es un desajuste entre el encabezado de criterios y el encabezado del rango de datos. Deben ser idénticos: misma ortografía, sin espacios al final. Confirma también que el argumento database incluye la fila de encabezados (A1:E200, no A2:E200) y que el rango criteria abarca todas tus celdas de condición. Una celda de condición en blanco, en cambio, coincide con todo en lugar de con nada.

¿Cuál es la diferencia entre DCOUNT y DCOUNTA?

DCOUNT cuenta las celdas del campo elegido que contienen un número; DCOUNTA cuenta las celdas que no están en blanco, incluido el texto. Apunta DCOUNT a una columna de texto y devuelve 0. Para contar cuántos registros coinciden con los criterios al margen del contenido, usa DCOUNTA sobre una columna informada, u omite el argumento field.

¿Cómo escribo una condición O en una función D?

Pon cada alternativa en su propia fila del rango de criterios. Para «Region West O East», coloca el encabezado Region en una celda y luego West y East en las dos celdas justo debajo, y dimensiona el rango de criterios para incluir las tres filas (p. ej. H1:H3). Las condiciones de una misma fila, en cambio, se unen con Y.

¿Funcionan DSUM y DCOUNT en versiones antiguas de Excel?

Sí. Las funciones de base de datos forman parte de Excel desde sus primeras versiones y funcionan igual en Excel 2016, 2019, 2021 y 365: no hay riesgo de #NAME? como sí lo hay con funciones más nuevas como GROUPBY. Son uno de los rincones más antiguos y estables de Excel.

Probado en

Probado en: Excel 365 (Windows 11) — última verificación 2026-07-20.

Guías relacionadas: Excel DGET · Excel Funciones de base de datos · Excel SUMIFS · Excel COUNTIFS · Excel FILTER