Excel 3行ごとに文字を増やす

Excel 3行ごとに文字を増やす

Sheet1 から Sheet2 に大量のデータを取得したいのですが、コマンドを右にプルすると、3 行ごとに「C」が「D」に増加するだけです。右にプルするコマンドが 3 つあるため、すべてが 3 ではなく 1 ずつ増加するはずです。

A1は次のようになります。

=WENN(Sheet1!C3>0;Sheet1!C$2;"")

B1は次のようになります:

=WENN(Sheet1!C3>0;Sheet1!$A3;"")

C1は次のようになります:

=WENN(Sheet1!C3>0;Sheet1!C3;"")

右に引っ張ると、次のように変化します。

=WENN(Sheet1!F3>0;Sheet1!F$2;"")
=WENN(Sheet1!F3>0;Sheet1!$A3;"")
=WENN(Sheet1!F3>0;Sheet1!F3;"")

でも私はしたい:

=WENN(Sheet1!D3>0;Sheet1!D$2;"")
=WENN(Sheet1!D3>0;Sheet1!$A3;"")
=WENN(Sheet1!D3>0;Sheet1!D3;"")

私の言っている意味が分かると思います。これを実行する方法はあるでしょうか?

答え1

OFFSETセルを右にどれだけシフトするかを制御するために、便利な関数を使用できます。

Sheet2 の 3 列ごとに Sheet1 の 1 列をシフトしたいので、次の関数を使用できます。

=ROUNDUP(COLUMN()/3,0)-1

これは基本的に列番号を使用し、それを 3 で割って丸めます。次に、最初の 3 列をシフトしたくないので、1 を削除します。これを右に引っ張ると、次のシーケンスが得られます。0 0 0 1 1 1 2 2 2 3 3 3...

セルをどれだけシフトする必要があるかがわかったのでC3、関数を使用して正しいデータを取得できますOFFSET。 で使用する必要がある数式は次のとおりですSheet2

A1

=IF(OFFSET(Sheet1!$C3,0,ROUNDUP(COLUMN()/3,0)-1)>0,OFFSET(Sheet1!$C$2,0,ROUNDUP(COLUMN()/3,0)-1),"")

B1

=IF(OFFSET(Sheet1!$C3,0,ROUNDUP(COLUMN()/3,0)-1)>0,Sheet1!$A3,"")

C1

=IF(OFFSET(Sheet1!$C3,0,ROUNDUP(COLUMN()/3,0)-1)>0,OFFSET(Sheet1!$C3,0,ROUNDUP(COLUMN()/3,0)-1),"")

期待される結果:

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


Excel をドイツ語で使用しているようです。翻訳された数式は次のとおりです。

=WENN(BEREICH.VERSCHIEBEN(Sheet1!$C3;0;AUFRUNDEN(SPALTE()/3;0)-1)>0;BEREICH.VERSCHIEBEN(Sheet1!$C$2;0;AUFRUNDEN(SPALTE()/3;0)-1);"")
=WENN(BEREICH.VERSCHIEBEN(Sheet1!$C3;0;AUFRUNDEN(SPALTE()/3;0)-1)>0;Sheet1!$A3;"")
=WENN(BEREICH.VERSCHIEBEN(Sheet1!$C3;0;AUFRUNDEN(SPALTE()/3;0)-1)>0;BEREICH.VERSCHIEBEN(Sheet1!$C3;0;AUFRUNDEN(SPALTE()/3;0)-1);"")

関連情報