• ベストアンサー

Excelの行列の入れ替えについて

Excelのファイルで下記のようにデータが入っているものをA列にいっきにまとめることはできないでしょうか? A B C 1 a b c 2 a b c 3 a b c ↓というでーたを。。。 A 1 a 2 a 3 a 4 b 5 b 6 b 7 c 8 c 9 c ↑こんな感じにはできないでしょうか?切り取り&貼り付けしかないでしょうか?

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

  • ベストアンサー
noname#148473
noname#148473
回答No.2

VBAを使うか、あるいは「切り取り&貼り付け」か、 どちらかだと思います。 関数やExcel自体の機能では対応できないでしょう(多分) もし、任意の文字を改行コードに置換できるタイプのテキストエディタを お持ちなら、データ全体を範囲指定して「コピー」し、 別のシートに「形式を指定して貼り付け」-「行列を入れ替え」-「OK」で 貼り付け、そのシートを「名前を付けて保存」で「CSV形式」で保存します。 保存したファイルをテキストエディタで開き、半角カンマ[,]を 改行コードに一括置換して、保存します。 このファイルを、再びExcelで開けば、ご要望の形式になっている筈です。 そういうテキストエディタをお持ちでない場合は、 下記のマクロを使ってください。 ---------------------------- Sub 行列入れ替え()   Dim i, j, k, endofrow, endofcol As Integer      endofrow = ActiveSheet.UsedRange.Rows.Count   endofcol = ActiveSheet.UsedRange.Columns.Count   k = endofrow + 1      For i = 2 To endofcol     For j = 1 To endofrow              ActiveSheet.Cells(k, 1) = ActiveSheet.Cells(j, i)       ActiveSheet.Cells(j, i).ClearContents       k = k + 1            Next   Next    End Sub ---------------------------- Excelのメニューバーの「ツール」-「マクロ」-「VisualBasicEditor」をクリック、 VisualBasicEditorが表示されますので、「挿入」-「標準モジュール」を選び、 右側の白紙のウィンドウ(コードウィンドウ)に、点線内を貼り付けてください。 Excelに戻って、「ツール」-「マクロ」-「マクロ」をクリック、 「行列入れ替え」を選んで「実行」してください。

jinah
質問者

お礼

回答ありがとうございます。やはりVBAでやるのが一番ですね。今回の件を機にVBAに挑戦したいと思います。丁寧な説明をありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

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

できますが、相当凝ったものになりますよ。 (1)A1:C3にテストデータとして 1 4 3 2 5 4 3 7 5 を入れます。 (2)E列のE1に=INT((ROW()-1)/3)+1 E9まで式を下へ複写します。 (3)F列のF1に=MOD(ROW()-1,3)+1 F9まで式を下へ複写します。 (4)D列D1に=INDEX($A$1:$C$3,E1,F1) D9まで式を複写します。 (5)結果は 1 4 3 2 5 4 3 7 5 となります。 (6)判りやすいようにE、Fを別に作っていますが、なれれば=index($a$1:$c$3,INT((ROW()-1)/3)+1,MOD(ROW()-1,3)+1)と書けるようになるでしょう。 こんなのよりVBAを勧めたいですが。

jinah
質問者

お礼

回答ありがとうございます。関数だと大変ですね。やはりVBAでやるのが一番ですね。今回の件を機にVBAに挑戦したいと思います。丁寧な説明をありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • gon_gon
  • ベストアンサー率26% (33/124)
回答No.3

#1です。 すみません。セル内で縦に並べたかったのですね?勘違いしてました!(ごめんなさい) #1で説明した方法ですと別々のセルのものを一つにまとめる事しかできません。(しかも横並びに・・・(>_<)) 一つのセル内に縦に並び替える方法をお探しだったのですね・・・・ ごめんなさい。そのような方法があるのかちょっと分かりかねますm(__)m やはり切り取り&貼り付けしかないかなぁ・・・ お役に立てませんで申し訳ありませんでした・・・

全文を見る
すると、全ての回答が全文表示されます。
  • gon_gon
  • ベストアンサー率26% (33/124)
回答No.1

多分、これでできると思います。 空白のセルに、=A1&B1 エンター これでA1のセルとB1のセル内がまとまります。 もっとセルをまとめたい場合は =A1&B1&C1 とつなげて入力すればOKです。

jinah
質問者

補足

=A1&B1と入力すると1つのセルにABと入力され縦に並びませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel 行列入れ替え

    行列入れ替えを行いたいのですが、良い方法はありますでしょうか? A列   B列   C列   D列   E列   F列   G列 111   222    あ    い    う    え 333   444    あ    い    う    え    お ↓ A列   B列   C列 111   222    あ 111   222    い 111   222    う 111   222    え 333   444    あ 333   444    い 333   444    う 333   444    え 333   444    お C列以降は内容により、フィールド数が異なります。 最終的にはA列ごとB列ごとに各値を含む割合を出したいと考えています。 ピボットテーブルで集計をしようと考えているのですが、横方向にデータが 入っていると上手く出来ませんでした。 もし、データの入れ替えをせず集計が出来れば、そういった方法も教えて 頂きたいです。 宜しくお願いいたします。

  • 罫線もいっしょに行列の入れ替えがしたいんです

    下記(1)のような表の行と列を罫線ごと入れ替えて、(2)のような形にしたいんです。 そこで「コピー」「形式を指定して貼り付け」で「貼り付け:すべて」「行列を入れ替える」を選んでやったんですが、(3)のようになってしまいます。 何かよい方法はないでしょうか? --と|は普通の実線、==と||は二重線です。 (1)  |あ い う ============= A|  | B|  | C|  | D| (2)   || A B C D ----------------- あ||   || い||   || う || (3)   | A | B | C | D | == あ == い == う ==

  • EXCELの「行列を入れ替える」マクロについてどなたか教えていただけないでしょうか?

    EXCELの「行列を入れ替える」マクロについてどなたか教えていただけないでしょうか? 下記のようにならんだDATAがあります。   A列   B列  C列  D列  E列 (1行)2002/12/17 15240 15280 15220 15220 (2行) (3行) (4行) (5行)2002/12/18 15250 15250 15210 15210 (6行) (7行) (8行) (9行)2002/12/19 15220 15310 15220 15310 (10行) (11行) (12行) (13行)2002/12/20 15220 15260 15210 15230 (14行) (15行) (16行) (17行)2002/12/24 15300 15310 15270 15310 (18行) (19行) (20行) (21行)2002/12/25 15300 15340 15300 15600  . . . . . . . . . . . . . . . . . . . . . . . と,このようにDATAは日付の横に数値が4つずつ横に並んでおりますが、この4つの数値をその4つ目の数値の真横のF列から縦に4つ並べたいのですが、一気にできるマクロがないものでしょうか?下記のようにです。   A列   B列 C列 D列 E列  F列 2002/12/17            15240                  15280                  15220                  15220 2002/12/18            15250                  15250                  15210                  15210 2002/12/19            15220 15310 15220 15310                   . . .                    といった感じに一気にマクロで処理してしまいたいのです。DATAはかなりの行数あり、すべて3行の間隔があります。日付の横に4つの数値が規則的に並んでいるというものです。何回でもマクロボタン一発で4つの横に並んだ数値のみを縦に並べた4つの数値にしたいのです。つたない説明で大変申し訳ありませんが、どなたかわかる方お教えくださいませ。

  • Excelでお尋ねしたい事があります。

    エクセルのデータを下記のようにするのに 良い方法があれば教えて下さい。    A   B         A   B   C   D  1 AAA 100      1 AAA 100 101 102 2 AAA 101  ⇒   2 BBB 100 101 102 3 AAA 102      3 CCC 100 101 102 4 BBB 100      5 BBB 101 6 BBB 102 7 CCC 100 8 CCC 101 9 CCC 102 A列にある同一のデータを一行にして B列のデータを一行にした列に持っていく作業です。 現在は、A列にある同一データのB列をコピー。 行列を入れ替えて貼り付け。 B列が空いた所を行事削除しています。 このデータが何千とありまして… 延々とコピー、貼り付け、削除。 をしています。 何か良い方法があれば教えて下さい。 よろしくお願いします。

  • テキストファイルのデータをエクセルへコピーのやり方

    よろしくお願いします。 エクセル2000を使っています。 テキストのデータで A1/B1/C1    /はスペースです。 D1/E1/F1    データの長さは全部違います。 A2/B2/C2     D2/E2/F2 A3/B3/C3     D3/E3/F3      ・    ・(続く) といったものがあります。これをエクセルで    A列 B列 C列 D列 E列 1行 A1 B1 C1 D1 E1 2行 A2 B2 C2 D2 E2  ・・・ 3行 A3 B3 C3 D3 E3  (続く)          ・          ・(続く) という感じで別々のセルにいれて貼り付けしたいのです。 テキストデータを別々のセルに貼り付けする方法は 過去ログで「区切り位置」というのをつかえばいいというのはわかりましたが、この場合の複数行にわたるテキストデータをエクセルの1行に貼り付けする方法がわかりません。また、データの長さが違うために「区切り位置」もうまくいきません。 良い解決法をお願いします。

  • EXCEL 関数をふくむ行列の入れ替え

    いまSheet1に3列*2行で A1+A10 B1+B10 C1+C10 A2+A11 B2+B11 C2+C11 といった関数が入っているとして、 別のシートに、この関数から導き出される値の行列を入れ替えた状態で表示したいのですが、どういった方法があるのでしょうか? ちなみに値だけを行列の入れ替えをしたいのではなく、関数を活かしたまま行列を入れ替えたいのですが、一般的な「形式を選択して貼り付け」で行列の入れ替えにチェックをいれても、エラーが返ってきてしまいうまくいきません。 さらに、その別のシート上でSUMなどの関数で縦・横・の集計など計算をしたいのですが・・・ いい方法があったら教えてください。

  • エクセル セル 入れ替え

    例えば、下記のエクセルデータがあります。 商店 月 数量 A  1月  10 A  2月  20 B  1月  30 B  2月  15 C  3月  10 上のデータを下記に並べ替えるにはどうしたらいいでしょうか?   1月  2月  3月 A 10  20  B 30  15 C         10 宜しくお願いします。

  • エクセルの行列方向での並び替え

    エクセルのデータを下記のように並べ替えるのにはどうしたら宜しいのでしょうか?   1  2  3          1  2  3 A 1.23 2.85 1.11    A 2.85 1.23 1.11 B 12.34 15.72 15.57   B 15.72 15.57 12.34 C 16.07 16.99 15.93   C 16.99 16.07 15.93 ・   ・ ・       並び替え→      ・ ・   ・ E 16.94 14.87 13.87           E 16.94 14.87 13.87 上記のように行単位降順の並び替え方法を教えて下さい。 並び替えオプションで列単位として優先されるキー3行については並び替えができますが、データを一括に並び替えしたいのです。  

  • エクセルについて

    エクセルについてお願いします。 A列とB列の列の文字を繋げるにはどうしたら良いでしょうか? A1とB1、A2とB2、A3とB3という感じでA列の文字とB列の文字をくっつけたいです。 A1が「あいうえお」B1が「かきくけこ」だとしたらC1に「あいうえおかきくけこ」という感じです。 行は数百あるので一気にくっつける方法を教えてください。 お願いします。

  • EXCELで指定した範囲の切り取り貼り付け

    Excelで シート1のA1~E1000までデータがあります。 B列には0~1500の数値データがあり昇順で並んでいます。 このB列のデータの700~1000の数値データのA~E列全ての範囲を「切り取り」・シート2に「形式を指定して貼り付け」(値)という作業をマクロにてできませんか? 尚、1つセルが下がるごとに1数字があがるとは限りません。 大変困ってます。詳しい方ご教授ください。

このQ&Aのポイント
  • 障害者雇用で働いている方が支援員に仕事内容を説明したが上手く伝えられず、問題が生じました。
  • 支援員が仕事内容について具体的に理解するために必要な情報を共有することが重要です。
  • フォーマットや使用するツールなど具体的な説明を行い、相手が理解しやすいように工夫しましょう。
回答を見る

専門家に質問してみよう