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
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
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)
As shown in the picture below:
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.
Top comments (1)
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