Contact

DMAX in ONLYOFFICE: Find the Largest Matching Database Amount

Database Intermediate ONLYOFFICE

Find a conditional maximum from a numeric database field, compare subsets, and distinguish a zero result from no matching records.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

Quick answer: =DMAX(A1:D8,"Amount",Q1:Q2) has the independent target 30. It selects East records first, then takes their largest Amount; the larger West value 40 is outside that subset.

Syntax and field selection

=DMAX(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 DMAX 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 maxima for different selections

Formula Target Matching numeric values
=DMAX(A1:D8,"Amount",Q1:Q2) 30 10,20,30,−5,15
=DMAX(A1:D8,3,F1:G2) 30 20,30
=DMAX(A1:D8,"Amount",I1:I3) 40 East and West
=DMAX(A1:D8,"Amount",M1:M2) 40 Every record
=DMAX(A1:D8,"Amount",S1:S2) 0 One North record

The criterion is evaluated on each record, but the maximum is taken from the selected field. A header name such as “Amount” is easier to audit than a numeric field index after columns are rearranged. If you choose field 3, remember that it is relative to the database range.

Advanced: use a repeated header for a numeric band

Create F7 Amount and G7 Amount, with F8 >=10 and G8 <=20. The two conditions on the same criteria row select amounts 10,20,15. =DMAX(A1:D8,"Amount",F7:G8) has independent target 20. The repeated criteria header applies two restrictions to the same field; do not duplicate database headers themselves.

Compare that result with =DMIN(A1:D8,"Amount",F7:G8), target 10. The interval’s observed spread is 20−10=10. This spread is not a standard deviation, and it does not describe the excluded amounts. For the East-only selection, the maximum 30 and minimum−5 give a wider observed spread 35.

No matches, negative values and text cautions

With the South criterion, =DMAX(A1:D8,"Amount",K1:K2) is source-predicted 0. That same displayed number is a valid maximum for the unique North record, so pair the result with an ID count when zero has business significance. A negative maximum is also possible if every selected value is negative; zero should not be inserted as a fictitious observation.

For a controlled numeric check outside the main table, create A12:B14 with headers Team,Amount and two East records −8 and−3. =DMAX(A12:B14,"Amount",Q1:Q2) has independent target−3. This confirms the intended ordering without changing the original database.

The source sorts raw selected values numerically and converts the leading value. It does not first filter all nonnumeric values in the same way as a simple numeric-only mathematical maximum. Keep Amount genuinely numeric; do not claim that text, booleans and errors are harmlessly ignored. A matched record with an empty selected field can instead produce the helper’s #DIV/0! error, while an invalid selected field is source-predicted #VALUE! for matching criteria.

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.

DAVERAGE, DCOUNT, DCOUNTA, DGET, DMIN and DSUM use related database/criteria structures but answer different questions. Choose the operation that matches the question; shared argument structure does not make their outputs interchangeable.

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