Excel での選択的なカウントアップ

Excel での選択的なカウントアップ

参考までに、私はフォーラムそしてフォーラム私は次のことを達成したいと考えています。

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, 

まだ動作していないことが 1 つあります。列 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..254 にスケーリングされ、1 ずつオフセットされます。

=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 ステートメントは、数字が 3 行ごとに表示されることだけを確認します。

ここに画像の説明を入力してください

関連情報