Removing duplicates when using TEXTJOIN

Occasional Contributor


I am using TEXTJOIN to being into one cell entries from a separate column, where I am ignoring empty cells and separately by &.

This works fine.

However, I can have duplicate values in an individual cell in the column I am using in my TEXTJOIN and I'd like to be able to supress duplicates.

For example:


Column F on Worksheet 1 has the following in the 6 cells:

  • 123, 890, 22
  • 560
  • 123, 890, 22
  • 22
  • test
  • test

Ideally what I would like in my single cell is:

123, 890, 22 & 560 & test

But I realise that is probably unrealistic.


So I'd like to be able to get to (e.g. hiding the cell that exactly matches the other):

123, 890, 22 & 560 & 22 & test


The function I am using is:

=TEXTJOIN(" & ",TRUE,'1'!$F$10:$F$606)


This returns:

123, 890, 22 & 560 & 123, 890, 22 & 22 & test & test


I have looked into combining this function with 'MATCH' but it hasn't worked, I get value errors.  I assume maybe because I have a mix of numerics and characters?


Many thanks



15 Replies
best response confirmed by Kirsty Lowe (Occasional Contributor)



I got the below formula for you thanks to this amazing video!

=TEXTJOIN(" & ",TRUE,IF(MATCH(A1:A6,A1:A6,0)=ROW(A1:A6)-ROW(A1)+1,A1:A6,""))

Please find it in the attached file.



@Haytham Amairah

I was thinking of the same video. :-)


Hi Haytham,


Thank you for your response.


However, I get a VALUE error in Excel:

=TEXTJOIN(" & ",TRUE,IF(MATCH('1'!$F$10:$F$606,0)=ROW('1'!$F$10:$F$606)-ROW('1'!$F$10)+1,'1'!$F$10:$F$606,""))

Is what I translated your formula in to.


Thank you both.


I'll check the video out.

I have also tried by watching the video and placing the formula into my sheet so I didn't have to reference a different worksheet, and it still fails to evaluate the data.
=TEXTJOIN(", ",,IF(MATCH(F10:F50,F10:F50,0)=(ROW(F10:F50)-ROW(F9)),F10:F50,""))

So sorry I got there in the end, with help from @Haytham Amairah

I went back to the video you linked and used the following formula, remembering to use Ctrl+Shift+Enter to apply it, and this time it worked :)

{=TEXTJOIN(", ",,IF(F10:F50<>"",IF(MATCH(F10:F50,F10:F50,0)=(ROW(F10:F50)-ROW(F9)),F10:F50,""),""))}

Thank you!


@Kirsty Lowe I did this and attached screenshot (Excel 2016):



Hope it helps!


As variant



@Sergei Baklan thanks for sharing, unfortunately I cannot use this one as my Excel 2016 must be older version that does not contain ARRAYTOTEXT

@leo_bourikov Thanks it helped


Just want to say thanks. This post helped me today with the same issue!
you just might want to use this formula: =TEXTJOIN(" & ",TRUE,UNIQUE(F:F,FALSE,FALSE))

This is a great answer if using a one the the more modern Excel versions. FILTER(), UNIQUE() and ARRAYTOTEXT() used in a clear, no-nonsense way.

THIS!!! Simple, effective, winning!



To improve performance using entire column I'd modify as