DCOUNTA in ONLYOFFICE: Count Populated Fields in Matching Records
Count nonempty database fields, distinguish blank notes from numeric zeros, and avoid treating populated-field counts as record counts.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: =DCOUNTA(A1:D8,"Note",Q1:Q2) has the independent target 3: the matching East notes are ready,hold,review. Two other matching records have genuinely empty Note cells.
Syntax and field selection
=DCOUNTA(database, field, criteria)
All three arguments are explicit in this guide. Database includes its header row; field is a quoted header or one-based column position within that database; criteria is a separate rectangle with recognized headers and at least one row beneath them. The official DCOUNTA reference documents this interface.
Build the database and criteria blocks
Create a blank sheet named DatabaseChecks. Enter this database in A1:D8, including the header row. Entries marked empty must be genuinely empty cells, not the word “empty”, a space or a formula returning empty text.
| Row | A: ID | B: Team | C: Amount | D: Note |
|---|---|---|---|---|
| 2 | 101 | East | 10 | ready |
| 3 | 102 | West | 40 | ready |
| 4 | 103 | East | 20 | empty |
| 5 | 104 | East | 30 | hold |
| 6 | 105 | North | 0 | ready |
| 7 | 106 | East | -5 | review |
| 8 | 107 | East | 15 | empty |
These are fictional records. Amount is deliberately numeric, including a genuine zero and a negative adjustment. Note provides a separate text/blank field for count comparisons. Headers are unique and consistent.
Build these separate criteria blocks; none overlaps A1:D8:
| Purpose | Exact entries | Range |
|---|---|---|
| East only | Q1 Team; Q2 East | Q1:Q2 |
| East AND amount at least 20 | F1 Team; G1 Amount; F2 East; G2 >=20 | F1:G2 |
| East OR West | I1 Team; I2 East; I3 West | I1:I3 |
| No matching team | K1 Team; K2 South | K1:K2 |
| All records | M1 Team; M2 genuinely empty | M1:M2 |
| Unique ID 103 | O1 ID; O2 numeric 103 | O1:O2 |
| Unique ID 105 | S1 ID; S2 numeric 105 | S1:S2 |
Enter >=20 as criterion text, not a formula. Place result formulas in U2:U15, outside every data/criteria block. The extra spaces used in this explanation are not part of the header text.
Worked nonempty counts
| Formula | Target | Selected values |
|---|---|---|
=DCOUNTA(A1:D8,"Note",Q1:Q2) |
3 | Three populated East notes |
=DCOUNTA(A1:D8,"Amount",Q1:Q2) |
5 | Five numeric East amounts |
=DCOUNTA(A1:D8,4,F1:G2) |
1 | Only hold among IDs 103,104 |
=DCOUNTA(A1:D8,"Note",I1:I3) |
4 | East notes plus West ready |
=DCOUNTA(A1:D8,"Note",M1:M2) |
5 | All populated notes |
Field 4 selects Note within the database. DCOUNTA counts populated selected values, not unique text labels: two different records containing ready each contribute. OR alternatives do not duplicate a record already selected by another criteria row in the inspected helper.
Advanced: build a completeness measure
For this fixture, five East IDs are populated and three East notes are populated. =DCOUNTA(A1:D8,"Note",Q1:Q2)/DCOUNTA(A1:D8,"ID",Q1:Q2) has independent target 0.6, or 60%. The denominator is a count of matched records with reliable populated IDs; it must not be replaced with the count of populated notes.
A blank Note is not the same as zero Amount. DCOUNTA on the all-record Amount field has target 7, including North’s zero. A formula returning empty text is also not necessarily a genuine empty cell: the checked code tests the element’s empty type. Do not assume all visually blank cells are excluded without a separate formula-empty-string test.
Use DCOUNT for the selected numeric-like count. In this fixture its East Note target is 0, not 3. Neither function tells you whether a populated note is meaningful, approved or unique; content validation is a separate step.
No-match and all-empty-selected-field distinction
=DCOUNTA(A1:D8,"Note",K1:K2) is source-predicted 0 because no South records match. In contrast, the ID 103 criterion matches a real record whose Note is empty. The helper skips that selected value, then returns its empty-result error; =DCOUNTA(A1:D8,"Note",O1:O2) is therefore source-predicted #DIV/0!, not 0.
This is an implementation-specific caveat, not normal mathematical counting. Do not replace all errors with 0 in a completeness report, since that hides an invalid field or another failure as well. An unknown selected field such as “Missing” with the East criterion is source-predicted #VALUE!. Keep valid headers and explicit fields, and inspect unexpected errors before interpreting the ratio.
Criteria logic and important ONLYOFFICE source limits
Conditions in one criteria row are combined with AND; separate rows supply OR alternatives. The first main OR row above matches East, and the second matches West. A record matching both alternatives is collected once in the inspected helper.
A blank criterion means no restriction for that column in the checked source. Thus M1:M2 selects all records; it is not a request to find blank Team cells. An accidental blank OR row can similarly broaden the selection. Keep the criteria rectangle tight rather than including unused rows for convenience.
Bare text is another trap: the helper appends a wildcard to a text criterion without an operator. East can therefore match a longer prefix such as Eastside. This database contains no such team, so the main results are unambiguous. To request explicit equality in a future test, store =East as text, for example by typing a leading apostrophe before it; do not accidentally enter it as a formula. Wildcard, case and locale edge behavior needs its own bounded validation.
There is also a version-specific OR caveat. The inspected helper can return early when the first recognized criteria row has no matches, before considering later OR rows. Do not promise order-independent OR behavior from this implementation. Reversing a deliberately unmatched first row and a matching second row is a separate source-predicted regression probe, not a native test performed here.
Unknown criterion headers are not a safe way to request “no match”: the helper skips unrecognized headers and, if none are recognized, can select every record. Copy valid headers exactly and distinguish a misspelled criterion heading from an unknown selected field. These observations come from the shared source helper, not from applying another product’s database-function rules.
Related functions
Availability, compatibility and verification
The function is currently documented in ONLYOFFICE’s unversioned Spreadsheet Editor help. Its first introduction release/date, final supported version and any retirement announcement are not established by these sources. Documentation presence does not establish support in every older Desktop Editors build, Docs deployment or mobile client.
This guide checks official SDKJS tag v10.0.0.169, commit 3679e0375a758d7dc59d31337a45461be3525ed8, alongside current help on October 18, 2026. Main arithmetic is independently calculated; implementation-specific branches are labeled source-predicted. No ONLYOFFICE engine or application was executed for these examples. No native screenshots or recalculated workbook are claimed.
Formulas use English names and comma separators. Adapt separators to the actual editor locale. Similar function names elsewhere do not guarantee identical criteria matching, text coercion, errors or blank-field handling. Keep the database header in the formula range and preserve genuinely empty cells when transferring the example.
References checked October 18, 2026
- Official DCOUNTA help: function purpose and three-argument interface.
- Tagged shared criteria implementation: matching, field selection and blank/error paths.
- Tagged DCOUNTA implementation: operation-specific calculation.