• ベストアンサー

エクセルで参照したデータをオートフィル・・・

仕事で効率が悪く、困っています。 シート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」 という具合にオートフィルで出来ないものでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

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に修正]

celess_kazubon
質問者

お礼

なるほど出来ました! ありがとうございます。助かりました。

その他の回答 (2)

  • taocat
  • ベストアンサー率61% (191/310)
回答No.3

こんにちは。 そういう時の為に行列入換え関数が用意されています。 折角ですから使ってみたらどうですか。 シート1のD40~M40を選択した状態で下記の式を入力 = TRANSPOSE(Sheet2!AB50:AB59) 式の確定は、Enterではなくて Shift+Ctrl+Enterで確定する(配列数式) 疑問があるときは、ヘルプをご覧あれ。 以上です。

celess_kazubon
質問者

お礼

こちらの方法でも出来ました! ヘルプも見てみたんですが、ちゃんと見れていなかったようです。 ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

A1=OFFSET(SHEET2!$A$1,COLUMN()-1,ROW()-1) または A1=INDIRECT("SHEET2!$A"&COLUMN()) として横方向にコピーしてください。 開始セルがA1以外の場合は COLUMN()やROW()に数値を減算して対応するか()内にA1とすれば対応できます。 上の式は下方向にも対応、下の式は横方向のみ対応です。

celess_kazubon
質問者

補足

すみません質問で書いた例は分かりやすくするため A1を基点に取ったのですが、実際のファイルで参照したいセルは、 シート2のAB50~AB59までで、それをシート1のD40~M40に表示したいのです。 ご教授の式に列番号や行番号を置き換えてみたのですが いまいち上手くいきません。 上記のようなパターンでは、どのような式になるのでしょうか?

関連するQ&A