Database functions
DMIN
Matches all 3 recorded answers
Recorded: 3 workbook cells. How we measure this · See the Rust code
Local names in 40 languages
| Language | Name in Excel |
|---|---|
| Arabic | DMIN |
| Bulgarian | DMIN |
| Czech | DMIN |
| Danish | DMIN |
| German | DMIN |
| Greek | DMIN |
| English (Australia) | DMIN |
| English (United Kingdom) | DMIN |
| English (United States) | DMIN |
| Spanish | BDMIN |
| Estonian | DMIN |
| Finnish | TMIN |
| French | BDMIN |
| Hebrew | DMIN |
| Croatian | DMIN |
| Hungarian | AB.MIN |
| Indonesian | DMIN |
| Italian | DMIN |
| Japanese | DMIN |
| Korean | DMIN |
| Lithuanian | DMIN |
| Latvian | DMIN |
| Norwegian | DMIN |
| Dutch | DBMIN |
| Polish | BD.MIN |
| Portuguese (Brazil) | DMIN |
| Portuguese (Portugal) | BDMÍN |
| Romanian | DMIN |
| Russian | ДМИН |
| Slovak | DMIN |
| Slovenian | DMIN |
| Serbian (Latin) | DMIN |
| Swedish | DMIN |
| Thai | DMIN |
| Turkish | VSEÇMİN işlevi |
| Ukrainian | DMIN |
| Vietnamese | DMIN |
| Chinese (Simplified) | DMIN |
| Chinese (Hong Kong) | DMIN |
| Chinese (Traditional) | DMIN |
Names from Microsoft's support site.
What it does
DMIN(database, field, criteria)
DMIN(database, field, criteria) selects the records of database that satisfy criteria,
reads the column named by field, and returns the smallest of the numeric values found there.
With R the set of selected record rows, c the resolved field column, and
V = [ v : v = value of cell (r, c) for r in R, where v is a Number ]
On a column of strictly positive numbers that zero is indistinguishable in kind from a real
answer, and it is smaller than every value actually present. DMIN is therefore the member of
the family where the empty-selection convention does the most damage if it goes unnoticed.
The selection stage — header matching, AND across a criteria row, OR down the rows, blank criteria cells, and criteria-expression parsing — is identical for all twelve database functions and is explained once in the criteria-range mechanism.
Arguments
Three arguments, all required at the call site; the reference implementation declares an arity of exactly 3.
Try it
Quirks
Result and edge cases
Returns a Number.
- No numeric value selected:
0, not an error. See the warning above. - Text that looks numeric in the field column is skipped, per the range-scan side of the asymmetry in coercion and lifting.
- Logicals in the field column are skipped, so
FALSEnever wins as 0. - Ties are invisible: the value is returned, not the record that held it.
- Arrays: inline array literals resolve to grids and are accepted;
DMINis not a lift kernel.
Errors
| Error | Condition |
|---|---|
#VALUE! | database or criteria is not a grid or is empty; a database header cell is blank; a criteria header names no database field; field matches no header, or is a non-integer or out-of-range column index |
| propagated | An error value in a header cell, a criteria cell, or a scanned field cell surfaces as that error |
How to implement
Notes for implementers
- The empty-selection zero is a convention. Apply it after the non-numeric skip, and be aware that it is not the identity of the min operation in any useful sense — it is a compatibility answer.
- Skip, do not coerce. Admit only cells whose value kind is Number.
- Two comparison paths, one function. Criteria matching uses the tolerant, truncation-style comparison lane; the min reduction over the collected values uses ordinary IEEE ordering. Keep them separate.
- Numeric criteria comparison is not exact double comparison — see the note in the shared mechanism.
Rust code
Show the CalcFunc source of this function
Quoted from the public repository DnaCalc/DnaCalc, crates calc-func and calc-fml, at commit 9e1884369a67. Comments are the source's own. A kernel shared with other functions appears once, on its module page.
DMIN · 1 lines · calc-func/src/catalogue/database.rs on GitHub6 dmin "DMIN" (3, 3) [R "database", V "field", R "criteria"] |s, a, sv| { database(s, a, sv, Kind::Min) }
Kernels shared with other functions
readercatalogue/aggregateread_referencecatalogue/aggregatenumberscatalogue/comparisonin_bandcatalogue/comparisonRounded::upcatalogue/comparisonRoundings::ofcatalogue/comparisonRoundings::disjointcatalogue/comparisontextscatalogue/comparisoncomparecatalogue/comparison/collationweighedcatalogue/comparison/collationmeasured_iteration_extensioncatalogue/comparison/collationtablecatalogue/comparison/sort_keydecode64catalogue/comparison/sort_keyReader::bytecatalogue/comparison/sort_keyReader::varintcatalogue/comparison/sort_keyReader::donecatalogue/comparison/sort_keyin_rangescatalogue/comparison/sort_keybuildcatalogue/comparison/sort_keyhan_basecatalogue/comparison/sort_keyderivecatalogue/comparison/sort_keyshared_jamo_tailscatalogue/comparison/sort_keyordinary_jamo_prefixcatalogue/comparison/sort_keyindependent_jamo_suffixcatalogue/comparison/sort_keyjamo_leading_primarycatalogue/comparison/sort_keyleading_ordercatalogue/comparison/sort_keyBefore::separate_specialcatalogue/comparison/sort_keyGathered::kanacatalogue/comparison/sort_keyGathered::unitcatalogue/comparison/sort_keypartscatalogue/comparison/sort_keydiacritic_ordercatalogue/comparison/sort_keydiacriticscatalogue/comparison/sort_keyrangecatalogue/conditionalrowcatalogue/conditionaloffsetcatalogue/conditionalread_rangecatalogue/conditionalverdictscatalogue/conditionalusedcatalogue/conditionalMatch::ofcatalogue/conditionalMatch::negatedcatalogue/conditionalOp::holdscatalogue/conditionalOp::is_equalitycatalogue/conditionalspellscatalogue/conditionalcriterioncatalogue/conditionaldatabase_criterioncatalogue/conditionalrankcatalogue/conditionalcriterion_textcatalogue/conditionaldecidedcatalogue/conditionalCriterion::verdictcatalogue/conditionalequalitycatalogue/conditionalis_surrogatecatalogue/conditionalwildcardcatalogue/conditionallabelcatalogue/databasesame_labelcatalogue/databasefieldcatalogue/databasematchingcatalogue/databasecriterion_verdictcatalogue/databasedatabasecatalogue/databasepublishedcatalogue/databaselow32decimalNatural::from_u64decimalNatural::pow10decimalNatural::normalizedecimalNatural::is_zerodecimalNatural::mul_add_smalldecimalNatural::times_pow10decimalNatural::times_pow5decimalNatural::times_pow2decimalExactDecimal::binarydecimalexcel_sqrt_stagedported/excel_numerictextported/text_kernelstext_from_strported/text_kernelsfold_unitported/text_kernelspush_singleton_or_originalported/text_kernelspush_lowerported/text_kernelslowerported/text_kernelsvariance_from_valuesported/variance_commonstdev_from_valuesported/variance_common
Argument and result plumbing
No implementation has been published with a Handbook test suite for this function.
Version differences
No comparison between specific Excel builds is recorded here yet. This does not establish that all builds behave alike.
Alternatives
Relationships
- DMAX is the mirror member, identical but for the comparison direction.
- Nearest modern equivalent:
MINIFS, with inline conditions instead of a criteria table. - Confused with:
MIN(no selection stage),SMALL(k-th smallest), andMINA(which counts logicals and text as values).
Named variants
No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents