GeertD
Board Regular
- Joined
- Dec 22, 2020
- Messages
- 60
- Office Version
- 365
- Platform
- Windows
VYPER – vector extrusion through cyclic permutations. Extrudes a given Vector by means of all cyclic permutations (the cyclic sequence is invariant).
Excel Formula:
=LAMBDA(InputVector,LET(
riv,ROWS(InputVector),civ,COLUMNS(InputVector),
IF((riv>1)*(civ>1),"The input needs to be a 1D-vector.",LET(
RowVector,IF(riv=1,InputVector,TRANSPOSE(InputVector)), Cols,COLUMNS(RowVector),
DColdex,MOD(SEQUENCE(,2*Cols,0),Cols)+1,
Rowdex0,SEQUENCE(Cols,,0),
CyclicColdex,INDEX(DColdex,,SEQUENCE(,Cols)+Cols-Rowdex0),
Result,INDEX(RowVector,,CyclicColdex),
IF(riv=1,Result,TRANSPOSE(Result))
))))
VYPER_VectorExtrusionThroughCyclicPermutions.xlsx | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | |||
1 | Input: | Output: | Manual Control: | ||||||||||||||||||||||||||||||||
2 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | |||||
3 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | |||||||||||||||
4 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | |||||||||||||||
5 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | |||||||||||||||
6 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | |||||||||||||||
7 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | |||||||||||||||
8 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | |||||||||||||||
9 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | |||||||||||||||
10 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | |||||||||||||||
11 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | 3 | 4 | 2 | 8 | 10 | 1 | 5 | 7 | 9 | 6 | |||||||||||||||
12 | |||||||||||||||||||||||||||||||||||
13 | Input: | Output: | |||||||||||||||||||||||||||||||||
14 | 5 | 5 | 6 | 3 | 1 | 9 | 8 | 7 | 2 | 4 | 10 | ||||||||||||||||||||||||
15 | 10 | 10 | 5 | 6 | 3 | 1 | 9 | 8 | 7 | 2 | 4 | ||||||||||||||||||||||||
16 | 4 | 4 | 10 | 5 | 6 | 3 | 1 | 9 | 8 | 7 | 2 | ||||||||||||||||||||||||
17 | 2 | 2 | 4 | 10 | 5 | 6 | 3 | 1 | 9 | 8 | 7 | ||||||||||||||||||||||||
18 | 7 | 7 | 2 | 4 | 10 | 5 | 6 | 3 | 1 | 9 | 8 | ||||||||||||||||||||||||
19 | 8 | 8 | 7 | 2 | 4 | 10 | 5 | 6 | 3 | 1 | 9 | ||||||||||||||||||||||||
20 | 9 | 9 | 8 | 7 | 2 | 4 | 10 | 5 | 6 | 3 | 1 | ||||||||||||||||||||||||
21 | 1 | 1 | 9 | 8 | 7 | 2 | 4 | 10 | 5 | 6 | 3 | ||||||||||||||||||||||||
22 | 3 | 3 | 1 | 9 | 8 | 7 | 2 | 4 | 10 | 5 | 6 | ||||||||||||||||||||||||
23 | 6 | 6 | 3 | 1 | 9 | 8 | 7 | 2 | 4 | 10 | 5 | ||||||||||||||||||||||||
24 | |||||||||||||||||||||||||||||||||||
25 | Input: | Output: | |||||||||||||||||||||||||||||||||
26 | 3 | 13 | The input needs to be a 1D-vector. | ||||||||||||||||||||||||||||||||
27 | 5 | 15 | |||||||||||||||||||||||||||||||||
28 | 1 | 11 | |||||||||||||||||||||||||||||||||
29 | 6 | 16 | |||||||||||||||||||||||||||||||||
30 | 7 | 17 | |||||||||||||||||||||||||||||||||
31 | 9 | 19 | |||||||||||||||||||||||||||||||||
32 | 2 | 12 | |||||||||||||||||||||||||||||||||
33 | 4 | 14 | |||||||||||||||||||||||||||||||||
34 | 8 | 18 | |||||||||||||||||||||||||||||||||
35 | 10 | 20 | |||||||||||||||||||||||||||||||||
36 | |||||||||||||||||||||||||||||||||||
VYPER |
Cell Formulas | ||
---|---|---|
Range | Formula | |
A2:J2 | A2 | =SORTBY(SEQUENCE(,10),RANDARRAY(,10,1,10,TRUE)) |
L2:U11,L26,L14:U23 | L2 | =LAMBDA(InputVector,LET( riv,ROWS(InputVector),civ,COLUMNS(InputVector), IF((riv>1)*(civ>1),"The input needs to be a 1D-vector.",LET( RowVector,IF(riv=1,InputVector,TRANSPOSE(InputVector)), Cols,COLUMNS(RowVector), DColdex,MOD(SEQUENCE(,2*Cols,0),Cols)+1, Rowdex0,SEQUENCE(Cols,,0), CyclicColdex,INDEX(DColdex,,SEQUENCE(,Cols)+Cols-Rowdex0), Result,INDEX(RowVector,,CyclicColdex), IF(riv=1,Result,TRANSPOSE(Result)) ))))(A2#) |
W2:AF2 | W2 | =A2:J2 |
W3 | W3 | =AF2 |
X3:AF11 | X3 | =W2 |
W4 | W4 | =AE2 |
W5 | W5 | =AD2 |
W6 | W6 | =AC2 |
W7 | W7 | =AB2 |
W8 | W8 | =AA2 |
W9 | W9 | =Z2 |
W10 | W10 | =Y2 |
W11 | W11 | =X2 |
A14:A23 | A14 | =TRANSPOSE(SORTBY(SEQUENCE(,10),RANDARRAY(,10,1,10,TRUE))) |
A26:B35 | A26 | =TRANSPOSE(SORTBY(SEQUENCE(2,10),RANDARRAY(,10,1,10,TRUE))) |
Dynamic array formulas. |
Cells with Conditional Formatting | ||||
---|---|---|---|---|
Cell | Condition | Cell Format | Stop If True | |
L27:U35 | Other Type | Color scale | NO | |
A26:J35 | Other Type | Color scale | NO | |
L15:U23,M14:U14 | Other Type | Color scale | NO | |
A14:J23 | Other Type | Color scale | NO | |
L2:U11,L14 | Other Type | Color scale | NO | |
W2:AF11 | Other Type | Color scale | NO | |
A2:J11 | Other Type | Color scale | NO |
Upvote
0