pub struct AverageFn;Trait Implementations§
Source§impl Function for AverageFn
Returns the arithmetic mean of numeric values across scalars and ranges.
impl Function for AverageFn
Returns the arithmetic mean of numeric values across scalars and ranges.
AVERAGE sums numeric inputs and divides by the count of numeric values that participated.
§Remarks
- Errors in any scalar argument or referenced range propagate immediately.
- In ranges, only numeric/date-time serial values are included; text and blanks are ignored.
- Scalar arguments use lenient number coercion with locale support.
- If no numeric values are found,
AVERAGEreturns#DIV/0!.
§Examples
title: "Average of scalar values"
formula: "=AVERAGE(10, 20, 5)"
expected: 11.666666666666666title: "Average over a mixed range"
grid:
A1: 10
A2: "x"
A3: 20
formula: "=AVERAGE(A1:A3)"
expected: 15title: "No numeric values returns divide-by-zero"
formula: "=AVERAGE(\"x\", \"\")"
expected: "#DIV/0!"related:
- SUM
- COUNT
- AVERAGEIF
- AVERAGEIFS
faq:
- q: "When does AVERAGE return #DIV/0!?"
a: "It returns #DIV/0! when no numeric values are found after filtering/coercion."
- q: "Do text cells in ranges affect the denominator?"
a: "No. Only numeric values are counted toward the divisor."[formualizer-docgen:schema:start] Name: AVERAGE Type: AverageFn Min args: 1 Max args: variadic Variadic: true Signature: AVERAGE(arg1…: number@range) Arg schema: arg1{kinds=number,required=true,shape=range,by_ref=false,coercion=NumberLenientText,max=None,repeating=None,default=false} Caps: PURE, REDUCTION, NUMERIC_ONLY, STREAM_OK [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 AverageFn
impl RefUnwindSafe for AverageFn
impl Send for AverageFn
impl Sync for AverageFn
impl Unpin for AverageFn
impl UnsafeUnpin for AverageFn
impl UnwindSafe for AverageFn
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