Search code examples
excelvbaexcel-formula

Combine Email addresses based on Cell Value (group addresses associated with a company on one line)


I am trying to concatenate all the email addresses associated with a company on one line.

I tried TEXTJOIN.
I am also open to VBA solutions.

Excel Workbook


Compnay Name Billing Account Number Sales Account Number Email Address Output
Blue Bonet 1 1ABC [email protected] [email protected]; [email protected]
Blue Bonet 1 1ABC [email protected]
Disney 2 2ABC [email protected] [email protected]; [email protected]; [email protected]; [email protected]
Disney 2 2ABC [email protected]
Disney 2 2ABC [email protected]
Disney 2 2ABC [email protected]
Berkshire 3 3ABC [email protected] [email protected]
Mia's Pizza 4 4ABC [email protected] [email protected]; [email protected]; [email protected]
Mia's Pizza 4 4ABC [email protected]
Mia's Pizza 4 4ABC [email protected]
Jerry's Barber Sho 5 5ABC [email protected] [email protected]
Tom's Dinner 6 6ABC [email protected] [email protected]; [email protected]; Norwood.O'[email protected]
Tom's Dinner 6 6ABC [email protected]
Tom's Dinner 6 6ABC Norwood.O'[email protected]
Gilberts 7 7ABC [email protected] [email protected]; [email protected]; [email protected]; [email protected]
Gilberts 7 7ABC [email protected]
Gilberts 7 7ABC [email protected]
Gilberts 7 7ABC [email protected]

Solution

  • Here is one way of doing this using MAP()

    enter image description here


    =MAP(A2:A19,LAMBDA(α,IF(ROW(α)=XMATCH(α,A:A),TEXTJOIN("; ",,FILTER(D:D,A:A=α)),"")))
    

    The above formula will spill down, however if you want to drag down a formula then:

    =TEXTJOIN("; ",,FILTER($D$2:$D$19,(A2=$A$2:$A$19)*(COUNTIF(A$2:A2,A2)=1),""))