Resumen —
DSUM(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 enH1:H2.DCOUNTtiene la misma forma, pero cuenta las celdas numéricas del campo (usaDCOUNTApara contar también texto). Dos reglas sostienen a toda la familia: el argumentodatabasedebe 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é
databasedebe incluir la fila de encabezados - Cómo el bloque de criterios codifica Y (misma fila) y O (filas apiladas)
- Por qué
DCOUNTdevuelve 0 en una columna de texto, y cuándo recurrir aDCOUNTA - El truco (y la trampa) de «una fila de criterios vacía coincide con todo»
- El criterio de decisión: cuándo
DSUMle gana aSUMIFS, 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, noA2:E200). Los encabezados no son adorno: son la vía por la quefieldy el bloque de criterios encuentran sus columnas. Empieza en la fila 2 y obtendrás#VALUE!o, en silencio, la columna equivocada.field— qué 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.
SUMIFSno tiene un O nativo; lo apilas dentro deSUM({…})o añades fórmulas.DSUMhace 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
WestporEast, o>1000por>5000, sin tocar ninguna fórmula. - Condiciones basadas en fórmulas.
DSUMacepta 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
