Querying structured tables in Microsoft Excel to isolate peak and baseline data points often becomes unwieldy when working with multiple intersecting conditional filters. While modern Excel functions like MINIFS and MAXIFS can evaluate simple criteria ranges, they struggle to model complex “OR” logic across different columns without cumbersome addition formulas. Excel’s dedicated database functions—DMIN and DMAX—solve this limitation by querying structured database lists against dedicated criteria tables, replicating SQL-style conditional queries natively within standard spreadsheet cells.
Syntax and Parameter Reference
Both DMIN and DMAX adhere to a standardized three-argument syntax:
=DMIN(database, field, criteria)
=DMAX(database, field, criteria)
database: The entire cell range containing your structured data table, including the top header row (for example,A1:E200).field: Specifies which numeric column to extract the minimum or maximum value from. You can supply the exact column header title as a text string enclosed in quotes (e.g.,"Unit Price"or"Latency (ms)"), or supply its 1-indexed column position (e.g.,5for the fifth column).criteria: The separate cell range that contains your evaluation conditions, including at least one column header label and at least one condition cell below it.
Configuring Criteria Blocks: AND vs OR Logic
The true architectural advantage of database functions lies in the layout of the criteria range:
- Horizontal Placement (Logical AND): Criteria entered on the same row require all conditions to evaluate to
TRUEsimultaneously. For instance, putting “North” under Region and “>100” under Units on Row 2 evaluates:Region = "North" AND Units > 100. - Vertical Placement (Logical OR): Criteria placed on different rows evaluate with logical “OR” behaviour. Placing “North” on Row 2 and “South” on Row 3 filters records originating from either the North or South territories.
Step-by-Step Practical Walkthrough
Consider an operational equipment log containing machinery performance metrics across a manufacturing plant:
- Table Range (
A5:E50): Columns are Machine ID (A), Department (B), Operating Temp (°C) (C), Vibration Score (D), and Maintenance Cost (E). - Criteria Block (
A1:B3): Headers inA1:B1match Department and Vibration Score.
Example 1: Finding Maximum Operating Temperature with Single Condition
To find the highest operating temperature recorded in the “Machining” department:
- In cell
A1, enter the exact column header:Department. - In cell
A2, enter the criterion:Machining. - In cell
G2, enter theDMAXformula:=DMAX(A5:E50, "Operating Temp (°C)", A1:A2) - Excel searches the database range, filters for Machining department records, and returns the highest recorded temperature.
Example 2: Finding Minimum Maintenance Cost with Multi-Row OR Criteria
Suppose you want to identify the lowest maintenance cost among machines that either have high vibration scores in Machining OR belong to the Assembly department regardless of vibration:
- Set up your criteria table in
A1:B3:A1=Department|B1=Vibration ScoreA2=Machining|B2=>7.5A3=Assembly|B3= (leave blank to match all Assembly records)
- In cell
G3, enter theDMINformula:=DMIN(A5:E50, "Maintenance Cost", A1:B3) - Excel checks both rows in the criteria block and outputs the absolute minimum maintenance expenditure among qualifying assets.
Comparison: DMIN/DMAX vs MINIFS/MAXIFS
Selecting the appropriate analytical tool depends on the structural complexity of your reporting requirements:
MINIFS/MAXIFS: Ideal for compact, in-cell conditional logic where conditions are static and rely solely on logical AND comparisons across columns. They do not require configuring separate criteria tables.DMIN/DMAX: Superior when dealing with complex, multi-tiered boolean logic, compound OR criteria, dynamic user inputs via form cells, or large database tables where external criteria tables can be referenced and modified without rewriting formulas.
Common Errors and Troubleshooting Tips
When implementing database functions in Excel, check these common configuration discrepancies:
- Header Spelling Mismatches: The header labels in your criteria range must match the database column headers character-for-character. If your table header is
Cost (£)and your criteria header is typed asCost, Excel cannot map the field and returns a#VALUE!or inaccurate result. Copy and paste headers directly to prevent typos. - Accidental Blank Rows in Criteria: If your criteria range references an entirely blank row (for example, passing
A1:A3whenA3is completely empty), Excel interprets the empty row as “match all records without restriction”, causingDMINto return the minimum value of the entire un-filtered database. - Field Argument Errors: Passing a column index number greater than the total number of columns in the database range triggers an immediate
#NUM!or#VALUE!error.