• 締切済み

エクセルのデータ入れ替え

エクセルに 1氏名 2電話番号 3住所 4氏名 5電話番号 6住所 と入力されたデータがあります。 これを、 A氏名 B電話番号 C住所  氏名  電話番号  住所 と変換させたいのですが、どうしたら簡単に手っ取り早く 変換出来るでしょうか? かなりの数があるので、手間の掛からない方法を教えて下さい。 また、これを使って印刷をするので、それを考慮した方法で お願いします。

みんなの回答

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

普通は関数でやるが、 VBAでやると Sub test01() Dim sh1, sh2 As Worksheet Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") d = Range("A65536").End(xlUp).Row '-- For j = 1 To 3 For i = j To d Step 3 sh2.Cells(Int((i - 1) / 3) + 1, j) = sh1.Cells(i, "A") Next i Next j End Sub VBAでも色々な処理ロジックが考えられるという例。

  • normo
  • ベストアンサー率54% (6/11)
回答No.4

ものすごいローテクで、こんなのどうですか? まず、隣の列にa,b,cを入力し下にコピーする。(a,b,c,a,b,c,a,b,c・・・) a,b,cじゃなくてもなんでもいいですけど、例えばです。 ↓こんな感じ a 氏名 b 電話番号 c 住所 a 氏名 b 電話番号 c 住所 オートフィルタを使い'a'の行み表示させてコピーし、別のシートのA列に貼り付ける。これで氏名の列が完成です。 b,cについても同様に。

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

別シートに並び替える方法ですが如何でしょうか。 元シートをシート1として、シート2の任意セルに次の数式を設定し、縦横にコピーして下さい。 =OFFSET(Sheet1!$A$1,ROW(A1)-1+(ROW(A1)-1)*2+(COLUMN(A1)-1),0)

回答No.2

マクロ(VBA)を使用することになると思います。 ・Sheet1 を変換して Sheet2 へコピーするものとします。 ・Sheet1 は必ず 1 行目から開始する。 ・1 人分で 3 行使用する。 ・途中に空の行が無いものとする。 という条件の下で実行します。この条件を満たさない場合は、条件を満た すように Sheet1 を手直しする、または、VBA コードを書き換えるという 作業が必要になります。 Sheet2 を開いて、「ツール」->「マクロ」->「Visual Basic Editor」を 選択し、開いた VBE に以下のコードを貼り付けます。 あとは、「ツール」->「マクロ」->「マクロ」で貼り付けたマクロが表示 されますので、それを実行します。 詳しくコメントを書きました(つもり)ので、これを機に VBA を少し勉強 してみてはいかがでしょうか。 >また、これを使って印刷をするので、それを考慮した方法で >お願いします。 なにを考慮すれば良いのかわからないので、対応できません。 ==== コード ==== Sub test()   'Sheet1 の 1 行目から実行   intRow1 = 1   'Sheet2 の 1 行目からコピーする   intRow2 = 1   'Sheet1 の 1 列 intRow1 行目のセルが空でなければ...   While Worksheets("Sheet1").Cells(intRow1, 1) <> ""     '3 行分コピーする     For i = 0 To 2       'Sheet1 の 1 列 intRow1 + i 行目のセルの値を Sheet2 の i + 1 列 intRow2 行目のセルにコピーする       Worksheets("Sheet2").Cells(intRow2, i + 1) = Worksheets("Sheet1").Cells(intRow1 + i, 1)     Next     'Sheet1 の行番号を +3 する     intRow1 = intRow1 + 3     'Sheet2 の行番号を +1 する     intRow2 = intRow2 + 1   Wend End Sub ==== コード ここまで ====

  • S-Fuji
  • ベストアンサー率36% (592/1624)
回答No.1

マクロは如何でしょう。 Sub test1() Dim i As Integer, k As Integer k = 1 For i = 2 To 4 '人数分+1 Cells(i, 2) = Cells(k, 1) Cells(i, 3) = Cells(k + 1, 1) Cells(i, 4) = Cells(k + 2, 1) k = k + 3 Next i End Sub ------- For文の4の所を人数分+1にして(例は3人分) 変換の確認をしたら、A列を削除すればOK

関連するQ&A

  • エクセルの住所録データから郵便番号を引き出す方法はありますか?

    エクセルの住所録データから郵便番号を引き出す方法はありますか? A列に氏名B列に住所C列に電話番号が入力されています。 できればB列に郵便番号を一括変換で入力をしたいのですが・・・ エクセルで不可能であればフリーソフトでそのようなものがあればありがたいのですが・・・ よろしくお願いします。

  • ワードのデータをエクセルに変換

    ワードで住所・氏名・電話番号のデータが普通のテキストデータで入っているものを、エクセルに順序よく変換する方法をどなたかご存知ないでしょうか?

  • エクセル2000で

    住所録を作っています。 A列に氏名、B列に郵便番号、C列に住所・・・などと1ページ作成しましたが、今まではB列に郵便番号を入力し、C列に移動したあともう一度郵便番号を入力し住所変換してきましたが、これでは手間がかかってしまいます。 これをB列に郵便番号を入力したときに、B列に郵便番号、C列に住所をいっぺんに表示させる方法はないでしょうか? そのとき1ページまで作ってありますが、何ページに渡っても同じ方法で表示されればいいのですが・・・。 それと住所に変換するときに都道府県名が入っていますが、これを出さない方法はありますか?

  • EXCEL データをレコード化するには

    Excelのデータについて教えてください 1枚目のシートに 管理番号:氏名:住所:電話番号の4つのデータがそれぞれ別のセルに入ってるデータが100件あります。 (Aの列:管理番号 Bの列:名前 Cの列:氏名 Dの列:電話番号) これを、2枚目のシートで利用したいのですが、 Aの列の管理番号を入力したら、その列のデータが表示されるように したいです。Wordの差込のような感じです。 =(Sheet1!$B3)これだと、1つのデータしか出ませんよね。 すべてのデータの送り状を作成したいと思っています。 VBAとかでないとできないのでしょうか。 よろしくお願いいたします。

  • アクセスのデータベース内のデータをエクセルでみれるように・・・

    以前にも同様の質問があったやもしれないのですが、見つける事が出来ず・・・。 同じ事聞いていましたらごめんなさい(TcT) アクセスのテーブルにあるデータベース(行には管理番号・氏名・住所・電話番号等の情報)を エクセルで見たいのですが、データベースの情報が50万件程あり、エクセルにコピー等の方法ではデータが多すぎて移行出来ません。 そこで質問なんですが、 アクセスデータベースの管理番号(10桁位の数)をエクセルのセルに管理番号を入力すると、 入力した管理番号の行の情報のみを表示出来るような方法がありますか? 宜しくお願い致します。

  • エクセルデータのこういうデータは直せますか?

    ある友人にデータの打ち込みをたのんだのですが。 もらったデータがA1縦列のみにしかなく。 全部A1列に繋がっているのですが。 A1 氏名:あいうえお 住所:あいうえお 電話番号:あいうえお 氏名:かきくけこ 住所;かきくけこ 電話番号かきくけこ ・ ・ ・ となっているのですが。 なんせデータの量がおおくて。 このデータをなにかして。 氏名   | 住所  | 電話番号| あいうえお|あいうえお|あいうえお| かきくけこ|かきくけこ|かきくけこ| みたいに整理できませんかね? 誰かたすけてください。 おねがいします。

  • エクセル同士の差し込み印刷をするにはどうしたらよいですか

    差し込み印刷について教えて下さい。 Excel同士の差し込み印刷ってできるのでしょうか? Wordで作成した文書にExcelデータを差し込むのは過去にしたことがあるのですが、 Excelで作成した文書にExcelデータを差し込む事はできるのでしょうか。 もし、可能ならそのやり方を教えて下さい。 氏名・住所・電話番号を一覧をエクセルで作成しており 別のエクセルファイルに氏名の枠・住所の枠・電話番号の枠を作っています。 このセルの中にもう一つのファイルの氏名データを差し込みたいのですが。 やり方を教えて下さい。 宜しくお願い致します。

  • エクセルで差込印刷

    エクセルを使って差込印刷をする方法を教えて下さい 町内会で使用する定形の用紙に住所録を印刷します。 一行(レコード)に通し番号・班番号・氏名・TEL・住所 が入力された、住所録データがあります。 このデータを元に定形の用紙に印刷するにはどうすれば よいのでしょう あの年賀状をはがき印刷する要領で住所録にあるデータを一気に印刷したいのですが マクロが最適なんでしょうか・・・

  • エクセル2007 データ抽出(関数)について

    教えてください。エクセルシートにて郵便番号と住所が重複しているデータを抽出したいのです。 例)ある顧客の情報として、シート1のA列に、1から10までの新規顧客の氏名、B列には生年月日が入力されています。C列,D列は空白で、E列には全ての顧客(新規顧客を含みます)の氏名、F列には生年月日、G列には郵便番号、H列には住所が入力されています。このふたつの情報の中から、新規顧客データと全ての顧客データの氏名、生年月日が重複している顧客のみ、C列にその郵便番号、D列に住所を表示させたいのです。 OSはXP エクセル2007です。 困っています。よろしくお願いします。

  • エクセルです。至急教えてもらえませんか!!

    はじめまして。よろしくお願いします。 エクセルである名簿を作っています。 <sheet1> A列に会員番号、B列に氏名、C列に住所・・・・というような表にしています。 <sheet2> sheet2のあるセルに<sheet1>の会員番号を入力するとその会員のデータが決められた様式ででてくるようにしました。 今から、この会員全員分のデータを全て<sheet2>の様式で印刷したいのですが、手作業で会員番号を入力して、印刷をしてというやり方だとかなり時間がかかりそうです。また他にも今から仕事があるので、何かよい方法を教えてください。マクロでできるのだろうとは思うのですが、昔使ったことが少しあるだけで全然覚えていません。よろしくお願いいたします。 *会員番号順に並んでいますが、数はとんでいます。例えば、1、5,19,28,29,50・・・・という具合です。

専門家に質問してみよう