Sheet1にあるデータをSheet2に並び替える作業をしています。
Sheet2のA1-A2に、
=Sheet1!A12
=Sheet1!A17
このように入力して、オートフィルでコピーします。
すると、
=Sheet1!A12
=Sheet1!A17
=Sheet1!A14
=Sheet1!A19
となります。
望むべき結果は、5個飛びでのコピーで、
=Sheet1!A12
=Sheet1!A17
=Sheet1!A22
=Sheet1!A27
こうです。
正しいやり方、参考になるWEBページをどなたか教えてもらえると助かります。
Sheet2のA1 =INDIRECT("Sheet1!A"&(ROW()*5+7))
でどうでしょうか?
indirect関数は
http://pc.nikkeibp.co.jp/pc21/tech/excel36/27/index.shtml
を見てください。
セル参照の場合は、相対位置でのコピーになりますので、オートフィルは意図した通りにならないことがあります。答えを入れる場所が2行下がったことを考慮してしまうのです。
うまくいっていないようでも、Excelプログラムでは「うまくいった」とみなして動いています(「それは仕様です」笑)。
そこがまだ人間とは離れている部分ですねぇ。
→ 「ツール→オプション→全般タブ→R1C1参照を使用する」をチェックすれば、Excelがどうしてこうやったかが見られます。
=Sheet1!R[11]C
=Sheet1!R[15]C
=Sheet1!R[11]C
=Sheet1!R[15]C
うまく行くケースと、人には理解できない振る舞いをするケースを挙げてみました。
例は横方向に記載していますが、実際は縦方向と思ってください(横でもオートフィルが効きますけど)。
●うまく行くケース
数値2個
数値
数値
例. 12, 17
文字+数値の2個
文字+数値
文字+数値
例. abc12, abc17
●うまく行かないケース
数値3個以上(不連続な数値。比例時はうまく行く)
数値
数値
数値
:
例. 12, 17, 12
例. 12, 17, 12, 17
詳細は、下記を参照ください。
http://q.hatena.ne.jp/1145512253
シート参照
シート参照
シート参照
例. Sheet1!A12, Sheet1!A17
例. A12, A17
今回のように代入場所と元のセルの間に関連がない場合、前の方の回答のようにindirectを利用するのがいいと思います。
コメント(0件)