#26 — Get Two Numbers from Each of The Two Sets of Numbers and Let Them Equal A Specified Value
Problem description & analysis:
We have two rows of numbers:
A | B | C | D | E | F | G | |
1 | 4211140 | 4209106 | 4209974 | 4211320 | 4208228 | 4210873 | 4211439 |
2 | 8859990 | 8903354 | 8900184 | 8901922 | 8900052 | 8903899 |
Get two numbers from each row (the two numbers can be the same) and make the sum of the four numbers the fixed value 26216692; put the two numbers obtained from row 1 in column A and column B, and the ones obtained from row 2 in column C and column D, as shown below:
A | B | C | D | |
4 | 4208228 | 4208228 | 8900184 | 8900052 |
Solution:
Use SPL XLL to get this done:
=spl("=g1=E@1(?1),g2=E@1(?2),E@b(xjoin(g1;g1;g2;g2).select(#1+#2+#3+#4==26216692 && #1>=#2 && #3>=#4))",A1:G1,A2:F2)
As shown in the picture below:
Explanation:
xjoin function performs cross product. E@1 converts a multilayer sequence to a single-layer one. E@b removes titles, and #1 represents the 1st column of the table.
Want to learn more about the potential of SPL XLL? Here's the information you may need:
SPL download address: esProc Desktop Download
Plugin Installation Method: SPL XLL Installation and Configuration
References to other rich Excel operation cases: Desktop and Excel Data Processing Cases
SPL Programming (YouTube FREE courses): https://www.youtube.com/playlist?list=PLQeR-IhHo7qNCw6o7PW8YfHvRx8pgzZso