• 締切済み

エクセル関数の質問

よろしくお願いします。 エクセル2003を使用してます。 A     B     C     D      1      2     3 1     1     1      1 2     3     4      5 3     5     7      9 4     7     10     13 5     9     13     17 6     11     16 7     13    19 8     15 9     17 10    19 11 12 13 14 15 16 17 18 19 20 上記のA列の1~20(実際はもっと多い)の数字を B列、C列、D列のように並べたいのですが、 1行目の1,2,3の意味は 1だったらA列の数字を1行間隔ずつあけて、B列に行を詰めて並べる 2だったらA列の数字を2行間隔ずつあけて、C列に行を詰めて並べる というような意味なのですが、わかる方がいましたらご教示お願いします。

みんなの回答

noname#204879
noname#204879
回答No.4

添付図参照 B2: =OFFSET($A$2,(ROW(A1)-1)*(B$1+1),)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! B1セルセル以降列方向に「○行飛ばし」の数値が入っているとし、 A列データは2行目以降にあるとします。 B2セルに =OFFSET($A$2,(B$1+1)*(ROW(A1)-1),,1)&"" という数式を入れオートフィルで列方向・行方向にコピーしてみてください。 何とかご希望通りにならないでしょうか?m(_ _)m

tackty
質問者

お礼

回答ありがとうございます。 Aの値がランダムな数字なのです。 回答は質問どおりできておりました。 私の質問ミスですみません。 改めて質問しなおします。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

開始値がA2セルに入力されているなら以下の式をB2セルに入力して右方向および下方向にオートフィルしてください。 =IF($A$2+(ROW(A1)-1)*(B$1+1)>MAX($A:$A),"",$A$2+(ROW(A1)-1)*(B$1+1))

tackty
質問者

お礼

回答ありがとうございます。 Aの値がランダムな数字なのです。 回答は質問どおりできておりました。 私の質問ミスですみません。 改めて質問しなおします。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

A列の値は連続した値ですか? ならば… とりあえずA列にある数字の一番大きい値を調べる事が必要ですね。 あとは足し算をして、A列の一番大きい数字と比較して 小さければ結果を表示して、 大きければ空白を表示する。 そんな関数式を作ればOK。   MAX(A:A) これでA列の最大値を求められます。 足し算…分かりますよね?   B2+1 のような関数式を想像できればOK。 C列には +1 の部分を +2 とすれば良いですからね。 比較はIF関数を使えば良いでしょう。   =IF(MAX(A:A)>B2+1,B2+1,"") こんな感じになります。 あとは使い勝手が良いか、楽ができるかを考えて少しずつ関数式を直せばいいでしょう。

tackty
質問者

お礼

回答ありがとうございます。 おっしゃられた通りAの値がランダムな数字なのです。 私の質問ミスですみません。 改めて質問しなおします。

関連するQ&A