• ベストアンサー

エクセル2003で表引き

こんにちは いつもお世話になっています。 エクセル2003で表引き Sheet1のB列に都道府県名があります。 青森 秋田 岩手 愛媛 鹿児島 Sheet2のK1セルにSheet1のB1データを引いてくるために =Sheet1!B1 という関数を入れました。 Sheet2のL1セルにSheet1のB2を引いてきたいのですがフィルハンドルでのコピーに失敗します。 どのような関数を使えば横にコピーできるようになるでしょうか。Sheet2のM1,N1に同様にコピーしていきたいのです。 縦のデータを横にしたいのではなく、関数で引っ張りたいのです。 よろしくお願いします。

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

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

今回のように、縦方向のデータを行列を入れ替えて関数で横方向のデータにするにはTRANSPOSE関数を利用されるのが簡単です。 例えば10行1列のデータ(今回ならB1:B10)を行列を入れ替えて表示させるなら、1行10列のセル範囲(今回ならK1:T1)を選択して、以下の式を入力して、Ctrl+Shift+Enterで確定します。 =TRANSPOSE(B1:B10) この方法は、1行や1列のデータだけでなく、表の行列を(10行2列を2行10列にする場合などに)関数で簡単に入れ替えることができますので覚えておくと便利です。

5goma
質問者

お礼

MackyNo1 様 ありがとうございました。 お蔭様で解決しました。 Transposeを勉強させていただきました。 大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。

その他の回答 (2)

回答No.2

どうもこんにちは。 前回と違うところは、連番の表記がない事と、 表示場所が変わったという事でしょうか? 前回と同様に下記の式を考えました。 =INDIRECT("Sheet1!B"&COLUMN()-10) 式の意味を説明しておきます。 =INDIRECT()は、指定する参照セルの内容を返します。 COLUMN()は、行数を返します。(K行であれば、11です) ()内の式を計算すると、 "sheet1!B&(11-10)" → "sheet1!B1"  そして、 INDIRECT()関数によってsheet1のB1の内容を引っ張ってきます。 COLUMN()関数により、右にフィルすれば、列がズレるので 返される数値が1ずつ増えます。Lは12、Mは13...。 それに絶えず10を引けば、sheeet1のB列にあるデータの行を 1つずつズラすことができます。

5goma
質問者

お礼

guchi_yama 様 ありがとうございました。 お蔭様で解決しました。 丁寧に教えていただき助かりました。 大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

前回の回答したものですが、私の回答では任意セルから順番に表示できる筈ですが如何でしょうか。 K1に=OFFSET($B$1,COLUMN(A1)-1,)で右方向にコピー

5goma
質問者

お礼

mu2011 様 ありがとうございました。 お蔭様で解決しました。 応用させていただく時に手間取ってしまい、同じような質問をさせていただきました。 大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。

関連するQ&A

専門家に質問してみよう