CONCATENATE Function (LibreOffice Calc)
The CONCATENATE function in LibreOffice Calc joins multiple text values into a single string. It is the legacy predecessor to CONCAT and remains widely used in older spreadsheets and compatibility-focused workflows.
Compatibility
▾| Excel | ✔ |
| Gnumeric | ✔ |
| Google_sheets | ✔ |
| Libreoffice | ✔ |
| Numbers | ✔ |
| Onlyoffice | ✔ |
| Openoffice | ✔ |
| Wps | ✔ |
| Zoho | ✔ |
What the CONCATENATE Function Does ▾
- Joins multiple text values into one string
- Does not accept ranges (unlike CONCAT)
- Automatically converts numbers to text
- Legacy function — still widely supported
- Does not insert delimiters (use TEXTJOIN for that)
It is designed to be simple, compatible, and predictable.
Syntax ▾
CONCATENATE(text1; text2; ...)
Arguments
- text1, text2, …:
One or more text values or cell references.
Ranges are not allowed.
Basic Examples ▾
Join two strings
=CONCATENATE("Hello"; "World")
Returns "HelloWorld".
Join with a space
=CONCATENATE("Hello"; " "; "World")
Join cell values
=CONCATENATE(A1; B1)
Join text and numbers
=CONCATENATE("Year: "; 2024)
Returns "Year: 2024".
Advanced Examples ▾
Build a full name
=CONCATENATE(A1; " "; B1)
Build a file path
=CONCATENATE("/home/user/"; A1; "/"; B1)
Build a SKU code
=CONCATENATE(LEFT(A1; 3); "-"; RIGHT(B1; 4))
Build a dynamic label
=CONCATENATE("Total for "; A1; ": "; B1)
Join cleaned text
=CONCATENATE(TRIM(A1); " "; TRIM(B1))
Conditional concatenation
=CONCATENATE(A1; IF(B1=""; ""; " - " & B1))
Join extracted substrings
=CONCATENATE(LEFT(A1; 2); MID(A1; 4; 3); RIGHT(A1; 2))
Build structured codes
=CONCATENATE("ID-"; TEXT(A1; "0000"))
Join with logic
=CONCATENATE(A1; IF(C1>0; " (Active)"; " (Inactive)"))
Edge Cases and Behavior Details ▾
CONCATENATE does not accept ranges
=CONCATENATE(A1:A3) → Err:504
Use CONCAT or TEXTJOIN instead.
CONCATENATE treats numbers as text
=CONCATENATE(1; 2; 3) → "123"
CONCATENATE ignores empty strings
=CONCATENATE("A"; ""; "B") → "AB"
Blank cells contribute empty strings
=CONCATENATE(A1; A2)
If A2 is blank, it adds nothing.
Errors propagate
=CONCATENATE("A"; #N/A) → #N/A
CONCATENATE cannot insert delimiters automatically
Use TEXTJOIN for delimiter‑aware joining.
CONCATENATE is slower than CONCAT for large inputs
Because it cannot accept ranges.
Common Errors and Fixes ▾
Err:504 — Parameter list error
Occurs when:
- A range is passed instead of individual arguments
- Too many arguments for older spreadsheet engines
CONCATENATE returns unexpected output
Cause:
- Hidden spaces
- TRIM not applied
- CLEAN not applied
CONCATENATE returns #VALUE!
Cause:
- One of the arguments is an error
- A reference contains an error
Best Practices ▾
- Use CONCATENATE only for legacy compatibility
- Prefer CONCAT or TEXTJOIN in modern spreadsheets
- Use TRIM and CLEAN before concatenation
- Use LEFT/RIGHT/MID to build structured strings
- Use SUBSTITUTE to clean text before joining
- Use CONCATENATE with IF for conditional assembly
CONCATENATE is your legacy‑friendly text builder — perfect for older spreadsheets, compatibility workflows, and environments where CONCAT or TEXTJOIN may not exist.
Related Patterns and Alternatives ▾
- Use CONCAT for modern joining
- Use TEXTJOIN for delimiter‑aware joining
- Use LEFT, RIGHT, MID for extraction
- Use SUBSTITUTE and REPLACE for editing
- Use TRIM and CLEAN for normalization
By mastering CONCATENATE and its companion functions, you can maintain compatibility while still building clean, flexible, and powerful text‑processing workflows in LibreOffice Calc.