エクセルで横データを縦に並べ変える方法は?

このQ&Aのポイント
  • エクセルで横データを縦に並べ変える方法について教えてください。
  • マンションのデータを横並びから縦並びに変換する関数が知りたいです。
  • エクセルの並べ替え関数で横データを縦に変換する方法を教えてください。
回答を見る
  • ベストアンサー

エクセルで横データを縦に並べ変えたいです。

すみません。誰か教えて下さい。 下記の様な並べ替えが出来る関数を誰か知りませんか? マンションA 101 107 201 マンションB 202 405 マンションC 102 203 301 501 マンションD 103 201 405 ↓ マンションA 101 マンションA 107 マンションA 201 マンションB 202 マンションB 405 マンションC 102 マンションC 203 マンションC 301 マンションC 501 マンションD 103 マンションD 201 マンションD 405 誰かご存知の方いましたら教えて下さい。

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

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

参考です。 可変データの取り扱いはマクロ(VBA)が簡単です。 データをSheet1、並び替えをSheet2に行います。 (1)Sheet1タブ上で右クリック→コードの表示→以下のサンプルコードを貼り付け→F5キー押下    マクロの削除は貼り付けたコードを全削除して下さい。 サンプルです。 Sub 並び替え() Set st1 = Sheets("sheet1") Set st2 = Sheets("sheet2") For i = 1 To st1.Cells(Rows.Count, 1).End(xlUp).Row For j = 2 To st1.Cells(i, Columns.Count).End(xlToLeft).Column n = n + 1 st2.Cells(n, 1) = st1.Cells(i, 1) st2.Cells(n, 2) = st1.Cells(i, j) Next Next End Sub

nobuwow
質問者

お礼

マクロ・・・。 すごい!! 上記の方法で簡単に出来ました。 感動しました。 ありがとうございます。

その他の回答 (3)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

分かり易く計算に負担のかからない方法は作業列を作って対応することでしょう。 例えば元の表がシート1に有るとしてA1セルには項目名が、A2セルから下方にマンション名のデータが入力されているとして、各マンションでの部屋番号は右横の列に入力されており、仮にG列までに入力されているとします。 そこで作業列としてH列にはH1セルには0と入力し、H2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",COUNT(B$2:G2)) 別のシートのAおよびB列にお求めの表を作成するとしたら別のシートのA2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ROW(A1)>MAX(Sheet1!H:H),"",IF(COUNTIF(Sheet1!H:H,ROW(A1))=1,INDEX(Sheet1!A:A,MATCH(ROW(A1),Sheet1!H:H,0)),INDEX(Sheet1!A:A,MATCH(ROW(A1),Sheet1!H:H,1)+1))) B2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",INDEX(Sheet1!B:G,MATCH(A2,Sheet1!A:A,0),COUNTIF(A$2:A2,A2)))

nobuwow
質問者

お礼

申し訳ございません。 何度か試しましたが、私には使いこなす事ができませんでした。 回答ありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 今仮に、元データリスト中で「マンションA」と入力されているセルが、Sheet1のA1セルであり、並べ替えた結果はSheet2のA列~B列の2行目以下に表示するものとし、部屋番号は全て数詞のみで表されており、「A101」等の様な文字が含まれた部屋は無いものとした場合には、次の様な方法があります。  まず、Sheet2のA1セルに次の数式を入力して下さい。 =Sheet1!$A$1  次に、Sheet2のA2セルに次の数式を入力して下さい。 =IF(ROWS($2:2)>COUNT(OFFSET(Sheet1!$1:$1,1,,MATCH("゛",Sheet1!$A:$A,-1)-ROW(Sheet1!$A$1))),"",INDEX(Sheet1!$A:$A,MATCH(A1,Sheet1!$A:$A,0)+(COUNTIF(A$1:A1,A1)>=COUNT(OFFSET(Sheet1!$1:$1,MATCH(A1,Sheet1!$A:$A,0)-ROW(Sheet1!$A$1),)))))  次に、Sheet2のB2セルに次の数式を入力して下さい。 =IF($A2="","",SMALL(OFFSET(Sheet1!$1:$1,MATCH($A2,Sheet1!$A:$A,0)-ROW(Sheet1!$A$1),),COUNTIF($A$1:$A2,$A2)))  次に、Sheet2のA2~B2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  以上です。

nobuwow
質問者

お礼

とても参考になりました。 ありがとうございました。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

コピー  して、  張り付ける  際に、  単なる  張り付け  をせずに、 「形式を選択して張り付ける」 を行います。 その際の オプションで  行列を入れ替える  を指定します。

nobuwow
質問者

補足

こちらの方法ですと列が増えてしまうので、列は2列で縦にデータをつなげていきたいのですが・・・? わかりずらい説明で申し訳ございません。

関連するQ&A

  • エクセル縦に入ったデータを横に…

    例えばエクセルに以下のようにA 1~A4まで数字が入っていたとして   A 1 ■ 2 ○ 3 × 4 ▲ 以下のよう(A1~D1)にしたいのですが  A  B  C  D 1 ■ ○ × ▲ すぐに出来るような関数などはありませんか? データ数多く簡単に出来る方法を探しております。 よろしくお願いします。

  • エクセル2003 横のデータを縦に並べたいです。

    以前にも同じような質問をされている方がいるかもしれませんが、 どなたかお知恵をお貸しください。 関数を使用して処理したいと考えております。 下記にファイルの一部を抜粋致しましたので、 ご教授のほど宜しくお願い致します。 現在の形    A      B      C      D      E 1 SHIRTS カラー黒  サイズ38  サイズ39  サイズ40 上記のような形で4000行くらいあります。 列は最長でABまで使用しております。 上記のようなデータを下記のような形に並べ替えたいと思っております。 希望の形    A      B      C 1 SHIRTS カラー黒 サイズ38  2 SHIRTS カラー黒 サイズ39 3 SHIRTS カラー黒 サイズ40 サイズの展開を横表示から縦表示に変更したいのです。 素人質問で申し訳ありませんが、どなたか宜しくお願い致します。

  • エクセルの横データを自動的に縦データに表したいです

    エクセルで以下のような入力をしたいと思っていますが、いい方法が見つからず困っています。「形式を選択して貼り付け」では上手くいきません。 (sheet1)    A     B     C     D 1   100   300   200   500 2 3      ↓ (sheet2)   A      B    C    D 1      100    2      300    3       200 4       500    と言う感じにsheet1で入力したデータを自動的にsheet2に入力できるようにしたいと思っています(sheet2の数値はB列に入っていると見てください)どうすれば良いでしょうか?何か関数を利用してこういうことはできるのでしょうか?よろしくお願いします

  • エクセルで縦に並んだデータを横に並び替えたい

    エクセルで↓ のようなデータがあります  | A | B | C | D 1|A店|りんご| 2 | 2|A店|みかん| 3 | 3|A店|バナナ| 4 | 4|B店|りんご| 3 | 5|B店|バナナ| 2 | これを以下のようなかたちにしたいのですが、一つずつ移動する以外に方法はありますか?  | A | B | C | D | E | F | G | 1|A店|りんご| 2 |みかん| 3 |バナナ| 4 | 2|B店|りんご| 3 |バナナ| 2 | 100以上データがあり、手作業で移すのは大変です。 ちなみにVBAなどはほとんど理解できません。 何か解決策があればと質問させていただきたました。 よろしくお願いします。

  • ★★エクセル 縦の表を横に表示したい★★

    お世話になります。 エクセル表で シート1に NO コード  名称 が縦にあります。 1  A あ 2 B     い 3 C     う シート2に B1 C1 D1 1 2 3 B2 C2 D2 A B C B3 C3 D3 あ  い う    と表示したいのです。 良いは関数はありますか? よろしくお願いします。

  • エクセル 縦列に並ぶデータを横に並べる

    いつもお世話になります。下のような既存の表があります。IDがあり各IDごとにデータが入っています。各IDにあるデータの数は不規則です。(多くても10個くらいまでです。)簡単に書くとこんな感じです。  |A |B |C |D |E | 1|ID|No. |  |←タイトル行 2|T1|11|  | 3|T1|15|  | 4|T1|17|  | 5|T2|13|  | 6|T2|16|  | 7|T3|14|  | ・ ・ ・ これをそれぞれのIDにあわせて横に並べ,これに枠をつけて印刷したいと思います。  |A |B |C |D | 1|ID|No. |  |  | 2|T1|11|15|17| 3|T2|13|16|  | 4|T3|14|  |  | ・ ・ ・ この並べ替えを,作業列や作業用シートは作ってもいいので,関数で実現したいと思います。良い知恵をお借りできたら幸いです。よろしくお願いします。

  • エクセル2003で横に並んだデータを縦に並べたい

    エクセル2003で最終的には簡単なデータベースを作りたいのですが、 現在の形を変えないと希望しているデータが取れないそうです。データ量が多い為、 一括処理してくれるようなマクロもしくはVBAを希望しております。 下記に具体的なデータを記載しますので、どうかお知恵をお貸し下さい。 よろしくお願い致します。 ○現在の形 A1: (名前) A2: 太郎 B2: 12月90点 C2: 11月34点 D2: 10月54点 A3: 花子 B3: 12月39点 A4: 健介 B4: 12月100点 C4: 11月75点 A5: 二郎 B5: 12月45点 C5: 11月47点 D5: 10月33点 E5: 9月76点 ・・・ A6: 美佐子 B6: 12月22点 ・・・・以下3000行ぐらいあります。またB列以降の列は最大でも30列ぐらいまであります。 ↓希望している形 A1: (名前) B1: (点数一覧) A2: 太郎 B2: 12月90点 A3: 太郎 B3: 11月34点 A4: 太郎 B4: 10月54点 A5: 花子 B5: 12月39点 A6: 健介 B6: 12月100点 A7: 健介 B7: 11月75点 A8: 二郎 B8: 12月45点 A9: 二郎 B9: 11月47点 A10: 二郎 B10: 10月33点 A11: 二郎 B11: 9月76点 A12: 美佐子 B12: 12月22点 ・・・・と並べたいのです。

  • エクセルの表作成(横のデータを縦にしたい)

    こんにちは、いつもお世話になっております。 エクセルの表作成で困っています。  A B C  D E F G H I ・・・ 1 7 ○ 東京 A 1 B 2 C 1 ・・・ 2 5 △ 札幌  C 5 B 8 D 6 3 このようなデータがあり、これを別シートに転記(数式でリンクを貼りたい)を したいのですが、 A~Cは固定で、DEがセット、FGがセット・・・といった感じで 横になっているものを縦にしたいのです。 (解かりにくくて申し訳ありません) ↓  A B C  D E F G H I 1 7 ○ 東京 A 1 2 7 ○ 東京 B 2 3 7 ○ 東京 C 1 4 5 △ 札幌 C 5 6 5 △ 札幌 B 8 (具体的にはD~のデータは9セットあります) 一個分のデータの数式は組めたのですが、(=でつないでるだけです) 縦にもデータがいくつもあり、(MAX200程度ですが) オートフィルで上手く数式をコピーすることが出来ません。 マクロは使用不可なので、何とか関数で上手く作成ができないものか 悩んでおります。 どうか、お知恵を拝借できれば幸いです。 どうぞよろしくお願いいたします。

  • 縦と横を入れ替える関数ってありますか?

    「形式を選択して貼り付け」で「行列を入れ替える」以外に関数で縦と横のデータを 入れ替える方法ってありますか? 上の段を入れたら自動的に入れ替わるようにしたいんです。 A5に=A1、A6に=B1、A7に=C1、A8に=D1、A9に=E1と入れて A5からA9まではコピーしてB5に貼り付けしたら「かきくけこ」にしたいのに、 「いうえお0」になってしまいました。 $マークをうまく使えばできるのでしょうか? すみませんが、わかる方いたら教えてください。 表がずれてわかりにくくてすみません。  A  B  C  D   E 1 あ い う え お 2 か き く け こ 3 さ し す せ そ 4 5 あ か さ 6 い き し 7 う く  す 8 え け せ 9 お こ そ

  • エクセルで複数条件のデータ個数を出したい

    仕事で電話アンケートの結果データを集計したいのですが、関数が分かりません。 エクセルのSheet1で下記のようなリストを作成しました。 日付 回答 6/28  A 6/28  B 6/29  A 6/28  A 6/30  A 6/29  C 6/30  D 6/28  C sheet2に下記のような集計をしたいのです。  6/28 6/29 6/30 A B C D 6/28の回答でAのデータはいくつというのは どのような関数を使えばよいのでしょうか? よろしくお願いします。

専門家に質問してみよう