Omniscope provides a comprehensive library of functions that can be applied in various areas of the platform, including:
- Data Preparation Workflow: Within the Field Organiser block.
- Report Area: Specifically in the Data Model, Formula Measures, and Content View.
This documentation aims to assist users in searching and understanding the available functions. You can filter and search for specific functions and explore their usage areas on the online live Report https://omniscope.me/Demos/Formulas+and+variables/Omniscope+functions+picker.ior/
Below is a list of available functions in Omniscope:
Omniscope Evo Formula Functions
TABLE OF CONTENTS
Workflow: Field Organiser block
Available within the workflow by adding Field Organiser blocks with formula fields.
Function | Description |
---|---|
ABS(number) (Maths/Stats) | Returns the absolute value of a number, a number without its sign. |
ACOS(number) (Maths/Stats) | Returns the arccosine of a number, in radians in the range 0 to Pi. The arccosine is the angle whose cosine is Number. |
ACOSH(number) (Maths/Stats) | Returns the inverse hyperbolic cosine of a number. |
ALLRECORDCOUNT() (Maths/Stats) | Evaluates to the total number of records (rows) in all data, before any filtering or in-view aggregation has been applied. Not supported for dynamic evaluation in aggregated views. |
AND(logical1, logical2, ...) (Logical) | Checks whether all arguments are TRUE, and returns TRUE if all arguments are TRUE. |
ASIN(number) (Maths/Stats) | Returns the arcsine of a number in radians, in the range -Pi/2 to Pi/2. |
ASINH(number) (Maths/Stats) | Returns the inverse hyperbolic sine of a number. |
ATAN(number) (Maths/Stats) | Returns the arctangent of a number in radians, in the range -Pi/2 to Pi/2. |
ATANH(number) (Maths/Stats) | Returns the inverse hyperbolic tangent of a number. |
AVG(value1, value1, ...) (Maths/Stats) | Returns the average (arithmetic mean) of its arguments. |
BUCKET(value, width, number_format_or_date_unit, date_format) (Maths/Stats) | Retrieves a range for a date or a number as a text value in the format "A to B". For numbers, use BUCKET(value, width, format); for dates use BUCKET(value, width, unit, format). In either case, "format" is optional. Date units can be one of: "year", "month", "week", "day", "hour", "minute", "second", "millisecond". Numeric examples: BUCKET(5, 10) = '0 to 10' BUCKET(0.08, 0.1) = '0 to 0.1' BUCKET(0.1, 0.1) = '0.1 to 0.2' BUCKET(0, 0.1) = '0 to 0.1' BUCKET(0.11, 0.1) = '0.1 to 0.2' BUCKET(1002, 10) = '1000 to 1010' BUCKET(10000, 11) = '9999 to 10010' Date examples where field1 is 10 Feb 2007 12:43: BUCKET([field1], 2, "hours") = '10 Feb 2007 12:00 to 10 Feb 2007 14:00' BUCKET([field1], 2, "hours", "HH:mm") = '12:00 to 14:00' BUCKET([field1], 2, "months", "dd MMM yyyy") = '01 Jan 2007 to 01 Mar 2007' BUCKET([field1], 2, "years", "dd MMM yyyy") = '01 Jan 2006 to 01 Mar 2008' BUCKET([field1], 12, "seconds", "HH:mm ss") = '12:43 00 to 12:43 12' |
CATCH(sub_formula) (Data) | Suppresses all evaluation errors in the sub-formula. If an error occurs, results in null. |
CELL(field, record) (Data) | Retrieves a cell value for a field using an absolute row number. The field must be a field name; see also FIELDNAME and FIELDCOUNT functions. |
CHOOSE(index_num, value1, value2, ...) (Data) | Chooses a value from a list of values, based on an index number (beginning at 1). |
COMBIN(number, number_chosen) (Maths/Stats) | Returns the number of combinations for a given number of items. |
CONTAINS(text, sub_text) (Text) | Returns true if [sub_text] occurs anywhere within [text] (case insensitive). |
CONVERT_LATLON_TO_OSGBX(lat, lon) (GIS) | Converts coordinates from the latitude value in WGS 84 (GPS lat/lon) to British National Grid (OSGB 36) X. |
CONVERT_LATLON_TO_OSGBY(lat, lon) (GIS) | Converts coordinates from the latitude value in WGS 84 (GPS lat/lon) to British National Grid (OSGB 36) Y. |
CONVERT_OSGB_TO_LAT(osgbX, osgbY) (GIS) | Converts coordinates from British National Grid (OSGB 36) to the latitude value in WGS 84 (GPS lat/lon). |
CONVERT_OSGB_TO_LON(osgbX, osgbY) (GIS) | Converts coordinates from British National Grid (OSGB 36) to the longitude value in WGS 84 (GPS lat/lon). |
COS(number) (Maths/Stats) | Returns the cosine of an angle. |
COSH(number) (Maths/Stats) | Returns the hyperbolic cosine of a number. |
CURRENTROW() (Data) | Evaluates to the row number of the record being evaluated. Numbering starts at 1. |
DATE(year, month, day, hour, minute, second, millisecond, timezone) (Date) | Creates a date using numerical arguments. If omitted or null, the first value for each arguments is used. So, if year is null, year 1 is used. If month is null or omitted, January is used. Etc. BC dates are not supported. Illegal dates such as day 29 Feb on a non-leap year will be rolled over. Time zone is a text value in the format "GMT-8:00" or "PST"; if omitted, the local time zone is used. |
DATEADD(date, number, unit) (Date) | Adds a specified number of a specified unit to a date. To subtract, use a negative number. Unit is optional; if not specified, "day" is assumed, otherwise it should be specified as: "year", "month", "week", "day", "hour", "minute", "second", "millisecond". |
DATEDIFF(date1, date2, unit, approximate) (Date) | Establishes the difference between two dates, as a decimal number of a specified unit (optional, default: "day"). If date2 is before date1, the result will be negative. E.g. the decimal number of weeks between two dates. Units should be specified as: "year", "month", "week", "day", "hour", "minute", "second", "millisecond". You can optionally choose approximate date difference for faster value calculation by specifying "true" for "approximate". Approximate date difference divides elapsed time between the two dates by the typical unit length (e.g. 30 days for days-in-month). |
DATETOTEXT(date_value, custom_format, time_zone) (Date) | Converts a Date into text, optionally using a custom date format and time zone. |
DATEUNIT(date, unit) (Date) | Retrieves a specified unit from a date as a numeric value. For example, the date "12 Feb 2006" has 12 as the "day" unit. Unit is optional; if not specified, "day" is assumed, otherwise it should be specified as: "year", "month", "week", "day", "hour", "minute", "second", "millisecond". NB. "days" is interpreted as "day of month", "weeks" as "week of year", and "hours" as "hour of day (24)". |
DATEVALUE(text) (Date) | Converts a text string that represents a date to a date. For more options, see TEXTTODATE. |
DECLARE(name1, expression1, name2, expression2, name3, expression3..., sub_formula) (Data) | Declares one or more named values, each with a value expression, for repeated use in a sub-formula. The names must not clash with existing field or variable names, and must not be quoted. For more information, see http://archives.visokio.com/kb/kb.visokio.com/functions-guide/declare.html. |
DEPENDENCIES(nested_formula, ref1, ref2, ref3...) (Data) | Provides a hint to Omniscope that the nested formula has references to other fields. Use this when you are building up field references in ways that Omniscope cannot automatically determine, such as via the SCRIPT function. Omniscope needs to know about all field references in a formula to ensure correct evaluation. Example: DEPENDENCIES(SCRIPT(... dataArray("MyField") ... refVal("MyOtherField") ... ), [MyField], [MyOtherField]) This tells Omniscope that the script has references to MyField and MyOtherField. |
E() (Maths/Stats) | Euler's number, e, also called the base of natural logarithms. |
ENDSWITH(text, sub_text) (Text) | Returns true if [sub_text] occurs in the end of [text] (case insensitive). |
EQUIV(value1, value2) (Logical) | Returns true if [value1] is equivalent to [value2] (automatically converting between text, numbers and dates to attempt to find a match). |
EXP(number) (Maths/Stats) | Returns e raised to the power of a given number. |
FACT(number) (Maths/Stats) | Returns the factorial of a number, equal to 123*...*Number. |
FIELDCOUNT() (Data) | Returns the number of fields present. |
FIELDFORMAT(value, field) (Data) | Converts any value into the text equivalent, using a field format. Warning: boolean values (true/false) will be translated using the current Language setting. Usage examples: FIELDFORMAT(424, [Field 1]) = "424.00" |
FIELDNAME(field_number) (Data) | Looks up a field name by number, e.g. the 5th field. |
FIELDNUMBER(field_name) (Data) | Looks up a field number by name (reverse of FIELDNAME). |
FINDBETWEEN(all, before, after) (Text) | Returns the first shortest matching text surrounded by [before] and [after], or null if not found. For example, FINDBETWEEN("apple apple orange plum pear apple banana pear", "apple", "pear") would return " orange plum " |
FINDLASTBETWEEN(all, before, after) (Text) | Returns the last shortest matching text surrounded by [before] and [after], or null if not found. For example, FINDLASTBETWEEN("apple apple orange plum pear apple banana pear", "apple", "pear") would return " banana " |
FORMATDURATION(number, unit) (Date) | Formats a number as a duration in the format 0:00:00, rounded to the nearest second. The number given is in seconds by default, unless a unit argument is specified. Supported time unit values: "days", "hours", "minutes", "seconds", "milliseconds". Usage examples: FORMATDURATION(3723) = "1:02:03" FORMATDURATION(4.5, "hours") = "4:30:00" FORMATDURATION(1.5, "days") = "36:00:00" |
HTTPREDIRECT(url) (Web) | Retrieves the HTTP redirect target for a URL, if the server provides one. |
IF(logical_test, value_if_true, value_if_false) or IF(test1, value1, test2, value2, test3, value3..., else_value) (Logical) | Checks whether a condition is met, and returns one value if TRUE, and another value if FALSE If the longer form is used, returns value1 if test1 is true, otherwise returns value2 if test2 is true, otherwise returns value3 if test3 is true..., otherwise returns else_value. For example: IF( [Coupon]<6, "less than 6", [Coupon]<7, "6 to 7", [Coupon]<8, "7 to 8", "8+" ) |
INTCEIL(number) (Maths/Stats) | Rounds a number up to the nearest integer. |
INTERSECTION(subset1, subset2, ...) (Data) | Returns the data subset which is the intersection of records for all data subset arguments. If a record is present in ALL supplied subsets, it will be present in the result. WARNING: this is an experimental function that has not been optimised for performance. Use alternative solutions such as extra formulas and the SUBSET function if performance is unacceptable. |
INTFLOOR(number) (Maths/Stats) | Rounds a number down to the nearest integer. |
INTROUND(number) (Maths/Stats) | Rounds a number to the nearest integer. |
INVERSE(subset) (Logical) | Inverts the set of included records of a data subset. All records included in the subset supplied will be excluded in the result, and vice versa. WARNING: this is an experimental function that has not been optimised for performance. Use alternative solutions such as extra formulas and the SUBSET function if performance is unacceptable. |
ISO_COUNTRY_NAME(code, display_language) (GIS) | Converts an ISO country code into readable form. The function uses two arguments: code. The ISO language code. This can be either a 2-letter code language code or a 3-letter code. display_language. Optional argument. The language of the function text result. This can be either a 2-letter code language code or a 3-letter code. |
ISO_LANGUAGE_NAME(code, show_country, display_language) (GIS) | Converts an ISO language code into readable form. The function uses three arguments: code. The ISO language code. This can be either a 2-letter code language code, 2-letter language/country code or a 3-letter code. show_country. Optional argument. If this is set to true and a 2-letter language/country code is provided the country will be shown in brackets after the language. The default value is true. display_language. Optional argument. The language of the function text result. This can be either a 2-letter code language code or a 3-letter code. |
LASTDAYOFMONTH(date_value) (Date) | Returns last day of month for a given date. Date value should include month and year value. |
LAT_LON_DISTANCE(lat1, lon1, lat2, lon2) (GIS) | Returns the surface distance (in KM) from one latitude/longitude point to another. |
LEFT(text, num_chars) (Text) | Returns the specified number of characters from the start of a text string. |
LEN(text) (Text) | Returns the number of characters in a text string. |
LEVENSHTEIN(value1, value2) (Text) | Evaluates the Levenshtein distance between two text values (case insensitive). |
LG(number) (Maths/Stats) | Returns the base-2 logarithm of a number. |
LN(number) (Maths/Stats) | Returns the natural logarithm of a number. |
LOG(number, base) (Maths/Stats) | Returns the logarithm of a number to the base you specify. |
LOG10(number) (Maths/Stats) | Returns the base-10 logarithm of a number. |
LOOKUPCSVCELL(csv_data, row, column, has_headers, locale) (Data) | Parses and reads CSV data, which may or may not contain a header row. Returns the cell specified (NB. row/column numbers start at zero). This will not perform well for large numbers of calculations or large CSV data. The fifth argument is optional and you can use it to override the default locale. For an example if the default is italian and you are loading a CSV file with english decimals, add "en". |
LOOKUPJSONVALUE(json_data, json_path) (Data) | Reads JSON data, extracting a single value by its JSONPath location. See http://goessner.net/articles/JsonPath/ or test your paths at http://jsonpath.herokuapp.com |
LOWER(text) (Text) | Converts all letters in a text string to lowercase. |
MAX(value1, value1, ...) (Maths/Stats) | Returns the largest value in a set of values. |
MID(text, start_num, num_chars) (Text) | Returns the specified number of characters from the middle of a text string, given a starting position and length. |
MIN(value1, value1, ...) (Maths/Stats) | Returns the smallest number in a set of values. |
MOD(number, divisor) (Maths/Stats) | Returns the remainder after a number is divided by a divisor. |
NETWORKDAYS(start_date, end_date) (Date) | Returns the net number of working days (excluding weekends) between two dates, inclusive. Not intended to be used with times or date-times. |
NORMDIST(x, mean, sdev, cumulative) (Maths/Stats) | Gives the probability that a number falls at or below a given value of a normal distribution. X - is the value for which you want the distribution, mean (by default 0) - is the arithmetic mean of the distribution, sdev (by default 1) - is the standard deviation of the distribution, the value should be positive (>0) cumulative (by default TRUE) - is a logical value that determines the form of the function. If cumulative is TRUE, NORMDIST returns the cumulative distribution function; if FALSE, it returns the probability mass function. See also NORMSDIST: NORMDIST(x,mu,sigma,TRUE) = NORMSDIST((x - mu)/sigma). |
NORMINV(probability, mean, sdev) (Maths/Stats) | It is the inverse of the NORMDIST function. It calculates the x variable given a probability. probability - is a probability corresponding to the normal distribution, the value should be in the range (0, 1), >0 and <1, mean (by default 0) - is the arithmetic mean of the distribution, sdev (by default 1) - is the standard deviation of the distribution, the value should be positive (>0). |
NORMSDIST(x, cumulative) (Maths/Stats) | Gives the probability that a number falls at or below a given value of a standard normal distribution. X - is the value for which you want the distribution, cumulative (by default TRUE) - is a logical value that determines the form of the function. If cumulative is TRUE, NORMSDIST returns the cumulative distribution function; if FALSE, it returns the probability mass function. See also NORMDIST: NORMDIST(x,mu,sigma,TRUE) = NORMSDIST((x - mu)/sigma). |
NORMSINV(probability) (Maths/Stats) | It is the inverse of the NORMSDIST function. It calculates the x variable given a probability. probability - is a probability corresponding to the normal distribution, the value should be in the range (0, 1), >0 and <1. |
NOT(logical) (Logical) | Changes FALSE to TRUE, or TRUE to FALSE. |
NOW() (Date) | Returns the current date/time. |
NUMVALUE(text, locale) (Text) | Converts a text string that represents a number to a number. Accepts a locale as an optional second argument in the format 'en_GB'. |
NUM_OF_TOKENS(text, token_separator) (Text) | Returns the number of tokens (split by a single character such as a comma) in a text value. |
OR(logical1, logical2, ...) (Logical) | Checks whether any arguments are TRUE, and returns TRUE or FALSE. Returns FALSE only if all arguments are FALSE. |
PI() (Maths/Stats) | Returns the value of Pi, 3.141592653589793, accurate to over 15 digits. |
POWER(number, power) (Maths/Stats) | Returns the result of a number raised to a power. |
PROPER(text) (Text) | Converts a text string to proper case; the first letter in each word in uppercase, and all other letters to lowercase. |
RAND() or RAND(seed) (Maths/Stats) | Returns a random number greater than or equal to 0 and less than 1, evenly distributed. The result changes on every recalculation, unless a seed value (any number) is specified, in which case the number generated is always the same for a given seed. |
RANK(value, field, isAscending, includeNulls, dataSubset) (Maths/Stats) | Returns the rank of a value within the field specified. This is the value position within the array of ordered field values. If isAscending parameter is not specified, FALSE or takes string "descending", the rank is against a descending order (higher values give better rank, with the highest number giving rank 1). If isAscending parameter is TRUE or takes string "ascending", the rank is against an ascending order. If the value is NULL, or not present in the list, NULL is returned, unless includeNulls is specified as true, in which case empty cells in the list will be considered. If dataSubset is specified, the RANK is calculated for a subset of the data which can be specified using the SUBSET function. Examples: RANK(10.1, [field1]) RANK(10.1, [field1], 1) RANK(10.1, [field1], true) RANK(10.1, [field1], "ascending") Valid argument combinations without data subset: RANK(field) (shorthand for RANK(field, field)) RANK(value, field) RANK(value, field, isAscending) RANK(value, field, isAscending, includeNulls) Valid argument combinations with data subset: RANK(value, field, dataSubset) RANK(value, field, isAscending, dataSubset) RANK(value, field, isAscending, includeNulls, dataSubset) |
READRES(file_path_or_url, max_cache_age_seconds) (Web) | Reads the text contents from a file or URL. If the maximum cache age in seconds is not specified, it will be assumed to be 1 minute. Downloaded data will be cached for this period. Use -1 to disable caching. |
RECORDCOUNT(subset) (Data) | Evaluates to the number of records (rows) in the all data (if subset is not specified), or a subset (if subset is specified). The subset should be a data subset as evaluated using the SUBSET function. |
REFVAL(field_name) (Data) | Looks up the value of a field or variable by its name. The name can be dynamically determined, such as by concatenating text and/or using variables. |
REPLACE(old_text, start_num, num_chars, new_text) (Text) | Replaces part of a text string with a different text string. |
REPLACEREGEX(text, regular_expression, replace_text, use_empty_if_no_match) (Data) | Replaces text matching a regular expression. In the replace text, use "$1" to refer to group 1 in the regular expression, and "$$" to mean a single dollar character. If use_empty_if_no_match (optional, default false) is true, and the expression does not match, results in null. For more information on regular expressions, see www.regular-expressions.info |
REPT(text, number_times) (Text) | Repeats text a given number of times. Use REPT to fill a cell with a number of instances of a text string. |
RIGHT(text, num_chars) (Text) | Returns the specified number of characters from the end of a text string. |
ROUND(number, num_digits) (Maths/Stats) | Rounds a number to a specified number of digits. For example: ROUND(123.7825, 2) = 123.78 ROUND(123.456, 1) = 123.5 ROUND(123.456, -2) = 100); |
ROWINDEXSUBSET(rowIndex, operator) (Data) | Results in a subset matching the row index(es) specified. Row indexes start from 1. Custom operator should be one of: "=", "<>", ">", ">=", "<", "<=" If not specified, "=" (equals) is used. |
RUNNINGTOTAL(field, subset, sortOrder) (Maths/Stats) | Evaluates to the running total in field for all data (if subset is not specified), or a subset (if subset is specified). The subset should be a data subset as evaluated using the SUBSET function. If sortOrder is true, values will sum in ascending order. If false, in descending order. If null or missing, in record order. |
SAFEDIV(numerator, divisor, if_zero) (Maths/Stats) | Divides a number by another number, safely handling the zero divisor case. The 3rd argument if_zero is optional; if not specified, null is assumed. Examples: * SAFEDIV(2, 3) is equivalent to 2/3 * SAFEDIV(2, null) results in null (as does 2/null ) * SAFEDIV(2, 0) results in null * SAFEDIV(2, 0, -1) results in -1 |
SCRIPT(script, var1Name, var1Value, var2Name, var2Value, var3Name, var3Value..., timeout) (Script) | Executes a javascript expression. Requires Java 6, included with the full Omniscope installer. Supports core Javascript 1.5, but not browser-related objects. The script will be terminated after 10 seconds unless "timeout" is specified (in milliseconds). Note: you can use back-quotes () instead of normal quotes to quote your script, such as: 1 + 2. Unlike with normal quotes, back-quoted text can contain any other character including backslash. For literal back-quotes, use two, e.g. SCRIPT( var x = "Her name was Jane ";`) You must ensure you declare any dependencies (referenced fields inside your script) using the DEPENDENCIES function. |
SEARCH(find_text, within_text, start_num) (Text) | Returns the number of the character at which a specific character or text string is first found, reading from left to right (not case-sensitive). The first character is numbered 1. Returns null if not found. |
SEARCHREGEX(reg_expr, within_text, start_num) (Text) | Returns the number of the character at which a regular expression is first found, reading from left to right (not case-sensitive). The first character is numbered 1. Returns null if not found. For more information on regular expressions, see www.regular-expressions.info |
SIGN(number) (Maths/Stats) | Returns the sign of a number: 1 if the number is positive, zero if the number is zero, or -1 if the number is negative. |
SIN(number) (Maths/Stats) | Returns the sine of an angle. |
SINH(number) (Maths/Stats) | Returns the hyperbolic sine of a number. |
SOUNDEX(word) (Text) | Converts a text value containing a single word into its Soundex phonetic code. |
SQRT(number) (Maths/Stats) | Returns the square root of a number. |
STARTSWITH(text, sub_text) (Text) | Returns true if [sub_text] occurs in the beginning of [text] (case insensitive). |
SUBSET(field, field_value, field_operator) (Data) | Evaluates to a subset of the data. Normally used only as an argument to another function. Either: (a) all records (if no arguments are specified); (b) a current subset of records (if field is specified); (c) a subset of records (if field and field_value are specified); (d) a subset of records, using a custom operator such as = (if all arguments are specified). Custom operator should be one of: "=", "<>", ">", ">=", "<", "<=", "contains" (2.8+), "does-not-contain" (2.8+), "starts-with" (2.8+), "ends-with" (2.8+) |
SUBSET2(field_1, field_2, field_1_value, field_2_value, field_1_operator, field_2_operator) (Data) | Evaluates to a subset of the data. Normally used only as an argument to another function. Either: (a) a current subset of records (if field_N is specified); (b) a subset of records (if field_N and field_N_value are specified); (c) a subset of records, using a custom operator such as = (if all arguments are specified). Custom operator should be one of: "=", "<>", ">", ">=", "<", "<=", "contains" (2.8+), "does-not-contain" (2.8+), "starts-with" (2.8+), "ends-with" (2.8+) Deprecated - please use the SUBSET and INTERSECTION functions instead. |
SUBSET3(field_1, field_2, field_3, field_1_value, field_2_value, field_3_value, field_1_operator, field_2_operator, field_3_operator) (Data) | Evaluates to a subset of the data. Normally used only as an argument to another function. Either: (a) a current subset of records (if field_N is specified); (b) a subset of records (if field_N and field_N_value are specified); (c) a subset of records, using a custom operator such as = (if all arguments are specified). Custom operator should be one of: "=", "<>", ">", ">=", "<", "<=", "contains" (2.8+), "does-not-contain" (2.8+), "starts-with" (2.8+), "ends-with" (2.8+) Deprecated - please use the SUBSET and INTERSECTION functions instead. |
SUBSET4(field_1, field_2, field_3, field_4, field_1_value, field_2_value, field_3_value, field_4_value, field_1_operator, field_2_operator, field_3_operator, field_4_operator) (Data) | Evaluates to a subset of the data. Normally used only as an argument to another function. Either: (a) a current subset of records (if field_N is specified); (b) a subset of records (if field_N and field_N_value are specified); (c) a subset of records, using a custom operator such as = (if all arguments are specified). Custom operator should be one of: "=", "<>", ">", ">=", "<", "<=", "contains" (2.8+), "does-not-contain" (2.8+), "starts-with" (2.8+), "ends-with" (2.8+) Deprecated - please use the SUBSET and INTERSECTION functions instead. |
SUBSET5(field_1, field_2, field_3, field_4, field_5, field_1_value, field_2_value, field_3_value, field_4_value, field_5_value, field_1_operator, field_2_operator, field_3_operator, field_4_operator, field_5_operator) (Data) | Evaluates to a subset of the data. Normally used only as an argument to another function. Either: (a) a current subset of records (if field_N is specified); (b) a subset of records (if field_N and field_N_value are specified); (c) a subset of records, using a custom operator such as = (if all arguments are specified). Custom operator should be one of: "=", "<>", ">", ">=", "<", "<=", "contains" (2.8+), "does-not-contain" (2.8+), "starts-with" (2.8+), "ends-with" (2.8+) Deprecated - please use the SUBSET and INTERSECTION functions instead. |
SUBSET_EMPTYCOUNT(stat_field, subset) (Data) | Calculates the statistical function [Number of empty values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_FIRST(stat_field, subset) (Data) | Calculates the statistical function [The first value (or null) in the original data order] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_FIRSTNONNULL(stat_field, subset) (Data) | Calculates the statistical function [The first non-null value in the original data order] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_LAST(stat_field, subset) (Data) | Calculates the statistical function [The last value (or null) in the original data order] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_LASTNONNULL(stat_field, subset) (Data) | Calculates the statistical function [The last non-null value in the original data order] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_LOWERQUARTILE(stat_field, subset) (Data) | Calculates the statistical function [Lower quartile] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MAX(stat_field, subset) (Data) | Calculates the statistical function [Maximum value (highest or last)] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MEAN(stat_field, subset) (Data) | Calculates the statistical function [Mean (average) of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MEDIAN(stat_field, subset) (Data) | Calculates the statistical function [Median (middle) of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MIN(stat_field, subset) (Data) | Calculates the statistical function [Minimum value (lowest or first)] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MODE(stat_field, subset) (Data) | Calculates the statistical function [Most common value (first if multimodal)] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_NONEMPTYCOUNT(stat_field, subset) (Data) | Calculates the statistical function [Number of non-empty values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_PRODUCT(stat_field, subset) (Data) | Calculates the statistical function [Product of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_RANGE(stat_field, subset) (Data) | Calculates the statistical function [Range of values (maximum minus minimum)] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_SINGLETON(stat_field, subset) (Data) | Calculates the statistical function [The single value, if there is one, otherwise null. If there are nulls present, always null.] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_STDDEV(stat_field, subset) (Data) | Calculates the statistical function [Standard deviation of values from the mean] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_SUM(stat_field, subset) (Data) | Calculates the statistical function [Sum (total) of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_UNIQUECOUNT(stat_field, subset) (Data) | Calculates the statistical function [Number of unique non-empty values. Nulls are ignored.] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_UNIQUESLIST(stat_field, subset) (Data) | Calculates the statistical function [A comma-separated list of all unique values, not including null.] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_UPPERQUARTILE(stat_field, subset) (Data) | Calculates the statistical function [Upper quartile] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUM(number1, number2, ...) (Maths/Stats) | Adds all the arguments. |
TAN(number) (Maths/Stats) | Returns the tangent of an angle. |
TANH(number) (Maths/Stats) | Returns the hyperbolic tangent of a number. |
TEXTTODATE(text_value, custom_format, lenient, time_zone) (Date) | Converts text into a date. If custom_format is specified, this is a custom date format pattern such as "dd/MM/yyyy HH:mm:ss". If not specified, the default format for the current data locale will be used. If lenient is omitted or is true, this controls whether non-existent dates are permitted, such as 29 February on a non-leap-year (corrected to 1 March). If time zone value is specified, this controls how Omniscope interprets time values. If not specified, the text will be assumed to be a date/time from the same time zone as the system. |
TEXTVALUE(value, formatPatternOrDecimalPlaces) (Text) | Converts any value into the text equivalent, optionally using a format pattern. The format pattern (quoted text) defines how numbers or dates are formatted. Alternatively, simply supply a number to specify the number of decimal places. Warning: boolean values (true/false) will be translated using the current Language setting. Usage examples: TEXTVALUE(424) = "424" TEXTVALUE(123456.789, "$###,###.###") = "$123,456.789" TEXTVALUE(123456.789, 4) = "123,456.7890" |
TEXT_LINE_COUNT(text) (Text) | Returns the number of lines (split by line-break) in a text value. |
TODAY() (Date) | Returns the current date. |
TRENDVALUE(xField, yField, subset, xValue) (Maths/Stats) | Evaluates the linear trend for X and Y fields, then evaluates the Y value for X value specified. If 'xValue' is omitted, uses the current record's X value. Used to determine the Y coordinate in a best-fit line showing the trend of two fields. If 'subset' is omitted, the full dataset is used. |
TRIM(text) (Text) | Removes all spaces from a text string except for single spaces between words. |
TYPEOF(arg) (Data) | Returns the type of the argument. |
TZCORRECT(date, input_timezone, output_timezone) (Date) | Corrects dates in the wrong timezone. Converts from one timezone to another, preserving the same logical local time in each timezone. Observes the current and historical rules for time zone offset and daylight saving according to the Olson time zone database. For example, if your data was recorded as 9am in time zone X, but it should have been recorded as 9am in time zone Y, you would use: TZCORRECT(date, X, Y) If either time zone is missing, your file's time zone will be used, as configured in the Regional Settings dialog, which defaults to your local system time zone. |
TZDEFAULT() (Date) | Returns the Olson ID for the default time zone for this file, as configured in the Regional Settings dialog, which defaults to your local system time zone. |
TZOFFSET(time_zone, date) (Date) | Returns the UTC offset, in milliseconds, for the time zone specified. If time_zone is not supplied, your file's time zone will be used, as configured in the Regional Settings dialog, which defaults to your local system time zone. If date is specified, returns the offset for that date/time, observing the current and historical behaviour and daylight saving rules. If not specified, returns the current offset from UTC for standard time in that time zone (i.e. without daylight saving). |
UNION(subset1, subset2, ...) (Data) | Returns the data subset which is the union of records for all data subset arguments. If a record is present in ANY supplied subset, it will be present in the result. WARNING: this is an experimental function that has not been optimised for performance. Use alternative solutions such as extra formulas and the SUBSET function if performance is unacceptable. |
UNIX_MILLISECONDS_TO_DATE(unixtime) (Date) | Converts a number of milliseconds since unix epoch (00:00 1 January 1970 UTC) to a date. |
UNIX_SECONDS_TO_DATE(unixtime) (Date) | Converts a number of seconds since unix epoch (00:00 1 January 1970 UTC) to a date. |
UPPER(text) (Text) | Converts all letters in a text string to uppercase. |
VALUE(text) (Data) | Converts a text string that represents a number to a number, or date text into a date, where possible, otherwise resulting in a text value. |
XPATH(xml_data, xpath_expression) (Script) | Executes an XPath expression against an XML document. To obtain XML data, see the READRES function. For more information on XPath, see www.w3schools.com/xpath/ |
Report: Data Model (row-based)
Available within the Report data model by adding Formula blocks.
Function | Description |
---|---|
AND(logical1, logical2, ...) (Logical) | Checks whether all arguments are TRUE, and returns TRUE if all arguments are TRUE. |
CURRENTROW() (Data) | Evaluates to the row number of the record being evaluated. Numbering starts at 1. |
IF(logical_test, value_if_true, value_if_false) or IF(test1, value1, test2, value2, test3, value3..., else_value) (Logical) | Checks whether a condition is met, and returns one value if TRUE, and another value if FALSE If the longer form is used, returns value1 if test1 is true, otherwise returns value2 if test2 is true, otherwise returns value3 if test3 is true..., otherwise returns else_value. For example: IF( [Coupon]<6, "less than 6", [Coupon]<7, "6 to 7", [Coupon]<8, "7 to 8", "8+" ) |
INTERSECTION(subset1, subset2, ...) (Data) | Returns the data subset which is the intersection of records for all data subset arguments. If a record is present in ALL supplied subsets, it will be present in the result. WARNING: this is an experimental function that has not been optimised for performance. Use alternative solutions such as extra formulas and the SUBSET function if performance is unacceptable. |
INTROUND(number) (Maths/Stats) | Rounds a number to the nearest integer. |
NOT(logical) (Logical) | Changes FALSE to TRUE, or TRUE to FALSE. |
OR(logical1, logical2, ...) (Logical) | Checks whether any arguments are TRUE, and returns TRUE or FALSE. Returns FALSE only if all arguments are FALSE. |
ROUND(number, num_digits) (Maths/Stats) | Rounds a number to a specified number of digits. For example: ROUND(123.7825, 2) = 123.78 ROUND(123.456, 1) = 123.5 ROUND(123.456, -2) = 100); |
SAFEDIV(numerator, divisor, if_zero) (Maths/Stats) | Divides a number by another number, safely handling the zero divisor case. The 3rd argument if_zero is optional; if not specified, null is assumed. Examples: * SAFEDIV(2, 3) is equivalent to 2/3 * SAFEDIV(2, null) results in null (as does 2/null ) * SAFEDIV(2, 0) results in null * SAFEDIV(2, 0, -1) results in -1 |
SUBSET(field, field_value, field_operator) (Data) | Evaluates to a subset of the data. Normally used only as an argument to another function. Either: (a) all records (if no arguments are specified); (b) a current subset of records (if field is specified); (c) a subset of records (if field and field_value are specified); (d) a subset of records, using a custom operator such as = (if all arguments are specified). Custom operator should be one of: "=", "<>", ">", ">=", "<", "<=", "contains" (2.8+) |
SUBSET_LOWERQUARTILE(stat_field) (Data) | Calculates the statistical function [Lower quartile] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MAX(stat_field) (Data) | Calculates the statistical function [Maximum value (highest or last)] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MEAN(stat_field) (Data) | Calculates the statistical function [Mean (average) of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MEDIAN(stat_field) (Data) | Calculates the statistical function [Median (middle) of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MIN(stat_field) (Data) | Calculates the statistical function [Minimum value (lowest or first)] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_SINGLETON(stat_field) (Data) | Calculates the statistical function [The single value, if there is one, otherwise null. If there are nulls present, always null.] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_SUM(stat_field) (Data) | Calculates the statistical function [Sum (total) of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_UNIQUECOUNT(stat_field) (Data) | Calculates the statistical function [Number of unique non-empty values. Nulls are ignored.] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_UPPERQUARTILE(stat_field) (Data) | Calculates the statistical function [Upper quartile] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
TEXTVALUE(value, formatPatternOrDecimalPlaces) (Text) | Converts any value into the text equivalent, optionally using a format pattern. The format pattern (quoted text) defines how numbers or dates are formatted. Alternatively, simply supply a number to specify the number of decimal places. Warning: boolean values (true/false) will be translated using the current Language setting. Usage examples: TEXTVALUE(424) = "424" TEXTVALUE(123456.789, "$###,###.###") = "$123,456.789" TEXTVALUE(123456.789, 4) = "123,456.7890" |
UNION(subset1, subset2, ...) (Data) | Returns the data subset which is the union of records for all data subset arguments. If a record is present in ANY supplied subset, it will be present in the result. WARNING: this is an experimental function that has not been optimised for performance. Use alternative solutions such as extra formulas and the SUBSET function if performance is unacceptable. |
Report: Formula measures
Available within the Report inside views (and also the Report data model Aggregate block and named measures) by configuring formula measures.
Function | Description |
---|---|
AND(logical1, logical2, ...) (Logical) | Checks whether all arguments are TRUE, and returns TRUE if all arguments are TRUE. |
CURRENTROW() (Data) | Evaluates to the row number of the record being evaluated. Numbering starts at 1. |
IF(logical_test, value_if_true, value_if_false) or IF(test1, value1, test2, value2, test3, value3..., else_value) (Logical) | Checks whether a condition is met, and returns one value if TRUE, and another value if FALSE If the longer form is used, returns value1 if test1 is true, otherwise returns value2 if test2 is true, otherwise returns value3 if test3 is true..., otherwise returns else_value. For example: IF( [Coupon]<6, "less than 6", [Coupon]<7, "6 to 7", [Coupon]<8, "7 to 8", "8+" ) |
INTERSECTION(subset1, subset2, ...) (Data) | Returns the data subset which is the intersection of records for all data subset arguments. If a record is present in ALL supplied subsets, it will be present in the result. WARNING: this is an experimental function that has not been optimised for performance. Use alternative solutions such as extra formulas and the SUBSET function if performance is unacceptable. |
INTROUND(number) (Maths/Stats) | Rounds a number to the nearest integer. |
NOT(logical) (Logical) | Changes FALSE to TRUE, or TRUE to FALSE. |
OR(logical1, logical2, ...) (Logical) | Checks whether any arguments are TRUE, and returns TRUE or FALSE. Returns FALSE only if all arguments are FALSE. |
ROUND(number, num_digits) (Maths/Stats) | Rounds a number to a specified number of digits. For example: ROUND(123.7825, 2) = 123.78 ROUND(123.456, 1) = 123.5 ROUND(123.456, -2) = 100); |
SAFEDIV(numerator, divisor, if_zero) (Maths/Stats) | Divides a number by another number, safely handling the zero divisor case. The 3rd argument if_zero is optional; if not specified, null is assumed. Examples: * SAFEDIV(2, 3) is equivalent to 2/3 * SAFEDIV(2, null) results in null (as does 2/null ) * SAFEDIV(2, 0) results in null * SAFEDIV(2, 0, -1) results in -1 |
SUBSET(field, field_value, field_operator) (Data) | Evaluates to a subset of the data. Normally used only as an argument to another function. Either: (a) all records (if no arguments are specified); (b) a subset of records (if field and field_value are specified); (c) a subset of records, using a custom operator such as = (if all arguments are specified). Custom operator should be one of: "=", "<>", ">", ">=", "<", "<=", "contains" (2.8+) |
SUBSET_LOWERQUARTILE(stat_field) (Data) | Calculates the statistical function [Lower quartile] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MAX(stat_field) (Data) | Calculates the statistical function [Maximum value (highest or last)] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MEAN(stat_field) (Data) | Calculates the statistical function [Mean (average) of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MEDIAN(stat_field) (Data) | Calculates the statistical function [Median (middle) of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_MIN(stat_field) (Data) | Calculates the statistical function [Minimum value (lowest or first)] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_SINGLETON(stat_field) (Data) | Calculates the statistical function [The single value, if there is one, otherwise null. If there are nulls present, always null.] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_SUM(stat_field) (Data) | Calculates the statistical function [Sum (total) of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_UNIQUECOUNT(stat_field) (Data) | Calculates the statistical function [Number of unique non-empty values. Nulls are ignored.] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
SUBSET_UPPERQUARTILE(stat_field) (Data) | Calculates the statistical function [Upper quartile] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset. |
TEXTVALUE(value, formatPatternOrDecimalPlaces) (Text) | Converts any value into the text equivalent, optionally using a format pattern. The format pattern (quoted text) defines how numbers or dates are formatted. Alternatively, simply supply a number to specify the number of decimal places. Warning: boolean values (true/false) will be translated using the current Language setting. Usage examples: TEXTVALUE(424) = "424" TEXTVALUE(123456.789, "$###,###.###") = "$123,456.789" TEXTVALUE(123456.789, 4) = "123,456.7890" |
UNION(subset1, subset2, ...) (Data) | Returns the data subset which is the union of records for all data subset arguments. If a record is present in ANY supplied subset, it will be present in the result. WARNING: this is an experimental function that has not been optimised for performance. Use alternative solutions such as extra formulas and the SUBSET function if performance is unacceptable. |
Report: Content view
Available within the Content view as formula-driven text or styling.
Function | Description |
---|---|
ABS(number) (Maths/Stats) | Returns the absolute value of a number, a number without its sign. |
ACOS(number) (Maths/Stats) | Returns the arccosine of a number, in radians in the range 0 to Pi. The arccosine is the angle whose cosine is Number. |
ACOSH(number) (Maths/Stats) | Returns the inverse hyperbolic cosine of a number. |
AND(logical1, logical2, ...) (Logical) | Checks whether all arguments are TRUE, and returns TRUE if all arguments are TRUE. |
ASIN(number) (Maths/Stats) | Returns the arcsine of a number in radians, in the range -Pi/2 to Pi/2. |
ASINH(number) (Maths/Stats) | Returns the inverse hyperbolic sine of a number. |
ATAN(number) (Maths/Stats) | Returns the arctangent of a number in radians, in the range -Pi/2 to Pi/2. |
ATANH(number) (Maths/Stats) | Returns the inverse hyperbolic tangent of a number. |
AVG(value1, value1, ...) (Maths/Stats) | Returns the average (arithmetic mean) of its arguments. |
BUCKET(value, width, number_format_or_date_unit, date_format) (Maths/Stats) | Retrieves a range for a date or a number as a text value in the format "A to B". For numbers, use BUCKET(value, width, format); for dates use BUCKET(value, width, unit, format). In either case, "format" is optional. Date units can be one of: "year", "month", "week", "day", "hour", "minute", "second", "millisecond". Numeric examples: BUCKET(5, 10) = '0 to 10' BUCKET(0.08, 0.1) = '0 to 0.1' BUCKET(0.1, 0.1) = '0.1 to 0.2' BUCKET(0, 0.1) = '0 to 0.1' BUCKET(0.11, 0.1) = '0.1 to 0.2' BUCKET(1002, 10) = '1000 to 1010' BUCKET(10000, 11) = '9999 to 10010' Date examples where field1 is 10 Feb 2007 12:43: BUCKET([field1], 2, "hours") = '10 Feb 2007 12:00 to 10 Feb 2007 14:00' BUCKET([field1], 2, "hours", "HH:mm") = '12:00 to 14:00' BUCKET([field1], 2, "months", "dd MMM yyyy") = '01 Jan 2007 to 01 Mar 2007' BUCKET([field1], 2, "years", "dd MMM yyyy") = '01 Jan 2006 to 01 Mar 2008' BUCKET([field1], 12, "seconds", "HH:mm ss") = '12:43 00 to 12:43 12' |
CATCH(sub_formula) (Data) | Suppresses all evaluation errors in the sub-formula. If an error occurs, results in null. |
CHOOSE(index_num, value1, value2, ...) (Data) | Chooses a value from a list of values, based on an index number (beginning at 1). |
COMBIN(number, number_chosen) (Maths/Stats) | Returns the number of combinations for a given number of items. |
CONTAINS(text, sub_text) (Text) | Returns true if [sub_text] occurs anywhere within [text] (case insensitive). |
CONVERT_LATLON_TO_OSGBX(lat, lon) (GIS) | Converts coordinates from the latitude value in WGS 84 (GPS lat/lon) to British National Grid (OSGB 36) X. |
CONVERT_LATLON_TO_OSGBY(lat, lon) (GIS) | Converts coordinates from the latitude value in WGS 84 (GPS lat/lon) to British National Grid (OSGB 36) Y. |
CONVERT_OSGB_TO_LAT(osgbX, osgbY) (GIS) | Converts coordinates from British National Grid (OSGB 36) to the latitude value in WGS 84 (GPS lat/lon). |
CONVERT_OSGB_TO_LON(osgbX, osgbY) (GIS) | Converts coordinates from British National Grid (OSGB 36) to the longitude value in WGS 84 (GPS lat/lon). |
COS(number) (Maths/Stats) | Returns the cosine of an angle. |
COSH(number) (Maths/Stats) | Returns the hyperbolic cosine of a number. |
DATE(year, month, day, hour, minute, second, millisecond, timezone) (Date) | Creates a date using numerical arguments. If omitted or null, the first value for each arguments is used. So, if year is null, year 1 is used. If month is null or omitted, January is used. Etc. BC dates are not supported. Illegal dates such as day 29 Feb on a non-leap year will be rolled over. Time zone is a text value in the format "GMT-8:00" or "PST"; if omitted, the local time zone is used. |
DATEADD(date, number, unit) (Date) | Adds a specified number of a specified unit to a date. To subtract, use a negative number. Unit is optional; if not specified, "day" is assumed, otherwise it should be specified as: "year", "month", "week", "day", "hour", "minute", "second", "millisecond". |
DATEDIFF(date1, date2, unit, approximate) (Date) | Establishes the difference between two dates, as a decimal number of a specified unit (optional, default: "day"). If date2 is before date1, the result will be negative. E.g. the decimal number of weeks between two dates. Units should be specified as: "year", "month", "week", "day", "hour", "minute", "second", "millisecond". You can optionally choose approximate date difference for faster value calculation by specifying "true" for "approximate". Approximate date difference divides elapsed time between the two dates by the typical unit length (e.g. 30 days for days-in-month). |
DATETOTEXT(date_value, custom_format, time_zone) (Date) | Converts a Date into text, optionally using a custom date format and time zone. |
DATEUNIT(date, unit) (Date) | Retrieves a specified unit from a date as a numeric value. For example, the date "12 Feb 2006" has 12 as the "day" unit. Unit is optional; if not specified, "day" is assumed, otherwise it should be specified as: "year", "month", "week", "day", "hour", "minute", "second", "millisecond". NB. "days" is interpreted as "day of month", "weeks" as "week of year", and "hours" as "hour of day (24)". |
DATEVALUE(text) (Date) | Converts a text string that represents a date to a date. For more options, see TEXTTODATE. |
DECLARE(name1, expression1, name2, expression2, name3, expression3..., sub_formula) (Data) | Declares one or more named values, each with a value expression, for repeated use in a sub-formula. The names must not clash with existing field or variable names, and must not be quoted. For more information, see http://archives.visokio.com/kb/kb.visokio.com/functions-guide/declare.html. |
DEPENDENCIES(nested_formula, ref1, ref2, ref3...) (Data) | Provides a hint to Omniscope that the nested formula has references to other fields. Use this when you are building up field references in ways that Omniscope cannot automatically determine, such as via the SCRIPT function. Omniscope needs to know about all field references in a formula to ensure correct evaluation. Example: DEPENDENCIES(SCRIPT(... dataArray("MyField") ... refVal("MyOtherField") ... ), [MyField], [MyOtherField]) This tells Omniscope that the script has references to MyField and MyOtherField. |
E() (Maths/Stats) | Euler's number, e, also called the base of natural logarithms. |
ENDSWITH(text, sub_text) (Text) | Returns true if [sub_text] occurs in the end of [text] (case insensitive). |
EQUIV(value1, value2) (Logical) | Returns true if [value1] is equivalent to [value2] (automatically converting between text, numbers and dates to attempt to find a match). |
EXP(number) (Maths/Stats) | Returns e raised to the power of a given number. |
FACT(number) (Maths/Stats) | Returns the factorial of a number, equal to 123*...*Number. |
FIELDCOUNT() (Data) | Returns the number of fields present. |
FIELDFORMAT(value, field) (Data) | Converts any value into the text equivalent, using a field format. Warning: boolean values (true/false) will be translated using the current Language setting. Usage examples: FIELDFORMAT(424, [Field 1]) = "424.00" |
FIELDNAME(field_number) (Data) | Looks up a field name by number, e.g. the 5th field. |
FIELDNUMBER(field_name) (Data) | Looks up a field number by name (reverse of FIELDNAME). |
FINDBETWEEN(all, before, after) (Text) | Returns the first shortest matching text surrounded by [before] and [after], or null if not found. For example, FINDBETWEEN("apple apple orange plum pear apple banana pear", "apple", "pear") would return " orange plum " |
FINDLASTBETWEEN(all, before, after) (Text) | Returns the last shortest matching text surrounded by [before] and [after], or null if not found. For example, FINDLASTBETWEEN("apple apple orange plum pear apple banana pear", "apple", "pear") would return " banana " |
FORMATDURATION(number, unit) (Date) | Formats a number as a duration in the format 0:00:00, rounded to the nearest second. The number given is in seconds by default, unless a unit argument is specified. Supported time unit values: "days", "hours", "minutes", "seconds", "milliseconds". Usage examples: FORMATDURATION(3723) = "1:02:03" FORMATDURATION(4.5, "hours") = "4:30:00" FORMATDURATION(1.5, "days") = "36:00:00" |
HTTPREDIRECT(url) (Web) | Retrieves the HTTP redirect target for a URL, if the server provides one. |
IF(logical_test, value_if_true, value_if_false) or IF(test1, value1, test2, value2, test3, value3..., else_value) (Logical) | Checks whether a condition is met, and returns one value if TRUE, and another value if FALSE If the longer form is used, returns value1 if test1 is true, otherwise returns value2 if test2 is true, otherwise returns value3 if test3 is true..., otherwise returns else_value. For example: IF( [Coupon]<6, "less than 6", [Coupon]<7, "6 to 7", [Coupon]<8, "7 to 8", "8+" ) |
INTCEIL(number) (Maths/Stats) | Rounds a number up to the nearest integer. |
INTERSECTION(subset1, subset2, ...) (Data) | Returns the data subset which is the intersection of records for all data subset arguments. If a record is present in ALL supplied subsets, it will be present in the result.null |
INTFLOOR(number) (Maths/Stats) | Rounds a number down to the nearest integer. |
INTROUND(number) (Maths/Stats) | Rounds a number to the nearest integer. |
INVERSE(subset) (Logical) | Inverts the set of included records of a data subset. All records included in the subset supplied will be excluded in the result, and vice versa.null |
ISO_COUNTRY_NAME(code, display_language) (GIS) | Converts an ISO country code into readable form. The function uses two arguments: code. The ISO language code. This can be either a 2-letter code language code or a 3-letter code. display_language. Optional argument. The language of the function text result. This can be either a 2-letter code language code or a 3-letter code. |
ISO_LANGUAGE_NAME(code, show_country, display_language) (GIS) | Converts an ISO language code into readable form. The function uses three arguments: code. The ISO language code. This can be either a 2-letter code language code, 2-letter language/country code or a 3-letter code. show_country. Optional argument. If this is set to true and a 2-letter language/country code is provided the country will be shown in brackets after the language. The default value is true. display_language. Optional argument. The language of the function text result. This can be either a 2-letter code language code or a 3-letter code. |
LASTDAYOFMONTH(date_value) (Date) | Returns last day of month for a given date. Date value should include month and year value. |
LAT_LON_DISTANCE(lat1, lon1, lat2, lon2) (GIS) | Returns the surface distance (in KM) from one latitude/longitude point to another. |
LEFT(text, num_chars) (Text) | Returns the specified number of characters from the start of a text string. |
LEN(text) (Text) | Returns the number of characters in a text string. |
LEVENSHTEIN(value1, value2) (Text) | Evaluates the Levenshtein distance between two text values (case insensitive). |
LG(number) (Maths/Stats) | Returns the base-2 logarithm of a number. |
LN(number) (Maths/Stats) | Returns the natural logarithm of a number. |
LOG(number, base) (Maths/Stats) | Returns the logarithm of a number to the base you specify. |
LOG10(number) (Maths/Stats) | Returns the base-10 logarithm of a number. |
LOOKUPCSVCELL(csv_data, row, column, has_headers, locale) (Data) | Parses and reads CSV data, which may or may not contain a header row. Returns the cell specified (NB. row/column numbers start at zero). This will not perform well for large numbers of calculations or large CSV data. The fifth argument is optional and you can use it to override the default locale. For an example if the default is italian and you are loading a CSV file with english decimals, add "en". |
LOOKUPJSONVALUE(json_data, json_path) (Data) | Reads JSON data, extracting a single value by its JSONPath location. See http://goessner.net/articles/JsonPath/ or test your paths at http://jsonpath.herokuapp.com |
LOWER(text) (Text) | Converts all letters in a text string to lowercase. |
MAX(value1, value1, ...) (Maths/Stats) | Returns the largest value in a set of values. |
MID(text, start_num, num_chars) (Text) | Returns the specified number of characters from the middle of a text string, given a starting position and length. |
MIN(value1, value1, ...) (Maths/Stats) | Returns the smallest number in a set of values. |
MOD(number, divisor) (Maths/Stats) | Returns the remainder after a number is divided by a divisor. |
NETWORKDAYS(start_date, end_date) (Date) | Returns the net number of working days (excluding weekends) between two dates, inclusive. Not intended to be used with times or date-times. |
NORMDIST(x, mean, sdev, cumulative) (Maths/Stats) | Gives the probability that a number falls at or below a given value of a normal distribution. X - is the value for which you want the distribution, mean (by default 0) - is the arithmetic mean of the distribution, sdev (by default 1) - is the standard deviation of the distribution, the value should be positive (>0) cumulative (by default TRUE) - is a logical value that determines the form of the function. If cumulative is TRUE, NORMDIST returns the cumulative distribution function; if FALSE, it returns the probability mass function. See also NORMSDIST: NORMDIST(x,mu,sigma,TRUE) = NORMSDIST((x - mu)/sigma). |
NORMINV(probability, mean, sdev) (Maths/Stats) | It is the inverse of the NORMDIST function. It calculates the x variable given a probability. probability - is a probability corresponding to the normal distribution, the value should be in the range (0, 1), >0 and <1, mean (by default 0) - is the arithmetic mean of the distribution, sdev (by default 1) - is the standard deviation of the distribution, the value should be positive (>0). |
NORMSDIST(x, cumulative) (Maths/Stats) | Gives the probability that a number falls at or below a given value of a standard normal distribution. X - is the value for which you want the distribution, cumulative (by default TRUE) - is a logical value that determines the form of the function. If cumulative is TRUE, NORMSDIST returns the cumulative distribution function; if FALSE, it returns the probability mass function. See also NORMDIST: NORMDIST(x,mu,sigma,TRUE) = NORMSDIST((x - mu)/sigma). |
NORMSINV(probability) (Maths/Stats) | It is the inverse of the NORMSDIST function. It calculates the x variable given a probability. probability - is a probability corresponding to the normal distribution, the value should be in the range (0, 1), >0 and <1. |
NOT(logical) (Logical) | Changes FALSE to TRUE, or TRUE to FALSE. |
NOW() (Date) | Returns the current date/time. |
NUMVALUE(text, locale) (Text) | Converts a text string that represents a number to a number. Accepts a locale as an optional second argument in the format 'en_GB'. |
NUM_OF_TOKENS(text, token_separator) (Text) | Returns the number of tokens (split by a single character such as a comma) in a text value. |
OR(logical1, logical2, ...) (Logical) | Checks whether any arguments are TRUE, and returns TRUE or FALSE. Returns FALSE only if all arguments are FALSE. |
PI() (Maths/Stats) | Returns the value of Pi, 3.141592653589793, accurate to over 15 digits. |
POWER(number, power) (Maths/Stats) | Returns the result of a number raised to a power. |
PROPER(text) (Text) | Converts a text string to proper case; the first letter in each word in uppercase, and all other letters to lowercase. |
RAND() or RAND(seed) (Maths/Stats) | Returns a random number greater than or equal to 0 and less than 1, evenly distributed. The result changes on every recalculation, unless a seed value (any number) is specified, in which case the number generated is always the same for a given seed. |
READRES(file_path_or_url, max_cache_age_seconds) (Web) | Reads the text contents from a file or URL. If the maximum cache age in seconds is not specified, it will be assumed to be 1 minute. Downloaded data will be cached for this period. Use -1 to disable caching. |
RECORDCOUNT(subset) (Data) | Evaluates to the number of records (rows) in the all data (if subset is not specified), or a subset (if subset is specified). The subset should be a data subset as evaluated using the SUBSET function. |
REPLACE(old_text, start_num, num_chars, new_text) (Text) | Replaces part of a text string with a different text string. |
REPLACEREGEX(text, regular_expression, replace_text, use_empty_if_no_match) (Data) | Replaces text matching a regular expression. In the replace text, use "$1" to refer to group 1 in the regular expression, and "$$" to mean a single dollar character. If use_empty_if_no_match (optional, default false) is true, and the expression does not match, results in null. For more information on regular expressions, see www.regular-expressions.info |
REPT(text, number_times) (Text) | Repeats text a given number of times. Use REPT to fill a cell with a number of instances of a text string. |
RIGHT(text, num_chars) (Text) | Returns the specified number of characters from the end of a text string. |
ROUND(number, num_digits) (Maths/Stats) | Rounds a number to a specified number of digits. For example: ROUND(123.7825, 2) = 123.78 ROUND(123.456, 1) = 123.5 ROUND(123.456, -2) = 100); |
SAFEDIV(numerator, divisor, if_zero) (Maths/Stats) | Divides a number by another number, safely handling the zero divisor case. The 3rd argument if_zero is optional; if not specified, null is assumed. Examples: * SAFEDIV(2, 3) is equivalent to 2/3 * SAFEDIV(2, null) results in null (as does 2/null ) * SAFEDIV(2, 0) results in null * SAFEDIV(2, 0, -1) results in -1 |
SEARCH(find_text, within_text, start_num) (Text) | Returns the number of the character at which a specific character or text string is first found, reading from left to right (not case-sensitive). The first character is numbered 1. Returns null if not found. |
SEARCHREGEX(reg_expr, within_text, start_num) (Text) | Returns the number of the character at which a regular expression is first found, reading from left to right (not case-sensitive). The first character is numbered 1. Returns null if not found. For more information on regular expressions, see www.regular-expressions.info |
SIGN(number) (Maths/Stats) | Returns the sign of a number: 1 if the number is positive, zero if the number is zero, or -1 if the number is negative. |
SIN(number) (Maths/Stats) | Returns the sine of an angle. |
SINH(number) (Maths/Stats) | Returns the hyperbolic sine of a number. |
SOUNDEX(word) (Text) | Converts a text value containing a single word into its Soundex phonetic code. |
SQRT(number) (Maths/Stats) | Returns the square root of a number. |
STARTSWITH(text, sub_text) (Text) | Returns true if [sub_text] occurs in the beginning of [text] (case insensitive). |
SUBSET(field, field_value, field_operator) (Data) | Evaluates to a subset of the data. Normally used only as an argument to another function. Either: (a) all records (if no arguments are specified); (b) a subset of records (if field and field_value are specified); (c) a subset of records, using a custom operator such as = (if all arguments are specified). Custom operator should be one of: "=", "<>", ">", ">=", "<", "<=", "contains" (2.8+) |
SUBSET_EMPTYCOUNT(stat_field, subset) (Data) | Calculates the statistical function [Number of empty values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_LOWERQUARTILE(stat_field, subset) (Data) | Calculates the statistical function [Lower quartile] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_MAX(stat_field, subset) (Data) | Calculates the statistical function [Maximum value (highest or last)] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_MEAN(stat_field, subset) (Data) | Calculates the statistical function [Mean (average) of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_MEDIAN(stat_field, subset) (Data) | Calculates the statistical function [Median (middle) of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_MIN(stat_field, subset) (Data) | Calculates the statistical function [Minimum value (lowest or first)] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_MODE(stat_field, subset) (Data) | Calculates the statistical function [Most common value (null if multimodal)] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_NONEMPTYCOUNT(stat_field, subset) (Data) | Calculates the statistical function [Number of non-empty values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_SINGLETON(stat_field, subset) (Data) | Calculates the statistical function [The single value, if there is one, otherwise null. If there are nulls present, always null.] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_STDDEV(stat_field, subset) (Data) | Calculates the statistical function [Standard deviation of values from the mean] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_SUM(stat_field, subset) (Data) | Calculates the statistical function [Sum (total) of values] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_UNIQUECOUNT(stat_field, subset) (Data) | Calculates the statistical function [Number of unique non-empty values. Nulls are ignored.] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_UNIQUESLIST(stat_field, subset) (Data) | Calculates the statistical function [A comma-separated list of all unique values, not including null.] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUBSET_UPPERQUARTILE(stat_field, subset) (Data) | Calculates the statistical function [Upper quartile] of a field. Either: (a) for all records (if only field_name is specified); or (b) for a subset of data (if subset is specified). Use the SUBSET function to define a data subset.null |
SUM(number1, number2, ...) (Maths/Stats) | Adds all the arguments. |
TAN(number) (Maths/Stats) | Returns the tangent of an angle. |
TANH(number) (Maths/Stats) | Returns the hyperbolic tangent of a number. |
TEXTTODATE(text_value, custom_format, lenient, time_zone) (Date) | Converts text into a date. If custom_format is specified, this is a custom date format pattern such as "dd/MM/yyyy HH:mm:ss". If not specified, the default format for the current data locale will be used. If lenient is omitted or is true, this controls whether non-existent dates are permitted, such as 29 February on a non-leap-year (corrected to 1 March). If time zone value is specified, this controls how Omniscope interprets time values. If not specified, the text will be assumed to be a date/time from the same time zone as the system. |
TEXTVALUE(value, formatPatternOrDecimalPlaces) (Text) | Converts any value into the text equivalent, optionally using a format pattern. The format pattern (quoted text) defines how numbers or dates are formatted. Alternatively, simply supply a number to specify the number of decimal places. Warning: boolean values (true/false) will be translated using the current Language setting. Usage examples: TEXTVALUE(424) = "424" TEXTVALUE(123456.789, "$###,###.###") = "$123,456.789" TEXTVALUE(123456.789, 4) = "123,456.7890" |
TEXT_LINE_COUNT(text) (Text) | Returns the number of lines (split by line-break) in a text value. |
TODAY() (Date) | Returns the current date. |
TRIM(text) (Text) | Removes all spaces from a text string except for single spaces between words. |
TYPEOF(arg) (Data) | Returns the type of the argument. |
TZCORRECT(date, input_timezone, output_timezone) (Date) | Corrects dates in the wrong timezone. Converts from one timezone to another, preserving the same logical local time in each timezone. Observes the current and historical rules for time zone offset and daylight saving according to the Olson time zone database. For example, if your data was recorded as 9am in time zone X, but it should have been recorded as 9am in time zone Y, you would use: TZCORRECT(date, X, Y) If either time zone is missing, your file's time zone will be used, as configured in the Regional Settings dialog, which defaults to your local system time zone. |
TZDEFAULT() (Date) | Returns the Olson ID for the default time zone for this file, as configured in the Regional Settings dialog, which defaults to your local system time zone. |
TZOFFSET(time_zone, date) (Date) | Returns the UTC offset, in milliseconds, for the time zone specified. If time_zone is not supplied, your file's time zone will be used, as configured in the Regional Settings dialog, which defaults to your local system time zone. If date is specified, returns the offset for that date/time, observing the current and historical behaviour and daylight saving rules. If not specified, returns the current offset from UTC for standard time in that time zone (i.e. without daylight saving). |
UNION(subset1, subset2, ...) (Data) | Returns the data subset which is the union of records for all data subset arguments. If a record is present in ANY supplied subset, it will be present in the result.null |
UNIX_MILLISECONDS_TO_DATE(unixtime) (Date) | Converts a number of milliseconds since unix epoch (00:00 1 January 1970 UTC) to a date. |
UNIX_SECONDS_TO_DATE(unixtime) (Date) | Converts a number of seconds since unix epoch (00:00 1 January 1970 UTC) to a date. |
UPPER(text) (Text) | Converts all letters in a text string to uppercase. |
VALUE(text) (Data) | Converts a text string that represents a number to a number, or date text into a date, where possible, otherwise resulting in a text value. |
XPATH(xml_data, xpath_expression) (Script) | Executes an XPath expression against an XML document. To obtain XML data, see the READRES function. For more information on XPath, see www.w3schools.com/xpath/ |
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article