• ベストアンサー

上級者の方教えてください。エクセル 縦に連なるデータを横の表に作り変えたい

初心者なので何を読んでも分かりませんでした。 簡単な方法を教えてください。 縦に、 A列に、 (1)名前 A 3行空白 (2)コードB (3)特徴 C 4行空白 (1)名前 D 3行空白 (2)コードE (3)特徴 F 4行空白 (1)名前 G 3行空白 (2)コードH (3)特徴 I ・ ・ のように並んでいます。 全ての空白を除いて、 横に         A  B  C   名前AコードB特徴C   名前DコードE特徴F   名前GコードH特徴I    ・    ・ のような表に作り変えたいと思いますが、 どうしたら良いでしょうか? 仕事で何時間もかかって入力が嫌になります、よろしくお願いいたします。

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

  • ベストアンサー
回答No.4

上級者に答えを求めるのに上級者なりの答えを欲しいのじゃないのですね。いや、そんなことを言う私が初心者なのか。。。 同一シートにご質問のような結果を求めるにはVBA(Excelのためのプログラム言語)を使う必要があり、かなり敷居が高いものだと思われます。 よって、数式による回答になるので別の列に表示することになります C1:E1セル範囲に表示することとします C1セル =INDEX($A:$A,ROW()*10-10+1)&"" D1セル =INDEX($A:$A,ROW()*10-10+5)&"" E1セル =INDEX($A:$A,ROW()*10-10+6)&"" C1:E1セル範囲を選択して下へオートフィル コピー & 値の貼り付け A:B列削除 参考まで # 蛇足 # C1:E1セルをC1セルから選択して # =INDEX($A:$A,ROW()*10-10+{1,5,6})&"" # [Ctrl]+[Shift] +[Enter] で確定、 # そのまま下へオートフィル

gluwun
質問者

お礼

ありがとうございました。 おかげさまで仕事がはかどります。 丁寧な表までつけていただき分かりやすかったです。

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

その他の回答 (6)

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

No6です。シート2に表示させる予定の式を同じシート1に表示させる式になっていました。ごめんなさい。 シート1の例えばE1セルに同じ式を入力してオートフィルドラッグしても同じ結果になります。

gluwun
質問者

お礼

複雑すぎてさっぱり意味不明ですが、 すごいです! 簡単に出来てしまいました。 何時間もかかっていたのに助かりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

シート1のA1セルに名前Aが入力され、下方にデータがあるとします。 シート2のA1セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(COLUMN(A1)>3,COUNTA($A:$A)/3<ROW(A1)),"",INDEX($A:$A,IF(COLUMN(A1)=1,(ROW(A1)-1)*10+1,IF(COLUMN(A1)=2,(ROW(A1)-1)*10+5,IF(COLUMN(A1)=3,(ROW(A1)-1)*10+6,"")))))

gluwun
質問者

お礼

ありがとうございました。 内容は?ですがなぜだか出来ました。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! 上級者ではありませんが・・・ ↓の画像でSheet1のデータをSheet2にまとめるようにしてみました。 配列数式になってしまいますので、この画面からコピー&ペーストしただけではエラーになると思います。 Sheet2のA2セルに貼り付け後、F2キーを押す、又はA2セルをダブルクリック、又は数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrl+Enterキーで確定してください。 数式の前後に{ }マークが入り配列数式になります。 Sheet2のA2セルは =IF(COUNTIF(Sheet1!$A$1:$A$1000,A$1&"*")<ROW(A1),"",INDEX(Sheet1!$A$1:$A$1000,SMALL(IF(ISNUMBER(FIND(A$1,Sheet1!$A$1:$A$1000)),ROW($A$1:$A$1000)),ROW(A1)))) としてShift+Ctrl+Enterキーです。 これを列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 以上、参考になれば良いのですが 他に良い方法があれば読み流してくださいね。m(__)m

gluwun
質問者

お礼

大変丁寧な説明をしていただきありがとうございます! 試してみたのですけどうまくいきませんでした。 たぶんわたしの技術がおいつかないのだと思います。 ありがとうございました。

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

元のデータがA列にあって,その横に並べるならBCD列になりますね。 >簡単な方法 B1セルに,次の式を =INDEX($A:$A,SMALL(IF($A$1:$A$999<>"",ROW($A$1:$A$999),9999),3*ROW(A1)-3+COLUMN(A1)))&"" この画面からコピーして数式バーの中に貼り付け,さらにコントロールキーとシフトキーを押しながらEnterで入力します。 B1をコピーしてC1とD1に貼り付けます 更にB1:D1を下向けにつるつるっとオートフィルドラッグでコピーします。 数式をちょっと触ってみたあとも,必ず「「「「コントロールキーとシフトキーを押しながらEnter」」」」でまた入力することを絶対忘れないようにしてください。 式の意味は考えないで構いません。コピーするだけなら簡単にできますね?

gluwun
質問者

お礼

ご返答いただきましてありがとうございます。 何度か試してみたのですが、 私には難しかったみたいです。 でも、お答えいただきありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

抜けてました。 ・・・形式を選択してコピーを選択して・・・です。

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

単純に矩形選択してコピー(Ctrl+C)、別のシートか別の場所で一個だけセルを右クリックする。コンテキストメニュー(その場面で可能な処理のメニュー)が出ますから、下の行と列を入れ替えるをチェックして貼り付ける。  そのご、不要な行なり列を(行番号、列番号をクリックして選択)まとめて削除する。  これが一番わかりやすいかと

gluwun
質問者

お礼

一番最初に返答していただきまして ありがとうございました。

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

関連するQ&A

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

    こんにちは、いつもお世話になっております。 エクセルの表作成で困っています。  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程度ですが) オートフィルで上手く数式をコピーすることが出来ません。 マクロは使用不可なので、何とか関数で上手く作成ができないものか 悩んでおります。 どうか、お知恵を拝借できれば幸いです。 どうぞよろしくお願いいたします。

  • 縦に並んでいる表をマクロで横に並び替えたい。

    以下のような縦に並んだ表を、 (A列には、日付/NO、B列には文字列が入力されています。)    A      B  ------------- 1 │ 10月1日   2 │NO      3 │1      A 4 │2      B 5 │3      C 6 │10月2日 7 │NO 8 │1      D 9 │2      E 10│3      F 11│4      G 12│5      H 13│10月3日 14│1       I 15│2       J 16│10月4日 17│・      ・ 18│・      ・ 19│・      ・ 20│・      ・ 以下のように横に並び替えたい。    A      B    C     D    E     F     G ----------------------------------------------------------------- 1 │ 10月1日     10月2日      10月3日      10月4日 ・・・・   2 │NO         NO          NO          NO       3 │1      A   1      D    1      I 4 │2      B   2      E    2      J 5 │3      C   3      F 6 │           4      G 7 │           5      H 8 │      9 │ 日付ごとに項目数が異なるので、 どのようにマクロを組めばいいのか分からず困っております。。 ご回答よろしくお願い致します><!

  • エクセルでの縦グループを横グループに並べ替える方法

    次のような表があります(Pフォントの影響で列幅がずれています)。 縦に3行分が一つのグループであり、1行分のスペースを空けて 再び3行分のグループが繰り返しあります。 このようなデータグループが縦に500件以上あります。 │ A │ B │ C │ D │ E │ F │ G │ H 1│a1 │ │ │ │ │ │ │ 2│a2 │ │ │ │ │ │ │ 3│a3 │ │ │ │ │ │ │ 4│ │ │ │ │ │ │ │ 5│b1 │ │ │ │ │ │ │ 6│b2 │ │ │ │ │ │ │ 7│b3 │ │ │ │ │ │ │ これを下表のように横に並べ替えたいのです。 件数が多く、ハンドで一つ一つを並べ替えるのは困難なので、 何とか簡単に実現する方法を知りたいのです。 │ A │ B │ C │ D │ E │ F │ G │ H 1│ a1 │ a2 │ a3 │ │ │ │ │ 2│ b1 │ b2 │ b3 │ │ │ │ │ 3│ │ │ │ │ │ │ │ 4│ │ │ │ │ │ │ │ 5│ │ │ │ │ │ │ │ 6│ │ │ │ │ │ │ │ 7│ │ │ │ │ │ │ │ 皆様、何とかお知恵をお貸しください。 よろしくお願いいたします。

  • エクセル 縦方向に並んでるデータを、横方向に並べたい

    例) シート1に以下のデータがあります。   A  B C D  名前 日付 点 評価 1 山田 3/18 90 A 2 山田 3/20 65 B 3 佐藤 2/28 40 D 4 佐藤 3/11 90 A 5 佐藤 3/13 85 A . . これをシート2に、   A  B C D E F G H I J 1 山田 3/18 90 A 3/20 65 B 2 佐藤 2/28 40 D 3/11 90 A 3/13 85 A・・・・ . . というように名前を元に時系列にして横に並び替えたいのです。 リアルタイムに更新するわけではないので、作業が複数回に わかれてもかまいません。 変換元の横列の項目は4項目(名前・日付・点・評価)のみですが、 縦列の同じ名前の件数は最大で20件ほどあり、これからも増えます。 何かよい方法はありますでしょうか?

  • エクセルVBA/抽出・貼付け

    下記を行いたいのですが、どのようなコードになるのでしょうか? シート001(入力用) (1)A1~A50、B1~B50、C1~C50、D1~D50  に数値、E1~E50に文字列 (2)F1~F50、G1~G50、H1~H50、I1~I50  に数値、J1~J50に文字列 ※空白行混在 シート002(計算用) シート001に作ったコマンドボタン:クリックにより、 シート002を表示させ、A1~E100に、 シート(1)のA1~E50とF1~J50の空白行以外を連続して 反映させたい。並べ替え用など別シートを用いずに、 VBAコード内で処理したい。

  • エクセル データ並び変換(縦から横) 不要行削除

    同一キーに属する複数データが縦並び(行)になっているのを横並び(列)に直して、下段の データを行ごと削除したいのですが、どのような方法が考えられますでしょうか? キーの数は不特定で空白行はありません。データはキーも含めて、全て文字列です。 発想が貧困なもので、何から手を付けて良いかわかりません。お手数ですが、ご教示ください。   A  B  C 1  x  a 2  x  b 3  y  c 4  y  d 5  z  e 6  z  f ・ ・ ・ 199 200 ・ ↓   A  B  C 1  x  a  b 2  y  c  d 3  z  e  f ・ ・ ・ 99 100 ・

  • エクセルのデータ並び替え

    列(A)に1000個あるデータを、4列X250行に自動的に並び替える方法はありますか? つまり A   A B C D B   E F G H C ⇒ I J K L D   M N O P E   ・ ・ ・ ・ ・ ・ ・ と、並べかえたいのですが、いい方法はありませんでしょうか?

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

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

  • VBAで重複しないデータを1列縦に並べたいです。

    下記の様にC,E,G,Iに文字(主に地名)を入力した後にVBAでA列に重複しない文字だけ縦に並べて行きたいのですがご教授頂けませんでしょうか。 B,D,F,H,Iは備考として自由記入したいので対象外にしたいです。 説明が難しいのですがA1から横に検索し重複しない文字や数字のみA列上から詰めて転記するイメージとなります。度々入力値が変更される事もあるので実行ボタンを設置してVBAで処理出来たら助かります。どうぞ宜しくお願い致します。 A, B, C, D, E, F, G, H, I, j 111 111 222 111 333 222 111 111 222 444 333 666 555 333 777 444 999 222 333 888 666 555 777 999 888

  • エクセル 3列おきに列を挿入したい

    いつもお世話になります。 1行目に営業所コードがあり、そのコードを3列おきに表示するにはどうしたらいいでしょうか。   A  B  C  D  E  F  G  H  I  J   2   3   4   5   7   8  11  12  14  15              ↓   A  B  C  D  E  F  G  H  I  J   2          3         4         5 営業所コードは2~150の数字で、100ほどの営業所コードが存在します。 よろしくお願いします。

専門家に質問してみよう