• ベストアンサー

Excelで行と列のデータの入れ替え

月   2005年1月 / 2005年2月 ・・・・ 2005年12月 営業所   A   B  C 売上  200 100 150 上記のデータを ↓ 月   2005年1月 営業所 A 売上  100 月   2005年2月 営業所 B 売上  200 のようにデータを置換えたいと思っております。横に続くデータを縦に置き換える方法はありますか?データ量が多く、簡単にできないでしょうか?アドバイスをお願い致します。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

Sheet1にデータがあるとして、Sheet2のB1に =INDEX(Sheet1!$B$1:$X$3,MOD(ROW()-1,3)+1,INT((ROW()-1)/3)+1) と入れて、下方向に式を複写する。$X$3のXはデータの有る最右列を指定してください。 A列は 月    営業所  売上 をA1:A3に入れておいて、A3で+ハンドルを出し、下に引っ張ればよい。または複写を使う。 日付書式は CTRLを押しながら、3行おきにセルを選択し、日付書式を設定するよりほか無いかな。 いや、B1:B3に日付、文字列、数の書式を設定し、B1:B3をコピーし、B4以下のB列に、書式の貼り付けでできそう。 VBAなら1発でできるが。

その他の回答 (3)

noname#204879
noname#204879
回答No.3

どうせ縦に「置き換える」なら、そして、可能なら、次のようにすることをお奨めます。 月     営業所 売上 2005年1月  A    200 2005年2月  B    100 ・・・・・ ・    … 2005年12月 C    150

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

3行×複数列のデータを縦1列にするのでいいのですか? 直接の入れ替えは無理なので 上記がSheet1ならSheet2で A1=OFFSET(Sheet1!$A$1,MOD(ROW()-1,3),(ROW()-1)/3) として下方にコピー ※ただし月が日付データの場合は、A3までコピー後にA1に日付の表示形式を設定して、A1:A3の3行をコピーしてください。

回答No.1

編集⇒コピーの後、貼り付ける時に、形式を選択して貼り付け⇒行列を入替える(右下にあります)

関連するQ&A