- 締切済み
エクセル関数の質問
よろしくお願いします。 エクセル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列に行を詰めて並べる というような意味なのですが、わかる方がいましたらご教示お願いします。
- みんなの回答 (4)
- 専門家の回答
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! B1セルセル以降列方向に「○行飛ばし」の数値が入っているとし、 A列データは2行目以降にあるとします。 B2セルに =OFFSET($A$2,(B$1+1)*(ROW(A1)-1),,1)&"" という数式を入れオートフィルで列方向・行方向にコピーしてみてください。 何とかご希望通りにならないでしょうか?m(_ _)m
- MackyNo1
- ベストアンサー率53% (1521/2850)
開始値がA2セルに入力されているなら以下の式をB2セルに入力して右方向および下方向にオートフィルしてください。 =IF($A$2+(ROW(A1)-1)*(B$1+1)>MAX($A:$A),"",$A$2+(ROW(A1)-1)*(B$1+1))
お礼
回答ありがとうございます。 Aの値がランダムな数字なのです。 回答は質問どおりできておりました。 私の質問ミスですみません。 改めて質問しなおします。
- Cupper-2
- ベストアンサー率29% (1342/4565)
A列の値は連続した値ですか? ならば… とりあえずA列にある数字の一番大きい値を調べる事が必要ですね。 あとは足し算をして、A列の一番大きい数字と比較して 小さければ結果を表示して、 大きければ空白を表示する。 そんな関数式を作ればOK。 MAX(A:A) これでA列の最大値を求められます。 足し算…分かりますよね? B2+1 のような関数式を想像できればOK。 C列には +1 の部分を +2 とすれば良いですからね。 比較はIF関数を使えば良いでしょう。 =IF(MAX(A:A)>B2+1,B2+1,"") こんな感じになります。 あとは使い勝手が良いか、楽ができるかを考えて少しずつ関数式を直せばいいでしょう。
お礼
回答ありがとうございます。 おっしゃられた通りAの値がランダムな数字なのです。 私の質問ミスですみません。 改めて質問しなおします。
お礼
回答ありがとうございます。 Aの値がランダムな数字なのです。 回答は質問どおりできておりました。 私の質問ミスですみません。 改めて質問しなおします。