• ベストアンサー

エクセルで

お世話になっております。 下記のような作業をしたいのですが、どうするのがよいのでしょうか? ********** a 1 2 3 b 2 4 5 c 2 4 5 6 ********** を ********** a 1  2  3 b 2  4  5 c 2  4  5  6 ********** にしたいのですが良い方法ございますでしょうか。(ずれてますが、数字は一列にします)かなり横に長いため、手作業だとかなり厳しい状況です。 お知恵を拝借できれば幸いです。

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

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.3

まず、データの入った範囲をドラッグして、Ctrl + C等でコピーします。 別のシートのA1セルで[編集]→[形式を指定して貼り付け]で[□行列を入れ替える]をチェックして[OK]を押します。 これでデータが縦に並んだので、後はカットアンドペーストでデータを移行します。 データの範囲を指定する時、例えばaの下のセルの1をクリックしてCtrl + Shift + ↓で連続したデータを選択出来ますので楽です。

q-tip
質問者

お礼

回答ありがとうございます。 マクロを組むつもりだったのですが、とりあえずこれでやってしまいました。1時間かからなかったので満足です。ありがとうございました。

その他の回答 (3)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

  A B C D E F G H 1       a 1 2 3   2       b 2 4 5   3       c 2 4 5 6 Sheet1で上のような状態を想定しました。 データ「a」が入力されている、セルD1を選択して、下のマクロを実行します。 A、B列に結果を出力します。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、 表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示します。 プロジェクトエクスプローラのSheet1をダブルクリック。出てきたコードウインドウに下記マクロをコピーして貼り付けます。 ここから ↓ Sub Narabikae()   Dim rw As Long '行カウンタ   Dim col As Integer '列カウンタ   Dim prt As Long '出力行カウンタ   prt = 1   With Selection     '行方向を調べる     While .Offset(rw, col) <> ""       '表題の列を出力する       Cells(prt, 1) = .Offset(rw, col)       '列方向を調べる       While .Offset(rw, col + 1) <> ""         '数値列を出力する         Cells(prt, 2) = .Offset(rw, col + 1)         prt = prt + 1: col = col + 1       Wend       col = 0: rw = rw + 1     Wend   End With End Sub

q-tip
質問者

お礼

回答ありがとうございます。 もうちょい早く教えていただければ、よかったのですが・・・。 でも参考にさせていただきます。 ありがとうございました。

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.2

「行列を入れ替える」 Excel2002での説明ですが、2000でも操作は一緒です。

参考URL:
http://office.microsoft.com/japan/assistance/2002/articles/xlTipSwitchRows.aspx
q-tip
質問者

お礼

回答ありがとうございます。 こんな機能があるのですね。ありがとうございます。

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.1

行列を入れ替えたらどうですか? コピー後、右クリックから形式を選択して貼り付けを選び、行列をいれかえるにチェックを入れてOKをクリックします。

関連するQ&A