エクセルのデータの並べ変え方法とは?

このQ&Aのポイント
  • エクセルでデータを縦積みから横積みに変換する方法を教えてください。
  • 靴の通販ショップで使用する在庫データの形式を変換する方法を教えてください。
  • エクセルのデータの並べ替えに困っています。どなたか方法を教えてください。
回答を見る
  • ベストアンサー

エクセルのデータの並べ変えについて

エクセルで以下のように並んでいるデータを(空欄はセルの区切りとお考えください) 型番  カラー    25 26 27(※サイズごとの在庫個数) A    RED     1  3  4 A    WHITE    3  2  3 B    RED      1  3  4 B    WHITE    3  2  3 ・ ・ 以下のように縦積みに直したいと思うのですが A  RED   25  1 A  RED   26  3 A  RED  27  4 A  WHITE   25  1 A  WHITE  26  3 A  WHITE  27  4  B  RED   25  1 ・ ・ どなたか、方法がお分かりの方はいらっしゃいますでしょうか? ※靴の通販ショップを運営しておりまして、取引先から頂く在庫データを 管理システムのCSVの形式に直せないと 膨大な時間がかかるので困っております。 泥臭い方法でも結構でございますので、お知恵をお借りしたいです。

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

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

複雑な条件がなければ G2セル 1 H2セル =INDEX(A:A,($G2+5)/3) I2セル =INDEX(B:B,($G2+5)/3) J2セル =INDEX($C$1:$E$1,MOD(G2-1,3)+1) をふまえて K2セル =INDEX(C:E,(G2+5)/3,1+MOD(G2-1,3)) G2:K2セルを選択して下へオートフィル データ数の処理は考えていません

yaruri
質問者

お礼

できましたー。(涙) これで、作業が100分の1位で済みます。。 $G2+5など、素敵美しい式ですね。 無理だと思っていたのでホント感激です。 ありがとうございました。

その他の回答 (2)

noname#204879
noname#204879
回答No.3

添付図参照 Sheet2!D1: =INDEX(Sheet1!C$2:E$100,SUMPRODUCT((Sheet1!A$2:A$100=A1)*(Sheet1!B$2:B$100=B1)*ROW(Sheet1!A$2:A$100))-1,MATCH(C1,Sheet1!C$1:E$1,0))

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! VBAでの方法になりますが、一例です。 Sheet1のデータをSheet2に表示するようにしてみました。 画面左下のある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j, k As Long Dim ws1, ws2 As Worksheet Set ws1 = Worksheets("sheet1") '←Sheet名は適宜変更してください。 Set ws2 = Worksheets("sheet2") '←こちらのSheet名も適宜変更 With ws2.Cells(1, 1) .Value = ws1.Cells(1, 1) .Offset(, 1) = ws1.Cells(1, 2) .Offset(, 2) = "サイズ" .Offset(, 3) = "在庫数" End With i = ws2.Cells(Rows.Count, 1).End(xlUp).Row If i > 1 Then ws2.Rows(2 & ":" & i).ClearContents End If k = ws1.Cells(1, Columns.Count).End(xlToLeft).Column For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row For j = 3 To k With ws2.Cells(Rows.Count, 1).End(xlUp).Offset(1) .Value = ws1.Cells(i, 1) .Offset(, 1) = ws1.Cells(i, 2) .Offset(, 2) = ws1.Cells(1, j) .Offset(, 3) = ws1.Cells(i, j) End With Next j Next i End Sub 'この行まで こんな感じではどうでしょうか?m(__)m

yaruri
質問者

お礼

できました!! マクロできませんが、コード見て やっていることが大体理解できました。 使わせて頂きます。 ありがとうございます。

関連するQ&A

  • エクセル 在庫表:異なるシートでマッチング

    エクセルの在庫表から、在庫総額を出したいのですが、 在庫数と価格とが別のシートになってしまっています。 マッチングをして、在庫金額を出したいのですが どのような方法があるのでしょうか。 価格 と言うシートのデータが以下の通りだとします。 A1:Tシャツ      B1:1500円 A2:タンクトップ    B2: 1000円 個数と言うシートのデータが以下の通りだとします。 A1:Tシャツ    B1:赤   C1:100個 A2:Tシャツ    B2:青   C2:200個 A3:タンクトップ  B3:白   C3:250個 個数と言うシートのD列に、価格シートの単価を それぞれにマッチングさせて入れたいと思います。 逆に、個数シートA列の情報が同じ商品の個数総計を 価格シートに入れ込む形でも良いのです。 同じ商品でも、カラーごとの在庫管理になっていますが、 最終的に知りたいのは在庫の総額なので、 商品や色ごとの在庫価格は不要です。 総額まで計算できればありがたいですが、とりあえず データがマッチングできさえすれば、表内の総額計算程度ならできます。 よろしくお願いいたします。

  • excel エクセルで文字列を反転したい

    EXCEL2003を使っています。 CSVではきだした膨大なデータの文字列が横に出てくるので、それを縦にしたいのですが、 どうすればいいのでしょうか。 例えば、 A B 6 4 4 4 7 7 5 4 3 2 4 4 8 6 6 3 このように出てきたデータを、 A 6 4 7 5 3 4 8 6 B 4 4 7 4 2 4 6 3 このようにしたいのですが、何かいい方法はないでしょうか、 現状、手打ちで変えているのですが、これをやっているだけで日が暮れそうなので、 ご教授いただければ、大変助かります。 よろしくお願いします。

  • EXCELでCSVファイル保存するとデータが無いところにカンマ

    EXCELでデータをCSV保存をした際に、データが無い部分に カンマが残る場合があります。 =EXCELのデータ== a a a a a b b c c =CSV保存データ== a,a,a,a,a b,b c,c,,, ,,,, ,,,, EXCEL上で調べましたが、データが無いセルは 空欄や特殊な書式は設定されていませんでした。 よろしくお願いします。 環境 windws XPpro + excel 2003

  • 2つのデータの統合方法を教えてください。

    以下の2つのcsvデータを統合したいと思います。  1.氏名,メールアドレス  2.氏名,住所,電話番号 上記のデータを「氏名」で紐付けして統合したいと思っています。  1.A,B         ⇒  A,B,C,D  2.A,C,D 具体的に確認したいことは、以下の2点です。  1.統合方法を知りたい。  2.1の方法で統合した場合で、氏名の共通がなかった場合は、   空欄で統合できる方法を知りたい。 以上、よろしくお願いいたします。

  • エクセルのシートをテキストで保存したい

    A2からB5までデータが入っている時に、 このデータのみ(A1~B1まで除く)をテキスト ファイル(スペース区切り)(.prnファイル) で保存しようとすれば どのようにすればよろしいのでしょうか。 SaveAsを使うとデータの取り出し方法がわからず、 Writeを使うのはCSVファイルにする方法しか分からない 状態です。 よろしくお願いします。

  • EXCELで外部データの取り込みが出来ない?

    EXCELで下記の様なCSVファイルをクエリを使って取り込もうとしています。 No      個数 A001     10 A002     20   1102     30 1103     20 ... ... しかし、取り込んだデータは何故かA001、A002等のアルファベットの入ったNoだけが消えた状態で取り込まれてしまうのです。 数字とアルファベットの混在したデータも取り込む事は出来ないでしょうか? 良い解決方法がありましたら教えて下さい。よろしくお願いします。

  • エクセル 行挿入のマクロについて

    こんばんは、エクセルのマクロについてお伺いします。 現在 A1:支店名 B1:連番 C1:在庫数 全部で1000行位入力があります。 ・A列には支店名 ・B列には連番は1・2・3~と1000件位 ・c列には在個数にはそれぞれ1桁から2桁の数字 【質問】 在庫数の数だけその連番の行を増やしたい。 例えば、 A2:東京支店 B2連番:1 C2在庫数:3 だとすると2行目のあとに2行挿入し在庫数が3なので下記のように3行にしたい。 A2 東京支店 B2連番 1 C2 在庫数 1 A3 東京支店 B3連番 1 C3 在庫数 空欄 A4 東京支店 B4連番 1 C4 在庫数 空欄 何せ数が多いのでマクロをお教え頂ければ助かります。 ※その際、支店名と連番は同じ物がはいるとありがたいです。 ※在庫数は空欄で構いません。 マクロでなくても方法があればお教え下さい。 よろしくお願い致します。

  • 『CSVデータの活用方法について』

    『CSVデータの活用方法について』 皆様こんにちは。 CSVデータの活用方法について知りたいのですが、 メーカーに勤めているのですが、毎月、卸から販売店に納品された 商品の種類や、納入個数、納入価格、売価、その他DATAをCSVでもらうのですが、 今までエクセルのフィルターで活用するくらいしかしてなかったのですが、 この膨大なDATAを分析して戦略に活かしたいと思うのですが、 何か方法や良いソフトなどあるのでしょうか? アドバイスいただけたら幸いです。よろしくお願いいたします。

  • エクセルの関数 COUNTA

    COUNTA関数で空白以外のデータの個数を数えて、その中から○○という文字列になっているものを引いた数を表示するには? 例えば 「A型 B型 B型 O型 空欄 AB型 A型 空欄 AB型 O型」 という10個のデータでCOUNTAを使うと8 になります。そこからさらにA型も除いて、6と表示したいというようなケースです よろしくお願いします

  • エクセルにて指定データをカウントする。

    以下のようなデータがあります。 ○ × = × × = ○ ○ ここにはデータが全部で8個あり、=が2個ありますから これを 2/8と表示させたいと思ってます。 指定した範囲のセルの個数はCOUNTA、指定したデータと一致するものは COUNTIFで数えられると思いますが、これらを A / B という表示形式で表示する方法が分かりません。また、COUNTIFの中で COUNTIF(A1:A8, "×")はうまく動きますが、COUNTIF(A1:A8, "=")はちゃんとカウントしてくれません。よろしくお願いします。

専門家に質問してみよう