Tinderbox v10 Icon

sum_if(scope, condition, expressionStr)


Operator Type: 

Operator Scope of Action: 

Operator Purpose: 

Data Type Returned: 

Operator First Added: 

Operator in Current Baseline: 

Operator Last Altered: 

Operator Uses Regular Expressions: 

Operator Uses Scoped Arguments: 

Operator Has Conditional Arguments: 

Operator Has Newer Dot-Operator Variant: 

 Function  [other Function type actions]

 Conditional Group  [operators of similar scope]

 Mathematical  [other Mathematical operators]

 Number [about Number data type]

 v4.0.0

 Baseline

 As at baseline

 [More on regular expressions in Tinderbox]

 [More on scoped arguments in Action Code]

 [More on conditional operator arguments]

Yes


sum_if(scope, condition, expressionStr)

This computes the Number sum of every expressionStr value in each scope item (defining scope), as filtered by a condition expression. See sum() for a related non-conditional operator.

scope describes the notes to be examined and may be any group designator including a find() query. sum_if() omits notes for which $Searchable is false.

In addition, where may be argument that designates a particular (single) note other than this.

condition is action code forming a valid conditional query test, i.e. it equates to true when matched. Some query-style operators terms may allow use of regular expressions.

expressionStr can be an expression, but is typically a Number-attribute value or a List or Set holding a list of numbers. It can also be a literal number 1, i.e. if the test is true from that item then add one to the retuned value of sum_if().

For example,

$MyNumber = sum_if(children,$Prototype=="p_Problem",1); 

sums the number of children of the current note whose prototype is 'p_Prototype'. If tested value is a string with spaces, e.g. "p Prototype" vs. "p_Prototype" then use double quotes around the value.

The newer count_if() offers a more intuitive method of counting matches rather than the value of matched items.


See also—notes linking to here: