- ベストアンサー
エクセルで参照したデータをオートフィル・・・
仕事で効率が悪く、困っています。 シート1とシート2があり、 シート2の縦に並んだセル(A1~A10)を参照して シート1の(A1~J1)に横並びにしたいのですが、 現在シート1のA1には「=Sheet2!A1」、 B1には「=Sheet2!A2」と手打ちで入力しました。 そこから残りはオートフィルで済ませたいのですが、 結果は、 C1・・・「=Sheet2!C1」 D1・・・「=Sheet2!C2」 E1・・・「=Sheet2!E1」 F1・・・「=Sheet2!E2」 となってしまいます。 C1・・・「=Sheet2!A3」 D1・・・「=Sheet2!A4」 E1・・・「=Sheet2!A5」 F1・・・「=Sheet2!A6」 という具合にオートフィルで出来ないものでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
AB50~AB59までをD40~M40なら D40=OFFSET(SHEET2!$AB$50,COLUMN(A1)-1,ROW(A1)-1) [開始位置をSHEET2!AB50に変更して、位置のズレをA1にすることで修正] または D40=INDIRECT("SHEET2!$AB"&COLUMN()+46) [列名をABに変更、列のカウントに+46でD(4)を50に修正]
その他の回答 (2)
- taocat
- ベストアンサー率61% (191/310)
こんにちは。 そういう時の為に行列入換え関数が用意されています。 折角ですから使ってみたらどうですか。 シート1のD40~M40を選択した状態で下記の式を入力 = TRANSPOSE(Sheet2!AB50:AB59) 式の確定は、Enterではなくて Shift+Ctrl+Enterで確定する(配列数式) 疑問があるときは、ヘルプをご覧あれ。 以上です。
お礼
こちらの方法でも出来ました! ヘルプも見てみたんですが、ちゃんと見れていなかったようです。 ありがとうございました。
- mshr1962
- ベストアンサー率39% (7417/18945)
A1=OFFSET(SHEET2!$A$1,COLUMN()-1,ROW()-1) または A1=INDIRECT("SHEET2!$A"&COLUMN()) として横方向にコピーしてください。 開始セルがA1以外の場合は COLUMN()やROW()に数値を減算して対応するか()内にA1とすれば対応できます。 上の式は下方向にも対応、下の式は横方向のみ対応です。
補足
すみません質問で書いた例は分かりやすくするため A1を基点に取ったのですが、実際のファイルで参照したいセルは、 シート2のAB50~AB59までで、それをシート1のD40~M40に表示したいのです。 ご教授の式に列番号や行番号を置き換えてみたのですが いまいち上手くいきません。 上記のようなパターンでは、どのような式になるのでしょうか?
お礼
なるほど出来ました! ありがとうございます。助かりました。