pub struct DGetFn;Trait Implementations§
Source§impl Function for DGetFn
Returns a single field value from the only record that matches criteria.
impl Function for DGetFn
Returns a single field value from the only record that matches criteria.
DGET is useful for keyed lookups where criteria are expected to identify exactly one record.
§Remarks
- Criteria rows are OR alternatives; criteria columns inside one row are AND predicates.
fieldresolves from a case-insensitive header name or 1-based index; unresolved field/header references return#VALUE!.- Returns
#VALUE!when no records match and#NUM!when multiple records match.
§Examples
title: "Get salesperson for a unique North Widget record"
grid:
A1: "Region"
B1: "Salesperson"
C1: "Product"
D1: "Units"
E1: "Revenue"
A2: "West"
B2: "Diaz"
C2: "Widget"
D2: 24
E2: 126000
A3: "East"
B3: "Patel"
C3: "Gadget"
D3: 31
E3: 142500
A4: "North"
B4: "Kim"
C4: "Widget"
D4: 18
E4: 87000
A5: "West"
B5: "Ramos"
C5: "Service"
D5: 12
E5: 46000
A6: "South"
B6: "Lee"
C6: "Gadget"
D6: 27
E6: 119000
A7: "East"
B7: "Noor"
C7: "Widget"
D7: 22
E7: 101000
G1: "Region"
H1: "Product"
G2: "North"
H2: "Widget"
formula: "=DGET(A1:E7, \"Salesperson\", G1:H2)"
expected: "Kim"title: "Multiple matches return NUM error"
grid:
A1: "Region"
B1: "Salesperson"
C1: "Product"
D1: "Units"
E1: "Revenue"
A2: "West"
B2: "Diaz"
C2: "Widget"
D2: 24
E2: 126000
A3: "East"
B3: "Patel"
C3: "Gadget"
D3: 31
E3: 142500
A4: "North"
B4: "Kim"
C4: "Widget"
D4: 18
E4: 87000
A5: "West"
B5: "Ramos"
C5: "Service"
D5: 12
E5: 46000
A6: "South"
B6: "Lee"
C6: "Gadget"
D6: 27
E6: 119000
A7: "East"
B7: "Noor"
C7: "Widget"
D7: 22
E7: 101000
G1: "Region"
G2: "East"
formula: "=DGET(A1:E7, 5, G1:G2)"
expected: "#NUM!"related:
- DSUM
- DCOUNT
- XLOOKUP
faq:
- q: "Why does DGET fail when criteria match two rows?"
a: "DGET requires exactly one matching record; multiple matches produce #NUM! and zero matches produce #VALUE!."[formualizer-docgen:schema:start] Name: DGET Type: DGetFn Min args: 3 Max args: 1 Variadic: false Signature: DGET(arg1: any@scalar) Arg schema: arg1{kinds=any,required=true,shape=scalar,by_ref=false,coercion=None,max=None,repeating=None,default=false} Caps: PURE, REDUCTION [formualizer-docgen:schema:end]
fn name(&self) -> &'static str
fn min_args(&self) -> usize
fn variadic(&self) -> bool
fn arg_schema(&self) -> &'static [ArgSchema]
Source§fn eval<'a, 'b, 'c>(
&self,
args: &'c [ArgumentHandle<'a, 'b>],
ctx: &dyn FunctionContext<'b>,
) -> Result<CalcValue<'b>, ExcelError>
fn eval<'a, 'b, 'c>( &self, args: &'c [ArgumentHandle<'a, 'b>], ctx: &dyn FunctionContext<'b>, ) -> Result<CalcValue<'b>, ExcelError>
The unified evaluation path. Read more
fn namespace(&self) -> &'static str
fn volatile(&self) -> bool
Source§fn aliases(&self) -> &'static [&'static str]
fn aliases(&self) -> &'static [&'static str]
Optional list of additional alias names (case-insensitive) that should resolve to this
function. Default: empty slice. Implementors can override to expose legacy names.
Returned slice must have ’static lifetime (typically a static array reference).
fn function_salt(&self) -> u64
Source§fn eval_reference<'a, 'b, 'c>(
&self,
_args: &'c [ArgumentHandle<'a, 'b>],
_ctx: &dyn FunctionContext<'b>,
) -> Option<Result<ReferenceType, ExcelError>>
fn eval_reference<'a, 'b, 'c>( &self, _args: &'c [ArgumentHandle<'a, 'b>], _ctx: &dyn FunctionContext<'b>, ) -> Option<Result<ReferenceType, ExcelError>>
Optional reference result path. Only called by the interpreter/engine
when the callsite expects a reference (e.g., range combinators, by-ref
argument positions, or spill sources). Read more
Source§fn dispatch<'a, 'b, 'c>(
&self,
args: &'c [ArgumentHandle<'a, 'b>],
ctx: &dyn FunctionContext<'b>,
) -> Result<CalcValue<'b>, ExcelError>
fn dispatch<'a, 'b, 'c>( &self, args: &'c [ArgumentHandle<'a, 'b>], ctx: &dyn FunctionContext<'b>, ) -> Result<CalcValue<'b>, ExcelError>
Dispatch to the unified evaluation path with automatic argument validation.
Auto Trait Implementations§
impl Freeze for DGetFn
impl RefUnwindSafe for DGetFn
impl Send for DGetFn
impl Sync for DGetFn
impl Unpin for DGetFn
impl UnsafeUnpin for DGetFn
impl UnwindSafe for DGetFn
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more