Forum Discussion
Extract different player names referring to an identical text string into separate columns.
- Dec 02, 2019
Let transform identifiers such way
i.e. <space><identifier><space><sequential number of identifier>
When formula in D2 could be
=IFERROR(MID($B2, SEARCH( REPT("@",LEN(LEFT(D$1,LEN(D$1)-1))), SUBSTITUTE( " " & $B2, LEFT(D$1,LEN(D$1)-1), REPT("@",LEN(LEFT(D$1,LEN(D$1)-1))), RIGHT(D$1)) ) + LEN(D$1)-2, IFERROR( AGGREGATE(15,6, 1/( SEARCH( REPT("@",LEN(LEFT($D$1:$L$1,LEN($D$1:$L$1)-1))), SUBSTITUTE( " " & $B2, LEFT($D$1:$L$1,LEN($D$1:$L$1)-1), REPT("@",LEN(LEFT($D$1:$L$1,LEN($D$1:$L$1)-1))), RIGHT($D$1:$L$1) ) )-1 > SEARCH( REPT("@",LEN(LEFT(D$1,LEN(D$1)-1))), SUBSTITUTE( " " & $B2, LEFT(D$1,LEN(D$1)-1), REPT("@",LEN(LEFT(D$1,LEN(D$1)-1))), RIGHT(D$1) ) ) )* SEARCH( REPT("@",LEN(LEFT($D$1:$L$1,LEN($D$1:$L$1)-1))), SUBSTITUTE( " " & $B2, LEFT($D$1:$L$1,LEN($D$1:$L$1)-1), REPT("@",LEN(LEFT($D$1:$L$1,LEN($D$1:$L$1)-1))), RIGHT($D$1:$L$1) ) ),1 ), LEN($B2)+1 ) - SEARCH( REPT("@",LEN(LEFT(D$1,LEN(D$1)-1))), SUBSTITUTE( " " & $B2, LEFT(D$1,LEN(D$1)-1), REPT("@",LEN(LEFT(D$1,LEN(D$1)-1))), RIGHT(D$1) ) ) - LEN(D$1)+1 ),"")when drag to the right and down (or better use Ctrl+D).
Perhaps formula could be optimized, but it will take time to play with it and find another way if any. Right now it takes few minutes to fill couple hundred thousand rows. Thus better to test on few ones.
That is in second sheet of the attached file.
UPDATE: I failed to upload the file, will try once more tomorrow.
My previous file was more than 75MB which is limit for the this site.
I updated a bit with helper ranges
Performance is a bit better, but not significantly.
=IFERROR(MID($B2,
SEARCH( N$4,
SUBSTITUTE( " " & $B2,N$2,N$4,N$3)
) + N$5-2,
IFERROR(
AGGREGATE(15,6,
1/( SEARCH( $N$4:$V$4,
SUBSTITUTE( " " & $B2,$N$2:$V$2,$N$4:$V$4,$N$3:$V$3
)
)-1 >
SEARCH( N$4,
SUBSTITUTE( " " & $B2,N$2,N$4,N$3)
) )*
SEARCH( $N$4:$V$4,
SUBSTITUTE( " " & $B2,$N$2:$V$2,$N$4:$V$4,$N$3:$V$3
)
),1
),
LEN($B2)+1
) -
SEARCH( N$4,
SUBSTITUTE( " " & $B2,N$2,N$4,N$3)
) - N$5+1
),"")
SergeiBaklan
I think I figured it out.
I changed
LEN($B2)+1
To
LEN($B2)+2
And it works now. Do you think this is the best change that could be made?
- SergeiBaklanDec 05, 2019Diamond Contributor
If I don't answer in relatively short while many chance I will lose the conversation and never answer.
As for the file you changed the formula correctly.
- stevecccDec 05, 2019Brass ContributorHi Sergei, thanks. Just the fact you helped me one time is awesome. I don't expect people to respond to my questions quickly or even at all. When they do, it's just an amazing bonus.
- SergeiBaklanDec 04, 2019Diamond Contributor
Hi,
If that is IFERROR(...aggregate..., LEN($B2)+1) it shall be here. Sorry, I'm between meetings now, have no time to check the file. Most probably you are right, only here to change on LEN($B2)+2