DEV Community

Cover image for In Excel, Insert Group Headers to Detail Data Rows in Each Group
Judith-Data-Processing-Hacks
Judith-Data-Processing-Hacks

Posted on

2 1 1 1 1

In Excel, Insert Group Headers to Detail Data Rows in Each Group

Problem description & analysis

The Excel worksheet below contains multiple vertical subtable groups, which are separated by a blank row. In each group, the 2nd cells of both row 1 and row 2 contain subtable group headers and row 3 contains column headers; there isn’t detailed data in either the 1st column or the 6th column:

A   B   C   D   E   F
1       ATLANTIC SPIRIT             
2       Looe                
3   Vessel  Species Size    Kg  Date    Location
4       POLLACK 2   2.5 23/04/2024  
5       POLLACK 3   18.8    23/04/2024  
6       POLLACK 41  5.4 23/04/2024  
7       LING    3   1.9 23/04/2024  
8       WHITING 2   0.4 23/04/2024  
9                       
10      BEADY EYE               
11      Plymouth                
12  Vessel  Species Size    Kg  Date    Location
13      BASS    4   15.7    23/04/2024  
14      BASS    5   3.2 23/04/2024  
15                      
16      BOY JACK                
17      Plymouth                
18  Vessel  Species Size    Kg  Date    Location
19      PLAICE  1   0.8 23/04/2024  
20      BLONDE RAY  1   14.3    23/04/2024  
21      BLONDE RAY  3   1.6 23/04/2024  
22      SPOTTED RAY 5   1.2 23/04/2024  
23      THORNBACK RAY   1   6.3 23/04/2024  
24      THORNBACK RAY   2   15.7    23/04/2024  
25      THORNBACK RAY   3   10.9    23/04/2024  
26      THORNBACK RAY   4   2.6 23/04/2024  
27      LOBSTER 1   2.7 23/04/2024  
28      LOBSTER 2   1.1 23/04/2024  
29      RAY BACKS   1   42.1    23/04/2024  
Enter fullscreen mode Exit fullscreen mode

We need to insert the subtable group headers in row 1 and row 2 of each group into the 1st column and the 6th column respectively:

A   B   C   D   E   F
1       ATLANTIC SPIRIT             
2       Looe                
3   Vessel  Species Size    Kg  Date    Location
4   ATLANTIC SPIRIT POLLACK 2   2.5 23/04/2024  Looe
5   ATLANTIC SPIRIT POLLACK 3   18.8    23/04/2024  Looe
6   ATLANTIC SPIRIT POLLACK 41  5.4 23/04/2024  Looe
7   ATLANTIC SPIRIT LING    3   1.9 23/04/2024  Looe
8   ATLANTIC SPIRIT WHITING 2   0.4 23/04/2024  Looe
9                       
10      BEADY EYE               
11      Plymouth                
12  Vessel  Species Size    Kg  Date    Location
13  BEADY EYE   BASS    4   15.7    23/04/2024  Plymouth
14  BEADY EYE   BASS    5   3.2 23/04/2024  Plymouth
15                      
16      BOY JACK                
17      Plymouth                
18  Vessel  Species Size    Kg  Date    Location
19  BOY JACK    PLAICE  1   0.8 23/04/2024  Plymouth
20  BOY JACK    BLONDE RAY  1   14.3    23/04/2024  Plymouth
21  BOY JACK    BLONDE RAY  3   1.6 23/04/2024  Plymouth
22  BOY JACK    SPOTTED RAY 5   1.2 23/04/2024  Plymouth
23  BOY JACK    THORNBACK RAY   1   6.3 23/04/2024  Plymouth
24  BOY JACK    THORNBACK RAY   2   15.7    23/04/2024  Plymouth
25  BOY JACK    THORNBACK RAY   3   10.9    23/04/2024  Plymouth
26  BOY JACK    THORNBACK RAY   4   2.6 23/04/2024  Plymouth
27  BOY JACK    LOBSTER 1   2.7 23/04/2024  Plymouth
28  BOY JACK    LOBSTER 2   1.1 23/04/2024  Plymouth
29  BOY JACK    RAY BACKS   1   42.1    23/04/2024  Plymouth
Enter fullscreen mode Exit fullscreen mode

Solution:

Use SPL XLL to enter the formula below:

=spl("=t=?.group@i(!~.ifn()),k=1,t.run(t1=~(k)(2),t6=~(k+1)(2),~.m(3+k:).run(~(1)=t1,~(6)=t6),k=2),t.conj()",A1:F29)
Enter fullscreen mode Exit fullscreen mode

As shown in the picture below:

Table with SPL code entered
Explanation:

group@i()function groups rows according to the specified condition; ifn() function returns the first non-null member; ~ represents is the current member and ~(6) represents the 6th member on the current member’s subordinate level; and m(i:) gets members from the ith to the last one.

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

Top comments (1)

Collapse
 
judith677 profile image
Judith-Data-Processing-Hacks

What do you guys think of this solution provided by SPL XLL? Please feel free to share any comments or opinions👀. You can also click this link to try SPL XLL by yourself! 👉🏻scudata.com/download-Desktop

Eliminate Context Switching and Maximize Productivity

Pieces.app

Pieces Copilot is your personalized workflow assistant, working alongside your favorite apps. Ask questions about entire repositories, generate contextualized code, save and reuse useful snippets, and streamline your development process.

Learn more