- ベストアンサー
エクセルで
お世話になっております。 下記のような作業をしたいのですが、どうするのがよいのでしょうか? ********** 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 ********** にしたいのですが良い方法ございますでしょうか。(ずれてますが、数字は一列にします)かなり横に長いため、手作業だとかなり厳しい状況です。 お知恵を拝借できれば幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず、データの入った範囲をドラッグして、Ctrl + C等でコピーします。 別のシートのA1セルで[編集]→[形式を指定して貼り付け]で[□行列を入れ替える]をチェックして[OK]を押します。 これでデータが縦に並んだので、後はカットアンドペーストでデータを移行します。 データの範囲を指定する時、例えばaの下のセルの1をクリックしてCtrl + Shift + ↓で連続したデータを選択出来ますので楽です。
その他の回答 (3)
- nishi6
- ベストアンサー率67% (869/1280)
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
お礼
回答ありがとうございます。 もうちょい早く教えていただければ、よかったのですが・・・。 でも参考にさせていただきます。 ありがとうございました。
- Hageoyadi
- ベストアンサー率40% (3145/7860)
「行列を入れ替える」 Excel2002での説明ですが、2000でも操作は一緒です。
お礼
回答ありがとうございます。 こんな機能があるのですね。ありがとうございます。
- tbobi
- ベストアンサー率45% (544/1189)
行列を入れ替えたらどうですか? コピー後、右クリックから形式を選択して貼り付けを選び、行列をいれかえるにチェックを入れてOKをクリックします。
お礼
回答ありがとうございます。 マクロを組むつもりだったのですが、とりあえずこれでやってしまいました。1時間かからなかったので満足です。ありがとうございました。