# Text variables

Text variables hold free text, such as surnames, postcodes, or email addresses. The data picker shows them with the ABC icon. You filter by them by entering the values to match, and choosing how they match.

## Filter by a text variable

You can match whole values, or part of each value.

To filter by a text variable:

1. Choose how to match from the dropdown:

   - **Is**: Matches the whole value exactly
   - **Is not**: Excludes exact matches
   - **Starts with**: Matches the start of the value
   - **Does not start with**: Excludes values that start with what you enter
   - **Ends with**: Matches the end of the value
   - **Does not end with**: Excludes values that end with what you enter
   - **Contains**: Matches what you enter anywhere in the value
   - **Does not contain**: Excludes values that contain what you enter
   - **Has ranges and wildcards of**: Matches a pattern. See [Use wildcards](<#use-wildcards>).
   - **Does not have ranges and wildcards of**: Excludes values that match a pattern
2. On the **Values** tab, type or paste up to 100 values, one on each line or separated by commas. For more values, [use a file](<#use-a-file-of-text-values>).
3. To match upper and lower case exactly, tick **Match case**.
4. Select **Apply**.

> [!NOTE]
>
> **Example**
>
> To find supporters with an email address at your charity's own domain, filter by Email Address, choose **Ends with**, and enter the domain, such as `@example.org.uk`.

## Use wildcards

With **Has ranges and wildcards of**, you can match a pattern instead of a fixed value:

- `?` matches any single character, including a space, digit, or symbol
- `*` matches any number of characters, including none

> [!NOTE]
>
> **Examples**
>
> - `Sm?th` finds `Smith` and `Smyth`
> - `Robert*` finds `Robert`, `Roberts`, and `Robertson`
> - `ABC-???` finds codes with ABC, a dash, and exactly three more characters
> - `ABC-?*` finds codes with ABC, a dash, and at least one more character
> - `?*` finds every value that isn't blank

## Use a file of text values

To match more than 100 values, such as a long list of email addresses, use a file. Use the **Upload File** or **Existing File** tab, as described in [Use a file of values](<https://help.apteco.com/en/orbit/data/variables/#use-a-file-of-values>).

When you use a file, the dropdown offers **In** and **Not in**, instead of the options for typed values. Choose **In** to include records whose value is in the file, or **Not in** to exclude them.

For a text variable, the file must:

- Be a `.TXT` file, up to 25 MB
- Have no value longer than the variable allows
