为了了解信息,我问了www.clever-excel-forum.de和www.ms-office-forum.net/.我想实现以下目标:
A1 A2 A3 A4 -> row 1
1 1 1 45
2 30
3 30
1 1 4 45
5 30
...
1 1 254 45
1 30
2 30
1 2 3 45
...
1 254 254 45
1 30
2 30
2 1 3 45
...
3 189 12 45 -> up to approx row 250540
A2 应该从第 2 行开始每三行设置一个 1,直到 A3 中第一次达到 254。然后,对于下一个设置(在 A3 中达到 254 之后),必须将 1 递增并跳转到 2(A2)。如果 A2 中的 254 达到,则必须跳回 1,而 A1 中的 1 跳转到 2。
到目前为止一切顺利(来自 ms-office-forum 的用户:lupo1):
A1: =LET(n;250000;WAHL(SEQUENZ(;4);
WENN(REST(SEQUENZ(n);3)=1;KÜRZEN(SEQUENZ(n;;0;1/254^2)+1);"");
WENN(REST(SEQUENZ(n);3)=1;KÜRZEN(SEQUENZ(n;;0;1/254^1)+1);"");
REST(SEQUENZ(n;;0);254)+1;
INDEX({45.30.30};REST(SEQUENZ(n)-1;3)+1)))
WENN = IF,
REST = MOD,
SEQUENZ = SEQUENCE,
KÜRZEN = TRUNC,
有一件事还没有起作用:A2 列的计数超过 254,但在 254 之后应该始终跳回 1。
问题:
答案1
解决方案:https://www.excelforum.com/excel-programming-vba-macros/1334728-selective-counting-up-in-excel.html
=LET(n,800000,CHOOSE(SEQUENCE(,4),
IF(MOD(SEQUENCE(n),3)=1,1+TRUNC(SEQUENCE(n,,0,1/254^2)),""),
IF(MOD(SEQUENCE(n),3)=1,1+MOD(INT(SEQUENCE(n,,0,)/254),254),""),
1+MOD(SEQUENCE(n,,0),254),
INDEX({45,30,30},1+MOD(SEQUENCE(n)-1,3))))
或者在我的情况下是德语:
=LET(n;260000;WAHL(SEQUENZ(;4);
WENN(REST(SEQUENZ(n);3)=1;1+KÜRZEN(SEQUENZ(n;;0;1/254^2));"");
WENN(REST(SEQUENZ(n);3)=1;1+REST(GANZZAHL(SEQUENZ(n;;0;)/254);254);"");
1+REST(SEQUENZ(n;;0);254);
INDEX({45.30.30};1+REST(SEQUENZ(n)-1;3))))
亲切的问候