• ベストアンサー

エクセルで列を複数行にしたいのですが

注文表を商品ごとに集計したいのですが、商品名・数が列の入っています。これを縦にして集計しようと思っているのですが、列を行する方法を教えてください。 エクセルの表で列A・Bを共通にして列C・Dを次の行に、そして列E・Fを次の行にとしたいのですが、教えてください。 列A 列B   列C  列D 列E 列F 001 ○○会社 商品A 10  商品F 14 001 ○○会社 商品C 11  商品A 20 005 ××会社 商品D 32  商品C 25 これを 列A 列B   列C  列D 列E 列F 001 ○○会社 商品A 10  001 ○○会社 商品F 14  001 ○○会社 商品C 11  001 ○○会社 商品A 20  005 ××会社 商品D 32  005 ××会社 商品C 25 よろしくお願いいたします。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

マクロでやる方法です。Sheet1に元の表があって、Sheet2に並べ替えた表を作成します。 Alt+F11でVBAの画面を表示し、「挿入」>「標準モジュール」を選択して、右の画面に以下のマクロをコピーして貼り付けてください。 マクロ中に出てくる"Sheet1"、"Sheet2"が実際のシート名と違ったら書き換えてください。 Sub 並び替え()  Dim WS1 As Worksheet, WS2 As Worksheet  Dim FromRow As Integer, FromCol As Integer  Dim ToRow As Integer    Set WS1 = Worksheets("Sheet1") '元の表があるシート  Set WS2 = Worksheets("Sheet2") '表を並べ替えて転記するシート  WS2.Cells.ClearContents  For FromRow = 1 To WS1.Cells(Rows.Count, 1).End(xlUp).Row   For FromCol = 3 To WS1.Cells(FromRow, Columns.Count).End(xlToLeft).Column Step 2    ToRow = ToRow + 1    WS1.Cells(FromRow, 1).Resize(1, 2).Copy WS2.Cells(ToRow, 1)    WS1.Cells(FromRow, FromCol).Resize(1, 2).Copy WS2.Cells(ToRow, 3)   Next  Next End Sub その画面でF5キーを押すか、F11でExcelの画面に戻ってAlt+F8からマクロを実行してみてください。表が4列ずつになってSheet2に転記されているはずです。 うまく動かない、あるいは意図したのと異なる動作をする場合は補足をお願いします。

risa5555
質問者

お礼

ちゃんと転記されました。 マクロ勉強します。 どうもありがとうございました。

その他の回答 (2)

noname#95859
noname#95859
回答No.3

難しく考えないで、こんなのはどうでしょう。 現在ある表をヘッダー部分を除いて、そのまま、コピーして、表の下に付け足し、 付け足した部分のC列、D列の部分に、E列、F列を移動させます。 その上で、A列、B列でソートする。 しかし、このままでは、要求の順番は達成できていません。補助の符号を用意します。 G列に順番を振っておきます。コピーしたものにも同じ番号をつけておきます。 ソートをA列、B列、G列でやれば、目標を達成できます。 手順 (1)G列に通し番号を与える。 (2)A2:G4をコピー、A5をクリックして、ペーストする (3)E列、F列を左に移動させる。E5:F7をドラッグ。 (C列、D列に持ってくるのです) (4)全セルを選択 (5)列A,列B,列Gの優先順序でソートする (6)不要な情報(列E,列F,列G)を削除する 原始的では在りますが、結構手軽だと思います。

risa5555
質問者

お礼

このようなやり方あるんですね、参考になりました。 ありがとうございました。

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

質問の表現が不完全。全てB+cとE+Fの2組しかないなら、少し簡単だが、実情はそうではないでしょう。 結構難しい。VBA向きの問題ですね。 簡単のため例データA2:E4に aa x y z u bb s t cc f g h ・・・ とする。 作業列をG列として G1に =COUNTA(B1:F1) と入れてG4まで式を複写 結果 0 4 6 9 累積値が出せる。 もうひとつ作業列をJ列に =MATCH(ROW()-1,$G$1:$G$100,1) と入れてG列の最大値9行まで式を複写する。 J列は 1 1 1 1 2 2 3 3 3 となる ーー K1に =OFFSET($A$2,J1-1,0)と入れて第9行まで式を複写。 L1に =OFFSET($B$2,J1-1,COUNTIF($J$1:J1,J1)-1) といれて第9行まで式を複写。 結果 aa x aa y aa z aa u bb s bb t cc f cc g cc h となる。 商品と数量のペアになった質問の場合は少し修正が必要ですが、息切れしてここまでにします。

risa5555
質問者

お礼

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

関連するQ&A

  • エクセル 複数行ある同一商品を1行にまとめるには?

    同一内容が入力された複数行の合計を出す方法を教えてください。     エクセルの表でA列に商品名、B列に色の種類、C列~E列にサイズごとの個数がある、まったく同じ商品が、複数行にランダムに掲載されています。 A列、B列で同一の情報を持つ商品について、C列~E列のサイズごとの合計を出したいのです。 例)商品名、色、サイズ個数(C列:Sサイズ、D列:Mサイズ、E列:Lサイズの順です。) A1:Tシャツ B1:ホワイト C1:5 D1:4 E1:3   A2:Tシャツ B2:ブラック C2:3 D2:5 E2:5 A3: Tシャツ B2:ホワイト C3:3 D3:3 E3:2 A4: Tシャツ B2:ブラック C4:3 D4:2 E4:3 各商品が300行程あり、オートサムではやりきれません。 すべての各商品(A列、B列が一致するもの)を1行ごとにまとめたシートを作成するにはどうしたら良いでしょうか?

  • エクセルで複数の同じ列に文字がある行をまとめる

    エクセル2007です。 エクセルに300行のデータがあります。 各行には複数の列に文字がありますが全て同じ列に文字があるわけではありません。 1行にはA,B,D,K 2行にはC,S,T 3行にはB,C,K,N 4行にはD,F,G,O,P のように文字が入っていますがまったく同じ列に文字が入っている行があり、同じ列に文字が入っている行をまとめる事は可能でしょうか? 例えば 1行のA,B,D,Kと同じ列に文字の入っている他の行を2行目から続けて表示し、そのグループが終われば2行のグループが続くと言う具合です。 1行目のグループが最初で2行目のグループが2番目に来る必要はなくグループ分けが出来れば目的達成です。 具体的には色使い表があり行には製品番号、列には各色が表記されており個別の商品に使われている色の列に文字は入っています。 違う商品で同じ色使いがある物も多数あるのですが同じ色使いの商品をグループとしてまとめたいと言う希望があります。 素人でこの事が可能かどうかもわかりません。 いろいろ探しましたが答えが見つかりませんでしたのでお尋ねします。 以上宜しくお願い致します。

  • エクセルの集計機能を横方向(列)に展開することはできないか?

     生産管理部門で働いている者ですが、最近、製造部門のモデル切替が多く、出庫表を作成する上で集計機能を使っています。   A       B    C  D  E 1モデル名  番号   台数 2 A1    001  100 3 B1    001   80 4 C2    001   55         001計 235 5 A2    003   70 6 B1    003   30 7 D2    003   45 8 E1    003  100 9       003計 245  こんな感じで番号フィールドを基準として台数列を合計して、集計行を挿入していますが、縦向きの表にはこれで十分対応できるのですが、たまに横長の表を扱わねばならない時があり、集計機能が使えないので、困っています。  集計機能は横方向(列方向)には使用できないのでしょうか?  モデルによっては対象でないものもあり、空白のままでも縦方向の集計には影響しないのですが、横方向でこれをやりたいのですが、関数しか無理でしょうか?  自動的に集計行が挿入されるので便利な機能で重宝していますが、横方向の集計は出来ませんか?  自動的に集計列を挿入してくれると、セル番地のズレ等も気にしなくて済むのですが。   A     B   C   D   E 1モデル名  A1   B1  C2  集計列 2 番号  001  001 001 001計 3 台数  100   80  55  235 4 5 と、こんな感じにしたいのですが、方法はありませんか?教えて下さい。

  • Excel 2007 1列のデータを1行にしたい

    いつもお世話になっています. 早速質問なんですが A B C D E F G 1 あ 2 い 3 う 4 え 5 お 6 か のような あ~か を A B C D E F G 1 あ い う え お か 2  3  4  5  6  みたいにしたいのですがやり方が分かりません. 2*2以上のデータを入れ替える方法はWeb上にあるのですが,1列のみを1行に変換する方法が載ってません.誰か教えてください.宜しくお願い致します.

  • エクセルの行と列の項目を入れ替えたいのですが

    大きな表を作成しているのですが、行(1、2、3・・)と列(A,B,C,D・・・)を入れかえる必要がでてきました。すなわち、行を現在の列である(A,B,C,D・・・)とし、列を現在の行である(1、2、3、・・・)にしたいのです。こつこつデータを打ち直すしか方法はないのでしょうか?どなたか教えてください。お願い致します。

  • excel  複数行をまとめる 一括変換

    データ整理で困っております。 皆様のお知恵を拝借したくお願いいたします。 EXCELシートで次のようなデータがあります。   A B C D E F G H I J K 1 1 あ い 2  う え 3  お か 4  き く 5  け こ 列はA,B,Cのみにデータがあります。 行は1~5にあります。 A1は連番で数字があります。 この5行のデータが400近くあります。(約2,000行) このシートが10ほど存在します。 これらのシートを次のように1行に変換したいのです。   A B C D E F G H I J K 1 1 あ い う え お か き く け こ 2  3  4  5  行2~5はブランクのままでもかまいません。 何卒よろしくお願いいたします。

  • Excelで、行の組み換えについて

    A列からG列までデータが入っているリストがあるのですが、 例えば、1行目から50行目までと、51行目から100行目までを交互に組み入れるには どのようにすればよいでしょうか。   A B C D E F G 1 2 3 ・ ・ ・ 51 52 53 ・ ・ ・ といったものを、   A B C D E F G 1 51 2 52 3 53 ・ ・ ・ のようにしたいのですが、一気に操作できる方法があれば 教えていただきたく、よろしくお願いいたします。

  • エクセル:複数セルからの参照

    お世話になります。 A,B,C列にデータが入っています。 D,E,F列に参照のためのデータがあります。 A,B,C列はそれぞれD,E,F列に対応しています。 A,B,C列と同じ並びのデータが入っている行をD,E,F列から探し、その隣のG列の値をH列に返す。 D,E,F列の並びが重複する行はありません。 A,D列は場所の名前、B,C,E,F列には数字が入っている。 例) A1に事務室 B1に20 C1に3 が入っているとする。 D/E/F列が 事務室/20/3 の並びになっているのが10行目の場合、H1にG10のセルの値を返す。 この場合、H列にはどんな計算式を入れておけばよいのでしょうか? A,B,C列と同じ並びのデータがD,E,F列で見つからない場合は空白をH列に返す。 ちなみにD/E/F列が 事務室/20/3 の並びになっている行は10行目しかないです。 よろしくお願いします。

  • 2行目で数字が入っている列までを1行目で計出したい

    エクセルで質問です。 下記の状態で、F1に、2行目で数字が入力されている列までを1行目で 合計額を出したいです。 計算式はありますか??? 例えばで、下記の例でいうと、「28」を自動集計したいです。 それでいて、次回C2に数字を入れた場合、F1を「34」となるように したいのです。         A  B  C  D  E F         1月  2月  3月  4月  5月 合計 1行目 H25  10  18  6  25   30 「28」 2行目 H26   4  40          44 どなたかわかる方、教えてください。 よろしくお願いします。

  • エクセルの複数行の文字列を…

    エクセルに箇条書きにされている文字列を一つのセルにまとめたいのですが簡単な方法はありますか? 状態と致しまして、1カテゴリ 1.A欄に1行の文字列 2.B欄に3行の文字列 3.C欄に5行の文字列 4.D欄に3行の文字列 5.E欄に空欄 6.F欄に3行の文字列 上記内容は例となりますのでこの限りではありません。 この状態でA~Fの欄を1行にしたいのですが? 罫線で区切られカテゴリは複数あります。 内容がばらばらなので行が固定していません。 簡単に出来る方法を教えて下さい。

専門家に質問してみよう