Working with Data: All the calculations you need t
  • Introduction
  • What is this book?
  • How to Use this Book
  • Document Notes
  • Authors' Thanks
  • Strings
    • Concatenate
    • Split
    • Length
    • Slice
    • Trim
    • Contains
    • Match
    • Replace
    • Upper/Lower Case
  • Numbers
    • Sum
    • Average
    • Roll Ups
    • Round
    • Floor
    • Power
    • Square Root
    • Absolute
  • Dates
    • Date Difference
    • Age
  • Logical
    • Logical Operators
    • If
    • Case / Switch
    • Is Null/Empty
  • General
    • Count
    • Filter
    • Sort
    • Lookup/Join
    • Variables
    • Convert Type
  • Appendix
    • DateTime Parts
    • Helpful Resources
Powered by GitBook
On this page
  • Excel
  • Tableau
  • Alteryx
  • OrgVue
  • tSQL
  • Python

Was this helpful?

  1. Strings

Match

PreviousContainsNextReplace

Last updated 5 years ago

Was this helpful?

Match allows you to test whether or not a string is the same as a text value you provide. This can be a specific value, or a a more complex match using Regular Expressions (regex) - a powerful and commonly used form of syntax for searching for patterns of characters e.g. in search engines.

With most tools, match returns a True|False, but in Excel match returns the index within a range of cells of a cell that meets your criteria. This can be combined with an INDEX function to reference values in multiple tables, see .

Excel

=~MATCH!~(‹target_string›, ‹within_array›«, match_type»)

Match Type Options:

  • "0": MATCH finds the first value that is exactly equal to ‹target_string› and returns its index. The values in the ‹within_array› argument can be in any order.

  • "1" or omitted: MATCH finds the largest value that is less than or equal to ‹target_string› and returns its index. The values in the ‹within_array› argument must be placed in ascending order, for example: -1, 0, 1, 2, 3, A-Z, FALSE, TRUE

  • "-1": MATCH finds the smallest value that is greater than or equal to ‹target_string› and returns its index. The values in the ‹within_array› argument must be placed in descending order, for example: TRUE, FALSE, Z-A, 3, 2, 1, 0, -1

=MATCH(2.5,A1:A5,1) // Within [-1,0,1,2,3] returns 4

=MATCH(2.5,A1:A5,-1) // Within [3,2,1,0,-1] returns 1

=MATCH(2.5,A1:A5,0) // Within either array returns #N/A

Tableau

Tableau has no Match function so use an IF() to test for exact matches.

IF [Job Title] = "PA" THEN "Show" ELSE "Hide" END

Alteryx

~REGEX_MATCH!~(‹within_string›, "‹target_string›") where the result is only true when the ‹target_string› exactly matches the ‹within_string›.

REGEX_MATCH(UPPERCASE([Job Title]), "PA")

OrgVue

In OrgVue, match() can be used to find specified strings and also in conjunction with Regular Expressions. Example 1 - String matching:

node.role.value.toUpperCase().match("MANAGE")
// Returns the word "MANAGE" if it appears in the Role value

Example 2 - Sophisticated matching of characters:

node.costcentre.value.match(/[0-9]/)
// Matches any numbers within the value for Cost Centre

Example 3 - Pattern matching:

node.ninumber.value.match(/[A-Za-z]{2}\s[0-9]{2}\s[0-9]{2}\s[0-9]{2}\s[A-Za-z]/g)
// Matches for a specific format of NI number, in this case,
// two letters-six numbers (grouped in pairs)-one letter, all separated with spaces
// e.g.: QQ 12 34 56 C

tSQL

Example 1 - String matching: ‹within_field› ~LIKE!~ "‹target_string›"

SELECT *
FROM EmployeesData
WHERE JobTitle LIKE "PA"

Example 2: Instead of matching a specified strings, you can also use pattern matching, similar to Regular Expressions - a powerful and commonly used form of syntax for searching for patterns of characters e.g. in search engines. tSGL supports the following 'wildcard characters' in a pattern:

  • % - match any string of 0+ characters

  • _ - match any single character

  • [] - match any single character within the range specified in brackets

  • [^] match any single character not within the range specified in brackets

Python

In Python, matching can be done on specified strings and also in conjunction with Regular Expressions. Example 1 - String matching: ‹target_string› ~in!~ ‹within_string›

"PA" in jobTitle

Example 2 - Sophisticated matching of characters: ~re.search!~(‹pattern›, ‹field›)

import re

matcher = re.search('[A-Za-z]{2}\s[0-9]{2}\s[0-9]{2}\s[0-9]{2}\s[A-Za-z]', niNumber)

# matcher is None if no match, otherwise matcher is a Match object where matcher.group(0) is the matching string

NB.:

  • This requires the Regular Expressions library to be imported (import re).

NB. The ‹target_string› can also be defined using Regular Expressions, or using the RegEx tool (in the Parse palette): or the Fuzzy Match tool (in the Join palette):

which allows you to test for approximate matches based on user-defined or standard-algorithm parameters.

NB. For more information about the match() syntax, see the summary of Regular Expressions (Regex) or test them out yourself at .

For more examples, go to: .

The above examples assume variables have been declared for jobTitle and niNumber. For more information, go to .

General > Lookups/Joins
here
regexr.com
https://msdn.microsoft.com/en-us/library/ms179859.aspx
General > Variables