정보를 위해 나는 질문을했습니다.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는 A3에서 처음으로 254에 도달할 때까지 2행부터 3행마다 1을 설정해야 합니다. 그런 다음 다음 설정(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))))
친절한 안부
답변2
row() 번호를 인덱스로 사용하면 열 C는 254로 나눈 나머지(모듈러스)이고 1로 오프셋됩니다(예: 0..253에서 1..254).
=MOD(ROW()-1,254)+1
열 B는 254로 정수를 나눈 후의 몫이고 열 A는 254^2로 정수를 나눈 후의 몫입니다. 둘 다 모듈러스와 오프셋을 1로 사용하여 1..254로 크기가 조정됩니다.
=IF(MOD(ROW()-1,3)=0,MOD(INT((ROW()-1)/254),254)+1,"")
그리고
=IF(MOD(ROW()-1,3)=0,MOD(INT((ROW()-1)/(254^2)),254)+1,"")
if 문은 세 번째 행마다 숫자가 표시되는지 확인합니다.