CONCATENATE Function (LibreOffice Calc)

Text Beginner LibreOffice Calc Introduced in LibreOffice 3.0
text concatenation string-building formatting legacy

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

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.

Copyright 2026. All rights reserved.