concat joins two or more strings into one: a full name, a label such as “North – SMB”, or a key that
combines several columns. It only accepts text, so numbers and dates are converted first.
Copy and paste
Two fields with a space:
concat({First Name}, ' ', {Last Name})
A label from two dimensions:
concat({Region}, ' – ', {Segment})
With a number:
concat({Product}, ' (', toString({Units}), ' units)')
With a date, formatted:
concat('Order of ', formatDate({Order Date}, 'dd MMM yyyy'))
A composite key:
concat({Customer ID}, '|', formatDate({Order Date}, 'yyyy-MM-dd'))
A part that may be missing:
concat({First Name}, ' ', coalesce({Middle Name}, ''), ' ', {Last Name})
Only text goes in
Every argument must be a string. Convert numbers with toString and dates with formatDate, which lets
you choose the pattern. toString on a date returns the full timestamp, such as
2026-05-14T00:00:00.000Z, which is rarely what a label wants.
toString writes decimals as they are stored. Round first when the value has more decimals than you want
to show: toString(round({Price}, 2)).
Nulls
A null part can blank or break the result, and a missing middle name should not erase the whole name.
Wrap any part that can be null in coalesce(..., ''). With the last formula, a missing middle name
leaves two spaces in a row; if that matters, build the middle part with its own space:
ifelse(isNull({Middle Name}), '', concat({Middle Name}, ' ')).
Keys need a separator
Without a separator, different pairs can produce the same key: customer 12 with code 3 and customer
1 with code 23 both become 123. A character that never appears in the data, such as |, keeps
them apart.
Labels in visuals
A concatenated field is a dimension and sorts alphabetically. For labels that should follow a date or a number, sort the visual by that field instead. For text that only appears in a title, parameters and fields can be inserted directly in the title without a calculated field.
Checked against the Amazon Quick Sight function reference (October 2026).