Excel의 선택적 계산

Excel의 선택적 계산

정보를 위해 나는 질문을했습니다.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 문은 세 번째 행마다 숫자가 표시되는지 확인합니다.

여기에 이미지 설명을 입력하세요

관련 정보