pub struct CountFn;Trait Implementations§
Source§impl Function for CountFn
Counts numeric values across scalars and ranges.
impl Function for CountFn
Counts numeric values across scalars and ranges.
COUNT evaluates all arguments and counts how many are numeric values.
Numbers, dates, and text representations of numbers (when supplied directly) are counted.
§Remarks
- Text values inside ranges are ignored and not counted.
- Blank cells and logical values in ranges are ignored.
§Examples
title: "Counting mixed scalar inputs"
formula: "=COUNT(1, \"x\", 2, 3)"
expected: 3title: "Counting in a range"
grid:
A1: 10
A2: "foo"
A3: 20
formula: "=COUNT(A1:A3)"
expected: 2related:
- COUNTA
- COUNTBLANK
- COUNTIF
- COUNTIFS
faq:
- q: "Why doesn't COUNT include text in a range?"
a: "COUNT only counts numeric values; text cells in ranges are ignored."
- q: "Can direct text like \"12\" be counted?"
a: "Yes. Direct scalar arguments are coerced and counted when they parse as numbers."[formualizer-docgen:schema:start] Name: COUNT Type: CountFn Min args: 0 Max args: variadic Variadic: true Signature: COUNT(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>],
_: &dyn FunctionContext<'b>,
) -> Result<CalcValue<'b>, ExcelError>
fn eval<'a, 'b, 'c>( &self, args: &'c [ArgumentHandle<'a, 'b>], _: &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 CountFn
impl RefUnwindSafe for CountFn
impl Send for CountFn
impl Sync for CountFn
impl Unpin for CountFn
impl UnsafeUnpin for CountFn
impl UnwindSafe for CountFn
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