CONCATENATE is a DAX function that joins exactly two text strings into one. For three or more values, use the ampersand (&) operator instead — it accepts unlimited operands and produces cleaner code. This page covers CONCATENATE syntax, five practical examples, CONCATENATEX for table aggregation, and performance best practices for enterprise Power BI models.
Key Facts
- CONCATENATE accepts exactly two arguments. For more values, nest the function or use &.
- The & operator is preferred for most use cases — unlimited operands, no nesting required.
- Non-text values (numbers, dates, Booleans) are automatically converted to text.
- BLANK values are treated as empty strings — concatenating "Hello" with BLANK returns "Hello".
- CONCATENATEX aggregates text across rows in a table (similar to GROUP_CONCAT in SQL).
How to Use CONCATENATE in Power BI DAX (with 5 Examples)
Power BI CONCATENATE: DAX Syntax + 5 Examples (2026)
CONCATENATE is a DAX function that joins exactly two text strings into one. For three or more values, use the ampersand (&) operator instead — it accepts unlimited operands and produces cleaner code. This page covers CONCATENATE syntax, five practical examples, CONCATENATEX for table aggregation, and performance best practices for enterprise Power BI models. See also our DAX formulas reference guide for related functions like CONCATENATEX, SWITCH, and running totals.
Key facts
- CONCATENATE accepts exactly two arguments. For more values, nest the function or use &.
- The & operator is preferred for most use cases — unlimited operands, no nesting required.
- Non-text values (numbers, dates, Booleans) are automatically converted to text.
- BLANK values are treated as empty strings — concatenating "Hello" with BLANK returns "Hello".
- CONCATENATEX aggregates text across rows in a table (similar to GROUP_CONCAT in SQL).
CONCATENATE Syntax and Basic Usage
The DAX syntax for CONCATENATE is straightforward:
CONCATENATE(<Text1>, <Text2>)
Parameters:
- Text1, Text2 — any text value, column reference, or expression that returns text. Non-text values convert to text automatically.
- Two-argument limit — CONCATENATE accepts only two arguments. For three or more values, nest the function or use &.
- BLANK handling — BLANK values are treated as empty strings.
Example — combining first and last name:
Full Name = CONCATENATE([First Name], CONCATENATE(" ", [Last Name]))
The same result is simpler with the & operator:
Full Name = [First Name] & " " & [Last Name]
The Ampersand Operator: A Better Alternative
The & operator joins any number of text values without nesting. It is the preferred approach in modern DAX.
- Unlimited operands — chain as many values as needed without nesting.
- Cleaner code — easier to read and maintain than nested CONCATENATE calls.
- Same performance — & and CONCATENATE produce identical query plans in the VertiPaq engine.
Use CONCATENATE when you want explicit function-style syntax or are working inside a legacy model that uses it for consistency.
CONCATENATEX for Table Aggregation
CONCATENATEX aggregates text values across rows in a table. It works like GROUP_CONCAT in SQL or TEXTJOIN in Excel.
CONCATENATEX(<Table>, <Expression>, [<Delimiter>], [<OrderBy_Expression>], [<Order>])
Example — creating a comma-separated list of products per customer:
Products Purchased =
CONCATENATEX(
RELATEDTABLE(Sales),
Sales[Product Name],
", ",
Sales[Product Name],
ASC
)
CONCATENATEX is the right tool when you need to collapse multiple rows into a single display value for a card, tooltip, or table visual.
5 CONCATENATE Examples for Enterprise Reports
Example 1: Full Name from First and Last
Full Name = [First Name] & " " & [Last Name]
Combines employee name columns into a single display value. Use in table visuals and slicer labels.
Example 2: Composite Key for Fact-Dimension Matching
Composite Key = [Region] & "-" & [Product ID] & "-" & [Year]
Builds surrogate keys when a single column cannot uniquely identify a row. Common in multi-source data models.
Example 3: Dynamic Report Title with Date
Report Title = "Sales Report: " & FORMAT(TODAY(), "MMMM YYYY")
Creates a self-updating title card that shows the current month and year. No manual updates required.
Example 4: Address from Multiple Columns
Full Address = [Street] & ", " & [City] & ", " & [State] & " " & [ZIP]
Assembles a formatted mailing address from separate fields for display in a customer detail report.
Example 5: Product-Region Label for Visuals
Product Label = [Product Name] & " (" & [Region] & ")"
Creates descriptive axis labels that distinguish the same product sold in different regions. Useful for bar and line charts with overlapping product names.
Enterprise Use Cases and Patterns
These are the most common CONCATENATE patterns EPC Group implements in enterprise Power BI models:
- Dynamic tooltips — combine KPI value, trend direction, and period into a single tooltip string.
- Composite keys — build unique identifiers when source data lacks a natural primary key.
- Formatted display values — combine numeric measures with units, currency symbols, or status labels.
- Row-level security labels — concatenate user role and region for RLS filter expressions.
- Data validation flags — combine column name and error type into a single audit string for data quality reports.
Performance Tips and Best Practices
- Use & over CONCATENATE — identical performance, cleaner syntax, no nesting required.
- Avoid CONCATENATE in large calculated columns — text columns expand in-memory storage. Evaluate whether the column is needed or can be calculated at query time in a measure instead.
- Prefer CONCATENATEX with explicit ORDER BY — without ordering, the row sequence is non-deterministic. Always specify the order column for consistent results.
- Limit CONCATENATEX result length — very long strings cause visual rendering issues. Cap output with a CALCULATE filter or LEFT function if needed.
- Test with DAX Studio — verify query plan and storage engine calls for any CONCATENATE-heavy calculated column before publishing to production.
Frequently Asked Questions
What does CONCATENATE do in Power BI?
CONCATENATE joins exactly two text strings into one string. It is the DAX equivalent of the & operator but limited to two arguments. For three or more values, use & or nest CONCATENATE calls.
What is the difference between CONCATENATE and & in DAX?
Both produce the same result and the same query plan. The & operator accepts unlimited operands without nesting, making it cleaner for most use cases. CONCATENATE is limited to two arguments. Use & for new DAX code unless a style guide requires the function.
How do I concatenate more than two values in DAX?
Use the & operator: [Column1] & " " & [Column2] & " " & [Column3]. Alternatively, nest CONCATENATE: CONCATENATE([Column1], CONCATENATE(" ", [Column2])). The & operator is preferred for readability.
What is CONCATENATEX and when should I use it?
CONCATENATEX aggregates text values across multiple rows in a table, returning a single delimited string. Use it when you need to collapse row-level data into a summary display — similar to SQL GROUP_CONCAT or Excel TEXTJOIN.
Does CONCATENATE work with numbers and dates?
Yes. CONCATENATE automatically converts numbers, dates, and Boolean values to their text representation. For formatted output, wrap the value in FORMAT first: [Column] & FORMAT([Date], "MM/DD/YYYY").
Need Expert Power BI DAX Development?
EPC Group's Power BI architects design and optimize enterprise DAX models — from CONCATENATE patterns to complex calculated columns and semantic model governance.
Related Resources
Continue exploring power bi insights and services
Why Organizations Choose EPC Group
EPC Group is a Houston-based Microsoft consulting firm with 29 years of enterprise implementation experience and over 10,000 successful deployments across Power BI, Microsoft Fabric, SharePoint, Azure, Microsoft 365, and Copilot. We serve organizations across all industries including Fortune 500, federal agencies, healthcare, financial services, government, manufacturing, energy, education, retail, technology, and global enterprises.
What sets EPC Group apart is our governance-first approach. Every engagement begins with a security and compliance assessment. Our team of senior architects brings hands-on delivery experience across HIPAA, SOC 2, FedRAMP, and CMMC environments. We own outcomes, not hours.
- Fixed-fee accelerators with predictable pricing and defined deliverables
- Senior architect engagement on every project, not rotating juniors
- Compliance-native delivery for regulated industries
- End-to-end coverage from strategy through 24/7 managed services
- 11,000+ enterprise engagements refined into repeatable, risk-controlled patterns
Call (888) 381-9725 or email contact@epcgroup.net for a free assessment.
Power BI Strategy: 2026 Considerations for Power BI Concatenate
Power BI Copilot grounds itself on the semantic model, NOT the underlying source data. That means Copilot answers are only as accurate as the DAX measure definitions, the field metadata (display folders, descriptions, hierarchies), and the synonyms taxonomy. In practice, the difference between a Copilot deployment that drives 32% time-savings and one users abandon within 90 days is whether the semantic model was Copilot-prepared.
Power BI capacity sizing in 2026 starts with the F-SKU economics: F2 ($263/mo) covers small workloads with up to 4 GB of memory and roughly 30 reports, F4 ($526/mo) handles a typical mid-market deployment with semantic-model refresh windows under 10 minutes, and F64 ($5,257/mo) is the sweet spot for enterprises consuming Power BI alongside Microsoft Fabric data engineering, lakehouse storage, and real-time intelligence. Capacity right-sizing should be revisited every 90 days because Microsoft adjusts F-SKU memory allocations, paginated report performance, and Direct Lake mode availability with each major service update.
Decision factors EPC Group evaluates
- Row-level security via service principal authentication
- Capacity sizing decision (F2/F4/F64+) tied to peak concurrent users and refresh window
- Copilot grounding quality assessment of semantic-model metadata
- Direct Lake mode adoption for Fabric-resident semantic models
- License optimization audit (Pro vs Premium Per User vs F-SKU)
For a tailored read on this topic in your specific tenant, contact EPC Group at contact@epcgroup.net or +1 (888) 381-9725. Engagement options at /pricing.