Q:

Excel Concatenate Cells while adding characters and skipping Empty cells

I am not a programmer, but doing Excel work for a small library. We have these fields in an excel sheet:
John  | J   | Smith | BMI   | 123 | 100 |
Sarah |  P  | Crown | ASCAP | 564 | 100 |
Tommy |  T  | Stew  | BMI   | 134 | 100 |
Suzy  | S   | Smith | BMI   | 678 | 50  | 
John  | J   | Smith | BMI   | 123 | 50

What I would like to be able to combine any of the cells (in the same row)into one cell that would read like this:
John J Smith, (BMI), 100%, IPI 123  

or
Suzy S Smith, (BMI), 50%, IPI 678  | John J Smith (BMI), 50% IPI 123

I figured out how to use the Concatenate function to do this, but it doesn't skip empty cells, and I get extra "|" or "()" in those spots. I also found the =StringConCat topic, and that works great for skipping, but I can't figure out how to add the extra characters. 
Any help would be most appreciated.
Thank you!!
EDIT: Thanks for the quick responses so far. I should be more clear - 

the pipes in my example were only to designate different cells - they are not actual characters in the cells (thanks for converting it to a table for me, Bruce). The only Pipe character I would like to use is in the results, as in my example between Suzy and John. 
There will rarely be more than 2 entries on the same result line, but it is possible. Mostly it will be to composers that are sharing the credit. But there is a chance that they will work on a Public Domain song and I have to list "Traditional" or maybe "Mozart" as another composer.

Sorry that I don't know enough to ask my question as intelligently as I should. Just learning how to do this, and trying to figure it out as I go.
Thanks again!

A:

For the extra spaces, use substitute to get rid of empties.
So, if your code is =concatenate(A1,B1,C1) and your 'empty spaces' are "| " then edit your formula to become =substitute(concatenate(A1,B1,C1),"| ","")
You can even stack the substitutes to add more possible 'empties', like "  " (two spaces) or the like. =substitute(substitute(concatenate(A1,B1,C1),"| ",""),"  ","")

