UNIX compare, sort lines and append difference

To make it easier, i gave following example. It is not homework or classwork. Instead, i have a huge csv file dump from tsql with 15 columns and around 300 rows. I was able to extract content that needs to be really converted. Here is the extract:

ES FP,B1ES FP,70000,I,SL22,SL22 (70000)
ES FP,B2ES FP,80000,I,XX22,XX22 (80000)
VIL SJ,B1VIL SJ,20000,I,SL22,SL22 (20000)
VIL SJ,B2VIL SJ,20000,I,XX22,XX22 (20000)
VIL SJ,S3VIL SJ,25040222,N,SL22,SL22 (25040222)
VIL SJ,S4VIL SJ,25040222,N,XX22,XX22 (25040222)
MING NO,B1MING NO,240000,I,SL22,SL22 (240000)
MING NO,B2MING NO,240000,I,XX22,XX22 (240000)
BCHN SE,B1BCHN SE,20000,I,SL22,SL22 (20000)
BCHN SE,B2BCHN SE,20000,I,XX22,XX22 (20000)

desire result should be:

ES FP,I,SL22 (70000)|XX22 (80000)
VIL SJ,I,SL22 (20000)|,XX22 (20000)
VIL SJ,N,SL22 (25040222)|XX22 (25040222)
MING NO,I,SL22 (240000)|XX22 (240000)
BCHN SE,I,SL22 (20000)|XX22 (20000)

based on sorting of field f4.

to make it simple, I created two files using grep for I and N but don't know how to append the third column if f1,f2 are same using comma as delim.

=========================

UNIX compare, sort lines and append difference
Hi,

I have a file that needs to be converted:

content is:

a, b, 4
a ,b, 5
x, y, 1
a, b, 1
x, y, 3

how can i get:

a, b, 1|4|5

x,y 1|3