DEV Community

Cover image for Split Each Cell Value And Expand It According To The Specified Rule
Judith-Excel-Sharing
Judith-Excel-Sharing

Posted on

Split Each Cell Value And Expand It According To The Specified Rule

Problem description & analysis:

The following table records someone’s answers to a set of questions:

original table

An answer generally consists of options separated by a semicolon. If it is a string “All of the Above”, it has all options under the same question number in dictionary table Sheet2.

    A   B
1   1   A
2   1   b
3   1   c
4   1   d
5   2   a
6   2   b
7   2   c
8   2   d
9   3   a
10  3   b
11  3   c
12  3   d
13  4   a
14  4   b
15  4   c
16  4   d
17  4   e
Enter fullscreen mode Exit fullscreen mode

We need to split each answer into individual options, as shown below:

    A   B
1   Question    What I want
2   1   A
3   1   b
4   1   c
5   1   d
6   2   A
7   2   B
8   2   C
9   3   B
10  3   C
11  4   a
12  4   b
13  4   c
14  4   d
15  4   e
Enter fullscreen mode Exit fullscreen mode

Solution:

Use SPL XLL to enter the following formula:

=spl("=dt=?1,dc=?2,E@b(dt.news(if(~(2)==$[All of the Above],dc.select(~(1)==dt.~(1)).(~(2)), ~(2).split($[;]));dt.~(1),~))",D2:E5,Sheet2!A2:Sheet2!B18)
Enter fullscreen mode Exit fullscreen mode

As shown in the picture below:

Explanation:

E@b converts an Excel table to a sequence. ~(1) represents the 1st child member of the current member in a sequence; $[] represents a string.

Top comments (2)

Collapse
 
judith677 profile image
Judith-Excel-Sharing

For more related SPL XLL information:

SPL download address: scudata.com/download-Desktop

Plugin Installation Method: c.scudata.com/article/1652061135502

References to other rich Excel operation cases: c.raqsoft.com/article/1651916536524

SPL Programming (YouTube FREE courses): youtube.com/playlist?list=PLQeR-Ih...

Collapse
 
raajaryan profile image
Deepak Kumar

Hello everyone,

I hope you're all doing well. I recently launched an open-source project called the Ultimate JavaScript Project, and I'd love your support. Please check it out and give it a star on GitHub: Ultimate JavaScript Project. Your support would mean a lot to me and greatly help in the project's growth.

Thank you!