Fix NetSuite Saved Search Partial Text Filter
Saved search text filters default to exact match, so typing 5780 will not find 135780. Use the contains operator and mind the field type.

On this page
Text field filters on saved searches default to exact match. If your field displays 135780, typing 5780 into the filter returns nothing. It trips up almost everyone who builds saved searches with text filters.
There's a documented workaround using a Formula (Text) criteria row. No script or custom field required.
Why the Filter Demands an Exact Match
NetSuite's native text filters default to is (exact match) when added under Available Filters. The filter input box on the results page doesn't give you a dropdown to switch to contains, it applies whatever operator you configured on the Criteria subtab.
You can't change the operator from the results page. The Search Guide confirms the Criteria subtab is where filter behavior gets defined; Available Filters only controls which optional filters viewers see.
The One-Space Trick That Fixes It
This workaround relies on NetSuite's behavior when a filter has a "contains" operator with a single space as the default value.
- Go to the saved search you want to modify (or create a new one).
- Open the Criteria subtab.
- Add a new filter row.
- In the Filter column, select Formula (Text).
- In the popup, set the Operator to
containsand enter one empty space (press the spacebar once) in the value field. - Click Set to confirm the formula row.
- In the formula text area, enter the field reference. For a custom text field, use
{custentity_yourfield}. - Go to the Available Filters subtab and ensure your original text field is listed there (it usually is by default).
- Save the search.
Now the filter accepts partial matches. Typing 5780 returns all rows where the field contains 5780 anywhere in the value.
Why This Works (and What's Happening)
NetSuite treats the Formula (Text) criteria row as the "default" filter state. Setting it to contains with a space tells NetSuite to use contains logic instead of is.
The space is key. An empty value would be ignored. A single space is a valid string that matches everything, so the filter stays active but doesn't restrict results until you type something.
The official search documentation notes that for text fields, you can select starts with or contains when you know only part of the value, but that guidance applies to the Criteria subtab, not Available Filters. The formula row bridges that gap.
A More Explicit Alternative: Wildcards
If the space trick feels too fragile, use wildcards instead. Set the filter operator to is (exact match) but include % characters in the value.
Set up the same Formula (Text) criteria row, but change the formula to:
TO_CHAR({custentity_yourfield})Then in the filter input on the results page, type:
%5780%The % characters act as wildcards. %5780% matches any value containing 5780 anywhere. Same partial match behavior, but you have to type the % symbols every time.
What About Numeric Fields?
The same logic applies to numeric fields, but you need to convert them to text first. NetSuite's Formula (Text) criteria can handle this with TO_CHAR().
For an amount field where you want to filter by partial digits:
TO_CHAR({amount})Then use the space trick or % wildcards exactly as described above. Common pattern for transaction searches where users want to match a portion of a document number or amount.
Edge Cases to Watch For
- Formula (Text) vs. Formula (Numeric): If you use
TO_CHAR()on a numeric field, the formula must be Formula (Text), not Formula (Numeric). NetSuite enforces that the formula's output matches the chosen return type. - Multiple filters: The space trick works per-field. Need partial matching on two text fields? Add a Formula (Text) criteria row for each.
- Performance on large searches: Formula criteria are evaluated per record. On searches returning thousands of rows, this adds processing time. Keep the search scoped with other criteria where possible.
- Custom fields with internal IDs: Make sure the field reference uses the correct internal ID. The documentation on internal IDs explains that you can enable "Show Internal IDs" and click the field label to see its ID in the Field Level Help window, no need to hunt through customization lists.
Testing the Setup
Before rollout, test with a few values:
- Type the full value (
135780), results should match. - Type a partial value (
5780), results should now match. - Type a value that doesn't exist, results should be empty.
- Clear the filter entirely, all rows should show.
If step 2 fails, double-check the Formula (Text) criteria row has the operator set to contains and that the space is actually a space, not an empty string.
This workaround has been around for years and continues to work across NetSuite releases. It's not documented as a "partial match" feature, but it's reliable in production. The data you need is already in the field, this just changes how the filter reads it.


