Altair® Monarch®

 

Functions Reference - Monarch Classic

The following tables describe the functions that may be used to create calculated fields in Monarch Classic.

Date Functions

Date functions operate on or with dates.

Function & Syntax

Description

Age(startdate[,enddate [,interval]])

Returns the number of whole intervals between the given start date and end date.

CalendarWeek(date)

Returns the week number of the calendar week in which the given date falls. This is similar to the Week function, but it does week numbering according to the current settings under Options/Time Intervals.

Date([date])

Returns the date portion of a given date/time or today's date.

DateAdjust(date,years [,months[,days]])

Returns the given date value adjusted forward or backward by the given integral number of years, months, and days.

Day(date)

Returns the number of day (1-31) from a date.

DayOfYear(date)

Returns the day number (1-366) from a date/time.

Days360(startdate,enddate[,method])

Returns the number of days between the given start date and end date, based on a 360-day year. If method is 0 (or omitted) then the calculation is based on the US (NASD) method, otherwise it is based on the European method.

FirstDay(date interval_type)

Returns the date of the first day of the interval in which the given date falls, where interval_type specifies the type of time interval.

FiscalDayOfYear(date)

Returns the day number of the day within the fiscal year in which the given date falls.

FiscalHalfYear(date)

Returns the number (1 or 2) of the fiscal half-year in which the given date falls.

FiscalPeriod(date)

Returns the number (1-13) of the fiscal period in which the given date falls.

FiscalQtr(date)

Returns the number (1-4) of the fiscal quarter in which the given date falls.

FiscalWeek(date)

Returns the week number of the fiscal week in which the given date falls.

FiscalYear(date [at_start])

Returns the year number of the fiscal year in which the given date falls. If at_start is 0 or not given, then the fiscal year is numbered for the calendar year in which it ends. If at_start is non-zero, then the fiscal year is numbered for the calendar year in which it starts.

HalfYear(date)

Returns the number (1 or 2) of the calendar half-year in which the given date falls.

Hour(date)

Returns the hour (0-23) from a date/time.

IsoDayOfYear(date)

Returns the day number within the ISO8601 year on which the given date falls.

IsoWeek(date)

Returns the ISO8601 week number of the week in which the given date falls.

IsoWeekDay(date)

Returns the number of the day of the week for the given date, where 1=Monday, 2=Tuesday, …, 7=Sunday.

IsoYear(date)

Returns the year corresponding to the ISO8601 week in which the given date falls. For dates near the end of December or the start of January this may be different than the calendar year.

LastDay(date, interval_type)

Returns the date of the last day of the interval in which the given date falls, where interval_type specifies the type of time interval.

Max(expr1,expr2 [,expr3[,expr4]])

This function returns the larger of expr1, expr2 and optionally expr3 and expr4. Accepts numeric, date or character input.

Min(expr1,expr2 [,expr3[,expr4]])

This function returns the smaller of expr1, expr2 and optionally expr3 and expr4. Accepts numeric, date or character input.

Minute(date)

Returns the minute (0-59) from a date/time.

Month(date)

Returns the number of month (1-12) from a date.

Qtr(date)

Returns the quarter of the year within which a date falls:
1 = January - March, 2 = April - June, 3 = July - September
and 4 = October - December.

Second(date)

Returns the second (0-59) from a date/time.

Time([date])

Returns the time portion of a date/time or the current time.

Today()

Returns today’s date (i.e., the current system date).

Week(date[,startday])

Returns the number of week (1-53) from a date. startday designates the day that begins each week.

Weekday(date [,startday])

Returns the number of the weekday (1-7) of a date. startday designates the day that begins each week.

Year(date)

Returns the number of year from a date. Valid range is 1601-2400.

YearFrac(startdate, enddate)

Returns the fractional number of years represented by the number of whole days between the given start date and end date, according to basis, which has the following meanings:  0 (or omitted)=US (NASD) 30/360;  1=actual/actual; 2=actual/360; 3=actual/365; 4=European 30/360.

 

String Functions

String functions operate on or with character strings.

Function & Syntax

Description

Extract(string,start string[,end string])

Extracts a substring between a starting string and an optional ending string.

Instr(search string, target string)

Returns the numeric position of search string within the field specified in target string. If the search string is not found, a value of zero is returned.

InTrim(string)

This function trims any sequence of consecutive spaces within a string to a single space, and also removes any leading or trailing spaces from it.

IsAlpha(character)

Returns 1 (true) if character is alphabetic, otherwise returns 0 (false).

IsBlank(string)

Returns 1 (true) if string is either empty or contains all blanks, otherwise returns 0 (false).

IsLower(character)

Returns 1 (true) if character is a lowercase alphabetic, otherwise returns 0 (false).

IsUpper(character)

Returns 1 (true) if character is an uppercase alphabetic, otherwise returns 0 (false).

Left(string,n)

Returns n number of characters from the beginning of string.

Len(string)

Returns the length of string as a number.

Lower(string)

Converts all uppercase letters in string to lowercase letters.

LSplit(string, maxparts,sep,n)

Starts on the left and splits string into the specified number of parts (maxparts) using sep as the separator. sep may be a single character or a substring. n specifies which part to return.

LTrim(string)

Removes leading spaces from string.

Max(expr1,expr2 [,expr3[,expr4]])

This function returns the larger of expr1, expr2 and optionally expr3 and expr4. Accepts numeric, date or character input.

Min(expr1,expr2 [,expr3[,expr4]])

This function returns the smaller of expr1, expr2 and optionally expr3 and expr4. Accepts numeric, date or character input.

NSplit(string,n)

Reads string as a person’s name, splits it into five substrings - prefix, first name, middle initial or middle name, last name, and suffix - then returns the specified substring (n).

Proper(string)

Forces to uppercase the first letter of each word in string.

PSplit(string,n)

Reads string as a postal code, splits it into 3 substrings - city, state, and postal code - then returns the specified substring (n).

RegexExtract(string,pattern[,N])

Scans the given string for matches to the given regular expression pattern. Returns the text of the Nth match found. If N is not given, this function returns the text of the first match found, if any.

RegexIsMatch(string,pattern)

Scans the given string for a match to the given regular expression pattern. Returns 1 if a match was found, 0 otherwise.

RegexReplace(string,pattern, replacement)

Scans the given string for matches to the given regular expression pattern. Each match found is replaced according to the substitutions in the replacement string, and the overall resultant string is returned.

RegexSplit(string,pattern[,piece])

Splits the given string into pieces based on matches of the given regular expression pattern. Returns the requested piece, which is a 1-based number indicating the desired piece, counting from the left. Returns the first piece if piece is not specified.

Replace(string,old,new)

Replaces a substring in a string with a new substring.

Right(string,n)

Returns n number of characters from the end of string.

RSplit(string, maxparts,sep,n)

Starts on the right and splits string into the specified number of parts (maxparts) using sep as the separator. sep may be a single character or a substring. n specifies which part to return.

RTrim(string)

Trims trailing spaces from string.

Space(number)

Returns a string consisting of a specified number of spaces.

Strip(string,stripchars)

Strips the indicated characters (stripchars) from string.

Stuff(s,p,n,c)

Returns a string by replacing n number of characters in string s, starting at position p, using replacement string c.

Substr(string,starting position,length)

Extracts a substring of a specified length and starting position from string.

TextLine(string,n)

Splits a multi-line string at the line breaks and returns the specified line.

Trim(string)

Trims leading and trailing spaces from string.

Upper(string)

Converts all lowercase letters in a character string to uppercase letters.

 

Numeric Functions

Numeric functions operate on or with numbers.

Function & Syntax

Description

Abs(number)

Returns the absolute value of a number.

Ceiling(number [,number2])

Rounds a number up (to the next multiple of number2, if specified).

Exp(number)

Returns e raised to a number.

Floor(number [,number2])

Rounds a number down (to the previous multiple of number2, if specified).

Int(number)

Returns the integer portion of a number.

Log(number)

Returns the natural logarithm (base e) of a number.

Max(expr1,expr2 [,expr3[,expr4]])

This function returns the larger of expr1, expr2 and optionally expr3 and expr4. Accepts numeric, date or character input.

Min(expr1,expr2 [,expr3[,expr4]])

This function returns the smaller of expr1, expr2 and optionally expr3 and expr4. Accepts numeric, date or character input.

Mod(number1, number2)

Returns the remainder after dividing number1 by number2.

MRound(number, number2)

Rounds a number to the nearest multiple of number2.

Round(number [,decimals])

Rounds number to a specified number of places to the right (or left) of the decimal point. Note: Negative values of decimals round the integer portion of the number rather than the decimal portion.

Sqrt(number)

Returns the square root of number.

 

Redaction Functions

Monarch Data Prep Studio provides the following functions that will allow you to replace, or mask out field values, so that only a representation of the field value is displayed, and not the actual value.

Function & Syntax

Description

RedactBankNumber(text)

Redacts a bank number (e.g., a credit card number) by replacing any digits in the input text with a random pattern of digits, adjusted so that the resulting number is not a valid bank number. Any non-digit characters in the input text are preserved. Produces a consistent and unique alias.

RedactDigitsWithConsistentAlias(text)

Redacts the given text by substituting a random pattern of digits in place of the original digits in the text. Any non-digit characters in the input text are preserved. Produces a consistent and unique alias.

RedactNHS(text)

Redacts an NHS Number by replacing any digits in the input text with a random pattern of digits, adjusted so that the resulting number is not a valid NHS Number. Any non-digit characters in the input text are preserved. Produces a consistent and unique alias.

RedactSSN(text)

Redacts a Social Security Number by replacing any digits in the input text with a random pattern of digits, adjusted so that the resulting number is not a valid SSN. Any non-digit characters in the input text are preserved. Produces a consistent and unique alias.

RedactStrikeout(text[,overstrike[,keepBlanks]])

Redacts the given text by striking out characters with a given overstrike character, optionally keeping any blanks.

RedactStrikeoutDigits(text[,overstrike[,keepLastN]])

Redacts the given text by striking out characters with a given overstrike character, optionally keeping any blanks.

RedactTextWithConsistentAlias(text)

Redacts the given text by producing a random pattern of letters and digits of the same length which can serve as a consistent and unique alias.

 

Conversion Functions

Conversion functions convert a value of one type to another type, such as a date to a string.

Function & Syntax

Description

Asc(string)

Returns the numeric value of a character.

Base64Decode(string)

Decodes a string from a Base64 format string.

Base64Encode(string)

Encodes a string to a Base64 format string.

CharToSeconds (timestring)

Converts a time string to a number representing seconds since midnight.

Chr(number)

Returns the character value of a number.

CtoD(string [,date format[,extraction format]])

Converts a string to date format. date format is an optional parameter that indicates the date format, "m/d/y", "d/m/y" or "y/m/d". extraction format is an optional parameter that indicates the date/time extraction pattern. "D" extracts a date, "DT" extracts a date followed by a time, "T" extracts a time and "TD" extracts a time followed by a date. More than one extraction pattern may be combined to form a list of extraction patterns. For example: "D,DT" means extract a date OR a date followed by a time.

DateToJulian(date [,length])

Converts a date to a Julian date string of the given length. Default length is 5.

Dtoc(date)

Converts a date to character format.

JulianToDate(string)

Converts a Julian date string to a date.

SecondsToChar (seconds)

Converts a number representing seconds since midnight to a time string.

Str(number[,length[,decimals[,fillchar]]])

Converts a number to a string. length is the total length of the string to return, decimals specifies the decimal position to round, and fillchar is a character used to fill up to the value specified in length.

Val(string)

Converts a string to a number. Note: The string must begin with a numeric character or a negation sign. If the string contains any non-numeric characters (apart from a decimal delimiter character) this function will convert the numeric portion of the string up to the first non-numeric character it encounters.

 

Special Functions

Monarch Data Prep Studio provides the following special functions that can be used to perform comparisons, check the status of fields, or generate random numbers (for use in auditing or other applications).

Function & Syntax

Description

ActiveFilter()

Returns the name of the active filter.

If(condition,true value, false value)

Returns true value or false value from a conditional expression. If the expression is true, the true value is returned, otherwise the false value is returned. The return value may be a date, string or number.

IsEmpty(field)

Returns 1 if field is empty, otherwise returns 0. Note: The field parameter must be the name of a field from the Table window.

IsNull(expression)

Returns 1 if expression is null, otherwise returns 0.

Rand()

Returns a record’s random number in the range 0 to 32767.

RandEx()

Return’s a record’s random number in the range 0 to 4294967295

 

Report Functions

Report functions return information relating to the source of a record.

Function & Syntax

Description

Column()

Returns the column (within a Multi-Column Region) on the report page of the last detail line for a record. The value is always 1 if the Multi-Column Region is not active.

File()

Returns the name of the report file used to build a record.

ID()

Returns the number of the report file used to build a record.

Line()

Returns the line on the report page of the last detail line for a record.

Page()

Returns the page in the report file of the last detail line for a record.

PageCount()

Returns the  page count for a report.

PdfInfo()

Returns the PDF metadata item value for a report file that is a pdf. Possible PDF metadata items: Author, CreationDateRaw, CreationDateISO, Creator, Keywords, ModDateRaw, ModDateISO, PageCount, Producer, Subject, Title, Version.

PdfPage()

Returns the page number for the report data for the related row in the table.

PdfProducer()

Returns the Pdf producer name for a report file that is a pdf.

Recno()

Returns detail record number. Each record is assigned a record number when the record is generated from a detail line in the report (e.g., Recno=1 always corresponds to the first detail line extracted from the report). Record numbers do not change when a filter is applied to the table or when the table is sorted, but do change if the detail template is modified in such a way as to yield more or fewer records).

Rowno()

Returns the row number of a record. This function differs from the Recno function in that row numbers are reassigned each time you sort or filter the table while record numbers are not.

 

User-Defined Functions

A complete list of the user-defined functions available in Monarch Classic may be found here.