pub struct DAverageFn;Trait Implementations§
Source§impl Debug for DAverageFn
impl Debug for DAverageFn
Source§impl Function for DAverageFn
Returns the arithmetic mean of values in a database field for matching records.
impl Function for DAverageFn
Returns the arithmetic mean of values in a database field for matching records.
DAVERAGE applies criteria filtering first, then averages the numeric values in field.
§Remarks
- Criteria rows are OR conditions, while criteria columns in the same row are AND conditions.
fieldcan be a case-insensitive header name or a 1-based column index; invalid field resolution returns#VALUE!.- If no numeric values match, the function returns
#DIV/0!.
§Examples
title: "Average units for Gadget sales"
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: "Product"
G2: "Gadget"
formula: "=DAVERAGE(A1:E7, \"Units\", G1:G2)"
expected: 29title: "Average revenue for West or South regions"
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: "West"
G3: "South"
formula: "=DAVERAGE(A1:E7, 5, G1:G3)"
expected: 97000related:
- DSUM
- DCOUNT
- AVERAGEIFS
faq:
- q: "What happens if criteria match rows but field values are non-numeric?"
a: "DAVERAGE skips non-numeric values and returns #DIV/0! if no numeric values remain after filtering."[formualizer-docgen:schema:start] Name: DAVERAGE Type: DAverageFn Min args: 3 Max args: 1 Variadic: false Signature: DAVERAGE(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 DAverageFn
impl RefUnwindSafe for DAverageFn
impl Send for DAverageFn
impl Sync for DAverageFn
impl Unpin for DAverageFn
impl UnsafeUnpin for DAverageFn
impl UnwindSafe for DAverageFn
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