Flavors of type "Formula" can be used to generate calculations between different numeric and date fields between system fields or other flavors. These calculations can be generated both at task level and project level (portfolio).
The formula flavors can be used for both simple and more complex formulas.
Example
Think of a simple example: You have a custom field (flavor) for the "hours worked" along with a custom field (flavor) for the "hourly rate". With formula flavors, you can add these together and determine the billable revenue.
The corresponding formula (with pink formatting 😎) looks like this:
In addition, in the list view, an average or a sum can be calculated in each column with numerical values - including or without subtasks:
Using the formula editor
- The formula is entered in the uppermost field
- The result preview constantly checks the entered formula and outputs a result if possible
- Using the search field, you can search for available flavors and functions
- In the left column fields, flavors and functions are displayed, which are available in the workspace.
- In the right column of the lower area, a description and the syntax (especially relevant for functions) are shown.
- The
Insert
button can be used to insert fields, flavors and functions into the formula field if you don't want to type them yourself
Create a simple formula
- Create a flavor
- Open the flavor settings
- Choose the type
Formula
- In the formula editor, the values of the fields can be inserted via the drawer
- Choose a first value
- Set an operator (
multiply
,add
,subtract
,divide
) - Choose a second value
Note: The current result is displayed in the result preview, provided that the formula was entered correctly. - If everything looks OK, save the formula by clicking the
Save
button.
Note:
Formula flavors are edited and saved in a task in the flavor settings, but the formula applies equally to all tasks.
Available fields
Standard fields
Formula flavors can currently be used with the following fields:
FIELD | DESCRIPTION |
---|---|
actualcost | Actual cost of a task |
actualduration |
Returns the actual duration of the task (in hours) |
column | Column title |
cost | Planned cost of a task |
duedate | Due date of a task/project |
duration |
Returns the planned duration of the task (in hours) |
isProject | Returns 1 if the current object is a project, otherwise 0 |
isSubtask | Returns 1 if the current object is a subtask, otherwise 0 |
isTask | Returns 1 if the current object is a task, otherwise 0 |
startdate | Start date of a task/project |
status |
(System) status can be 0 (= Not started) 1 (= In progress) 2 (= Done) |
title |
Title of the current object |
today | Returns current date |
Custom fields (flavors)
In addition to the standard fields mentioned above, all flavors used in the workspace are also available in the formula editor in order to use their values in formulas.
Available functions and their syntax
A total of 25 different functions can currently be used in Formula Flavors. We support many of the common functions you may know from Excel or Google Sheets.
FUNCTION | DESCRIPTION | SYNTAX | EXAMPLE |
---|---|---|---|
abs | Returns the absolute value of a number |
abs(...) |
abs(-10)=10 |
asNumber | Returns the value of the parameter as a number rounded to 2 decimals, if possible | asNumber(number) | asNumber('3.14159265359') = 3.14 |
contains |
Returns Cannot be persisted via persist.
Cannot be persisted via persist. |
contains(haystack, needle[, ignoreCase]) |
- |
count |
Returns the number of occurrences of the string
Cannot be persisted via persist. |
count(haystack, needle) |
count(haystack, needle) |
date | Returns the value of the parameter as date, if possible | date(date) | date("2021-05-03T15:00Z") = Mon May 03 2021 17:00:00 GMT+0200 (Mitteleuropäische Sommerzeit) |
days |
Returns the number of days that lie between the two input dates |
days(startdate, duedate) |
days(startdate, duedate) = 5 |
endsWith |
Returns
Cannot be persisted via persist. |
endsWith(haystack, needle[, ignoreCase]) |
endsWith(haystack, needle[, ignoreCase]) |
flavor | Returns the value of the flavor | flavor(name) | flavor("unicorn") = 🦄 |
format | Serves for the formatting of a value within the list view. The value (or formula) to be formatted must be used as the first parameter. With the help of the 2nd parameter a prefix can be defined, with the 3rd parameter a suffix. The last parameter serves the coloring of the text content | format(expression, prefix, suffix, color) | format(cost, "Cost: ", " $", "red") |
if | Used to define a condition |
if(condition, valueTrue, valueFalse) |
|
indexOf |
Returns where the (
Cannot be persisted via persist. |
indexOf(haystack,needle[, index]) |
indexOf("Lieber Elefant,Einhorn oder Pegasus?","E") = 7
|
length |
Returns the length of the passed string.
Cannot be persisted via persist. |
length(string) |
|
lower |
Returns the string converted to lowercase.
Cannot be persisted via persist. |
lower(string) |
|
persist | Persists a field for calculation outside the task list. Must be written around the actual formula, and must be the first called function in a formula. | persist(...) | |
projectFlavor |
Returns the value of the flavor from the project |
projectFlavor(...) |
projectFlavor("unicorn") = 🦄 |
relation |
Returns the value of a relation flavor. The
Cannot be persisted via persist. |
relation(name[, index]) |
|
segment |
Splits the string
Cannot be persisted via persist. |
segment(string, separator[, index]) |
segment("Ich finde Einhörner toll."," ",2) = "Einhörner" |
sort |
Returns the sorted list contained in the string
Cannot be persisted via persist. |
sort(list, separator[, direction]) |
sort("B,C,A",",") = "A,B,C" |
startsWith |
Returns
Cannot be persisted via persist. |
startsWith(haystack, needle[, ignoreCase]) |
|
subString |
Returns the string between
Cannot be persisted via persist. |
subString(string, start[, end])
|
subString("Ein Eis bitte",4,7) = "Eis" |
sumAll |
|
sumAll('expression', includeSubtasks) |
|
sumFolder |
|
sumFolder('expression', includeSubtasks) |
|
sumSubtask |
|
sumSubtask('expression') |
|
trim |
Returns the passed string after all leading and trailing spaces have been removed. Spaces include various spaces (e.g. normal spaces or tabs) as well as all characters leading to line breaks.
Cannot be persisted via persist. |
trim(string) |
|
year |
Returns the year of a given date |
year(...) |
year("2021/06/21") = 2021 |
Operators
* | Multiply |
/ | Divide |
+ | Add |
- | Subtract |
&& | Logical AND |
== | Equals |
!= | Not equal |
> | Is greater |
< | Is less |
<= | Less or equal |
>= | Greater or equal |
Comments
0 comments
Please sign in to leave a comment.