EPC Group - Enterprise Microsoft AI, SharePoint, Power BI, and Azure Consulting
G2 High Performer Summer 2025, Momentum Leader Spring 2025, Leader Winter 2025, Leader Spring 2026
BlogContact
Ready to transform your Microsoft environment?Get started today
(888) 381-9725Get Free Consultation
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌

EPC Group

Enterprise Microsoft consulting with 29 years serving Fortune 500 companies.

(888) 381-9725
contact@epcgroup.net
4900 Woodway Drive, Suite 830
Houston, TX 77056

Follow Us

Solutions

  • All Services
  • Microsoft 365 Consulting
  • AI Governance
  • Azure AI Consulting
  • Cloud Migration
  • Microsoft Copilot
  • Data Governance
  • Microsoft Fabric
  • Dynamics 365
  • Power BI Consulting
  • SharePoint Consulting
  • Microsoft Teams
  • vCIO / vCAIO Services
  • Large-Scale Migrations
  • SharePoint Development

Industries

  • All Industries
  • Healthcare IT
  • Financial Services
  • Government
  • Education
  • Teams vs Slack

Power BI

  • Case Studies
  • 24/7 Emergency Support
  • Dashboard Guide
  • Gateway Setup
  • Premium Features
  • Lookup Functions
  • Power Pivot vs BI
  • Treemaps Guide
  • Dataverse
  • Power BI Consulting

Company

  • About Us
  • Our History
  • Microsoft Gold Partner
  • Case Studies
  • Testimonials
  • Fixed-Fee Accelerators
  • Blog
  • Resources
  • All Guides & Articles
  • Video Library
  • Client Reviews
  • Contact
  • Schedule a consultation

Microsoft Teams

  • Teams Questions
  • Teams Healthcare
  • Task Management
  • PSTN Calling
  • Enable Dial Pad

Azure & SharePoint

  • Azure Databricks
  • Azure DevOps
  • Azure Synapse
  • SharePoint MySites
  • SharePoint ECM
  • SharePoint vs M-Files

Comparisons

  • M365 vs Google
  • Databricks vs Dataproc
  • Dynamics vs SAP
  • Intune vs SCCM
  • Power BI vs MicroStrategy

Legal

  • Sitemap
  • Privacy Policy
  • Terms
  • Cookies

About EPC Group

EPC Group is a Microsoft consulting firm founded in 1997 (originally Enterprise Project Consulting, renamed EPC Group in 2005). 29 years of enterprise Microsoft consulting experience. EPC Group historically held the distinction of being the oldest continuous Microsoft Gold Partner in North America from 2016 until the program's retirement. Because Microsoft officially deprecated the Gold/Silver tiering framework, EPC Group transitioned to the modern Microsoft Solutions Partner ecosystem and currently holds the core Microsoft Solutions Partner designations.

Headquartered at 4900 Woodway Drive, Suite 830, Houston, TX 77056. Public clients include NASA, FBI, Federal Reserve, Pentagon, United Airlines, PepsiCo, Nike, and Northrop Grumman. 6,500+ SharePoint implementations, 1,500+ Power BI deployments, 500+ Microsoft Fabric implementations, 70+ Fortune 500 organizations served, 11,000+ enterprise engagements, 200+ Microsoft Power BI and Microsoft 365 consultants on staff.

About Errin O'Connor

Errin O'Connor is the Founder, CEO, and Chief AI Architect of EPC Group. Microsoft MVP multiple years, first awarded 2003. 4× Microsoft Press bestselling author of Windows SharePoint Services 3.0 Inside Out (MS Press 2007), Microsoft SharePoint Foundation 2010 Inside Out (MS Press 2011), SharePoint 2013 Field Guide (Sams/Pearson 2014), and Microsoft Power BI Dashboards Step by Step (MS Press 2018).

Original SharePoint Beta Team member (Project Tahoe). Original Power BI Beta Team member (Project Crescent). FedRAMP framework contributor. Worked with U.S. CIO Vivek Kundra on the Obama administration's 25-Point Plan to reform federal IT, and with NASA CIO Chris Kemp as Lead Architect on the NASA Nebula Cloud project. Speaker at Microsoft Ignite, SharePoint Conference, KMWorld, and DATAVERSITY.

© 2026 EPC Group. All rights reserved. Microsoft, SharePoint, Power BI, Azure, Microsoft 365, Microsoft Copilot, Microsoft Fabric, and Microsoft Dynamics 365 are trademarks of the Microsoft group of companies.

‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
Power BI Concatenate: Complete Guide to Text Combination in DAX - EPC Group enterprise consulting

Power BI Concatenate: Complete Guide to Text Combination in DAX

Master text concatenation in Power BI using DAX functions including ampersand operator, CONCATENATE, and CONCATENATEX. Includes 15+ real-world examples from Fortune 500 implementations with performance optimization techniques.

HomeBlogPower BI
Back to BlogPower BI

Power BI Concatenate: Complete Guide to Text Combination in DAX

Master text concatenation in Power BI using DAX functions including ampersand operator, CONCATENATE, and CONCATENATEX. Includes 15+ real-world examples from Fortune 500 implementations with performance optimization techniques.

EO
Errin O'Connor
Chief AI Architect & CEO
•
June 18, 2024
•
5 min read
Power BIDAXConcatenateData ModelingPerformance
Power BI Concatenate: Complete Guide to Text Combination in DAX

[Power BI](/power-bi-consulting) Concatenate: Complete Guide to Text Combination in [DAX](/power-bi-dax-formulas-enterprise-reference-guide-2026)

Understanding Concatenation in Power BI

Text concatenation in Power BI involves combining multiple text values into a single string. Whether you're building customer names from first and last name fields, creating custom labels, or merging address components, mastering concatenation is essential for data modeling.

After implementing Power BI across 500+ Fortune 500 engagements, EPC Group has identified the patterns, pitfalls, and performance optimizations that separate amateur implementations from enterprise-grade solutions.

The Three Core Concatenation Methods

Method 1: The Ampersand Operator (&)

The simplest concatenation approach uses the & operator:

Full Name = [First Name] & " " & [Last Name]

When to Use:

  • Simple, static concatenations
  • Two or three fields maximum
  • Performance-critical calculated columns
  • No conditional logic required

Real-World Example from Healthcare Client:

Patient Identifier =
    [Patient Last Name] & ", " &
    [Patient First Name] & " (DOB: " &
    FORMAT([Date of Birth], "MM/DD/YYYY") & ")"

Result: "Smith, John (DOB: 03/15/1975)"

Method 2: CONCATENATE Function

DAX's CONCATENATE function handles two strings:

Full Name = CONCATENATE([First Name], CONCATENATE(" ", [Last Name]))

Limitations:

  • Only two parameters allowed
  • Requires nesting for multiple values
  • Less readable than & operator
  • Same performance characteristics

When to Use: Rarely. The & operator provides better readability.

Method 3: CONCATENATEX (The Enterprise Solution)

CONCATENATEX iterates over tables and concatenates with delimiters:

All Products =
CONCATENATEX(
    Products,
    [Product Name],
    ", ",
    [Product Name],
    ASC
)

Parameters:

  1. Table: The table to iterate over
  2. Expression: The value to concatenate
  3. Delimiter: Text between values (optional)
  4. OrderBy Expression: Sort column (optional)
  5. Order: ASC or DESC (optional)

Performance Considerations:

  • Scans entire table on each evaluation
  • Can cause performance issues with millions of rows
  • Use FILTER carefully to reduce iteration scope
  • Consider pre-aggregating when possible

Advanced Concatenation Patterns

Pattern 1: Handling Blank Values

Problem: Blank values create unwanted spaces or delimiters.

Solution: Use IF or ISBLANK:

Full Address =
VAR Street = [Street Address]
VAR Suite = [Suite Number]
VAR City = [City]
VAR State = [State]
VAR Zip = [Postal Code]
RETURN
    Street &
    IF(NOT(ISBLANK(Suite)), ", " & Suite, "") &
    ", " & City & ", " & State & " " & Zip

Pattern 2: Conditional Concatenation

Use Case: Different formats based on conditions.

Customer Display =
IF(
    [Customer Type] = "Business",
    [Company Name] & " (Contact: " & [Contact Name] & ")",
    [First Name] & " " & [Last Name]
)

Pattern 3: Delimited Lists with CONCATENATEX

Use Case: Show all products in an order.

Order Products =
CONCATENATEX(
    RELATEDTABLE(OrderDetails),
    RELATED(Products[Product Name]) & " (Qty: " & [Quantity] & ")",
    "; ",
    RELATED(Products[Product Name]),
    ASC
)

Result: "Widget A (Qty: 5); Widget B (Qty: 3); Premium Service (Qty: 1)"

Pattern 4: Multi-Column Concatenation with Variables

Best Practice: Use variables for readability and performance:

Enhanced Product Description =
VAR ProductName = [Product Name]
VAR Category = RELATED(Categories[Category Name])
VAR Supplier = RELATED(Suppliers[Company Name])
VAR Price = FORMAT([Unit Price], "$#,##0.00")
VAR Stock = [Units In Stock]
RETURN
    ProductName & " | " &
    Category & " | " &
    "Supplier: " & Supplier & " | " &
    "Price: " & Price & " | " &
    "Stock: " & Stock

Performance Optimization Strategies

Strategy 1: Calculated Column vs. Measure

Calculated Columns:

  • Computed during data refresh
  • Stored in the model
  • Increases model size
  • Fast query performance

Measures:

  • Computed at query time
  • Don't increase model size
  • Performance varies by context
  • More flexible

Recommendation: Use calculated columns for frequently-used concatenations displayed in tables/slicers. Use measures for dynamic, context-dependent concatenations.

Strategy 2: Pre-Concatenate in Power Query

Better Performance:

Power Query (M):

#"Added Full Name" = Table.AddColumn(
    #"Previous Step",
    "Full Name",
    each [First Name] & " " & [Last Name],
    type text
)

Advantages:

  • Concatenation happens during refresh, not query time
  • Results are compressed in columnar storage
  • No DAX evaluation overhead
  • Easier to debug and maintain

Use When: The concatenation logic is static and doesn't require runtime context.

Strategy 3: Minimize CONCATENATEX Scope

Problem: CONCATENATEX over large tables kills performance.

Bad:

All Customer Products =
CONCATENATEX(
    FILTER(
        ALL(Sales),
        [Customer ID] = EARLIER([Customer ID])
    ),
    RELATED(Products[Product Name]),
    ", "
)

Better:

All Customer Products =
CONCATENATEX(
    RELATEDTABLE(Sales),
    RELATED(Products[Product Name]),
    ", "
)

Performance Improvement: 10-100x faster by using RELATEDTABLE instead of FILTER(ALL()).

Real-World Use Cases

Use Case 1: Financial Services Dashboard

Requirement: Display transaction descriptions with account, date, and amount.

Transaction Summary =
VAR AccountNum = FORMAT([Account Number], "0000")
VAR TranDate = FORMAT([Transaction Date], "MM/DD/YYYY")
VAR Amount = FORMAT([Amount], "$#,##0.00")
VAR Type = [Transaction Type]
RETURN
    "Acct " & AccountNum & " | " &
    TranDate & " | " &
    Type & " | " &
    Amount

Use Case 2: Healthcare Patient Records

Requirement: HIPAA-compliant patient identifiers without PHI.

Patient Identifier =
VAR LastInitial = LEFT([Last Name], 1)
VAR FirstInitial = LEFT([First Name], 1)
VAR DOBYear = YEAR([Date of Birth])
VAR MRNLast4 = RIGHT([Medical Record Number], 4)
RETURN
    LastInitial & FirstInitial & "-" & DOBYear & "-" & MRNLast4

Result: "JS-1975-8432" (de-identified for reports)

Use Case 3: Manufacturing Part Numbers

Requirement: Generate SKUs from category, size, color.

SKU =
    LEFT([Category Code], 3) & "-" &
    [Size Code] & "-" &
    [Color Code] & "-" &
    FORMAT([Product ID], "0000")

Common Errors and Solutions

Error 1: "Cannot convert value to text"

Cause: Attempting to concatenate non-text types.

Solution: Use FORMAT or TEXT:

Description = [Product Name] & " - Qty: " & FORMAT([Quantity], "0")

Error 2: "The expression contains multiple columns"

Cause: CONCATENATEX expression returns multiple columns.

Solution: Explicitly reference single column:

// Wrong
CONCATENATEX(Products, Products, ", ")

// Right
CONCATENATEX(Products, Products[Product Name], ", ")

Error 3: Circular Dependency

Cause: Calculated column references itself through relationships.

Solution: Use variables or restructure dependencies:

Full Name =
VAR FirstName = [First Name]
VAR LastName = [Last Name]
RETURN FirstName & " " & LastName

Best Practices from 500+ Implementations

  1. Use Variables: Improve readability and debugging
  2. Handle Blanks: Always check for BLANK() values
  3. Format Numbers: Use FORMAT for consistent output
  4. Optimize Scope: Minimize CONCATENATEX iterations
  5. Power Query First: Pre-concatenate when logic is static
  6. Test Performance: Use DAX Studio to measure query times
  7. Document Complex Logic: Add comments for maintenance
  8. Consider Model Size: Calculated columns increase storage
  9. Use Delimiters Wisely: Make output easily parseable
  10. Plan for Scale: Test with production data volumes

Conclusion

Text concatenation in Power BI ranges from simple & operators to complex CONCATENATEX iterations. The key to enterprise-grade implementations is choosing the right approach for your use case:

  • Simple, static: Use & in calculated columns
  • Dynamic, aggregated: Use CONCATENATEX measures
  • Performance-critical: Pre-concatenate in Power Query
  • Complex conditional: Use variables and IF statements

After 6,500+ Power BI projects, EPC Group has learned that the difference between a working solution and an enterprise solution lies in these optimization patterns.

Frequently Asked Questions

What is the difference between CONCATENATE and the ampersand (&) operator?

Functionally identical for two values. CONCATENATE() only accepts two parameters, requiring nested calls for more values. The ampersand operator chains unlimited values directly (A & B & C). Use & for readability; use CONCATENATE only when compatibility with older DAX versions is required.

How do I concatenate values from multiple rows in Power BI?

Use CONCATENATEX with a table and delimiter. Example: CONCATENATEX(Products, Products[Name], ", ") combines all product names with comma separation. Always filter the table first to avoid concatenating millions of rows, which causes performance issues.

Why does my concatenation return BLANK instead of text?

Any BLANK value in a concatenation returns BLANK for the entire result. Wrap each component with IF(ISBLANK(), "", value) or use COALESCE() in newer DAX versions. Example: COALESCE([FirstName], "") & " " & COALESCE([LastName], "").

Should I use calculated columns or measures for concatenation?

Use calculated columns when the concatenation is static and row-based (full name from first+last). Use measures when concatenation depends on filter context or aggregates multiple rows (product list for selected category). Calculated columns increase model size but evaluate once during refresh.

How do I improve CONCATENATEX performance on large tables?

Filter the table before concatenation using CALCULATETABLE or FILTER. Avoid CONCATENATEX on tables exceeding 10,000 rows. Consider pre-concatenating in Power Query during data refresh for static aggregations. Use variables to prevent multiple table scans.


Need help optimizing your Power BI data model for performance at scale? EPC Group specializes in enterprise Power BI implementations for Fortune 500 companies. Contact us for a technical assessment.

Share this article:
EO

Errin O'Connor

Chief AI Architect & CEO

29 years Microsoft consulting experience, bestselling Microsoft Press author

View Full Profile

Related Articles

Power BI

Power BI May 2026 Update: Visual Calculations GA, Exploration Perspective, and Copilot Summarize — Enterprise Implementation Guide

Power BI May 2026 enterprise rollout: Visual Calculations GA, Exploration Perspective, Copilot Summarize. Governance patterns, migration plan, semantic model impact.

Power BI

Power BI Embedded vs Fabric Embedded 2026: ISV + Internal Embedded Analytics Decision Framework

Power BI Embedded vs Fabric Embedded 2026 decision framework: pricing, capacity, multi-tenancy, security, ISV vs internal scenarios for enterprise embedded analytics.

Power BI

Power BI Performance Engineering: Sub-Second Dashboards for Fortune 500 Enterprises

Power BI Performance Engineering playbook: VertiPaq tuning, DAX optimization, aggregations, partitioning, capacity sizing for Fortune 500 sub-second enterprise dashboards.

Need Help with Power BI?

Our team of experts can help you implement enterprise-grade power bi solutions tailored to your organization's needs.

Power BI Consulting ServicesSchedule a Consultation