• 締切済み

エクセルのデータの加工で何かいいアイデアがほしいです・・・

エクセルで下記のような(A列に品番、B列にケースNO.の最初、 C列にケースNO.の最後、D列に品名、D列に数量) データが数百件あり、これをケースNO.毎にデータを 作り直したいのですが… 品番 ケースNO.FROM ケースNO.TO  品名  数量 AP-1       1          3   りんご   3 BA-14       1              バナナ   1 BA-10      105        109 モンキバナナ  5 GR-00       7         8    ぶどう   2 ※↑こんな感じのデータを最終的には↓こうしたい。 品番 ケースNO.   品名   数量 AP-1    1      りんご   3 AP-1    2      りんご   3 AP-1    3      りんご   3 BA-14   1      ばなな    1 BA-10   105  モンキバナナ   5 BA-10   106 モンキバナナ   5 BA-10   107  モンキバナナ   5 BA-10   108  モンキバナナ   5 BA-10   109  モンキバナナ   5 GR-00   7      ぶどう    2 GR-00   8       ぶどう   2 データが数百件あり、とても手作業でできる量ではありません。 件数的にもマクロを使ってやるものだと思いますが 当方、マクロの自動記録から訂正することや読める… 程度の知識はあるのですが一からの書き込みや 繰り返し、判別させる知識がなく行き詰っております。 マクロでもマクロ以外でもいいので何かいい方法は ありますでしょうか? 宜しくお願い致します。

みんなの回答

  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.2

標準モジュールに Sub Sample() Dim Moto As Range Dim C, S, E, i, L As Integer With Sheets("Sheet2") L = 2 Set Moto = Sheets("Sheet1").Range("A2", Sheets("Sheet1").Range("A2").End(xlDown)) For Each C In Moto S = C.Cells(1, 2) E = IIf(C.Cells(1, 3) = "", S, C.Cells(1, 3)) For i = S To E .Cells(L, 1) = C.Cells(1, 1) .Cells(L, 2) = i .Cells(L, 3) = C.Cells(1, 4) .Cells(L, 4) = C.Cells(1, 5) L = L + 1 Next Next End With End Sub 元データがSheet1のA2から入力されていてSheet2のA2に転記します。 ※見出しは1行目

hiroyon164
質問者

お礼

お返事おそくなって申し訳ありません。 すごい、できてる… 有難うございます!! が、今は全く意味が理解できてません・・・ シンプルな構文や静かな動作にすごく憧れますが 参考書を読んでも実際作る場面がないとなかなか身につかず (っていうか参考書って初級者向けとか上級者向けはたくさんあっても 中級者向けで良いのがなかなか見つけられずにいます) でも頑張ってひとつひとつ解読していきたいと思います。 この度は有難うございました。

noname#76936
noname#76936
回答No.1

まず品番を自分の好きな順に並べ、次の優先順位はケースNo.と言うことでよろしいでしょうか? 並べ替えを行えばできるのですが、問題は品番が素直な並び方ではないことです。 品番に対応する数字を入力する欄を設けてはいかがでしょうか? ・1列挿入する ・別シートに「品番・数字」の表を作成する ・挿入した列から、VLOOKUP関数を使用して品番に対応した数字を入力する ・あとはデータ→並べ替えで品番の数字、ケースNo.の順で並べ替えをすればご希望通り並ぶと思いますが

hiroyon164
質問者

お礼

お返事おそくなって申し訳ありません。 私の質問が言葉足らずで悪いのですが やりたいことは複数個に対して 一行のデータ(ケースNO.のFROMとTOはその意味です)が ところどころにあるのでそれを一ケースNO.に 一行のデータに再作成したいのです。 説明下手で申し訳ありません・・・

関連するQ&A

  • エクセル いろいろな品名ごとに条件付きのカウントをしたい。

    エクセルマクロについて教えてください。 以下の「元の表」から「抽出した表」のように、○がついているもののカウントをしたいのですが、マクロでやるにはどのようにしたらよいでしょうか。 品名は特定なものではなく、無限にあります。 〔元の表〕 品名 区分 りんご ○ りんご × みかん ○ バナナ ○ バナナ × キウイ ○ りんご × キウイ ○ りんご ○   :   : 〔抽出した表〕 品名  区分 数量 りんご ○ 2 みかん ○ 1 バナナ ○ 1 キウイ ○ 2   :   :

  • エクセル2000で・・

    品番 品名  単価  在庫数 1  リンゴ  120  1000 2  ミカン  100  1000 3  バナナ  80  1000 という表があるとします。 次に別シートに 品番 品名  単価  売れた数 2  ミカン  100  10 と、売れた分量を示す表があります。 そしてもう一つ別シートに 品番 品名  単価  在庫数 1  リンゴ  120  1000 2  ミカン  100  990 3  バナナ  80  1000 というシートがあり、一つ目のシートから二つ目のシートで売れた分の数を引いた数量を表す表があります。 二つ目の表を入力した際に、自動的に三つ目の表の在庫数が表示されるような関数はありますでしょうか?

  • エクセル2010で 項目の抜き出しをしたい

    エクセル2010で 項目の抜き出しをしたいです。 たとえば、A列に りんご りんご バナナ トマト りんご バナナ みかん トマト メロン バナナ リンゴ みかん ぶどう とデータが入っているとき、これらのデータには、 トマト バナナ りんご リンゴ みかん メロン ぶどう という種類のデータが入っているということを簡単に表示する方法が知りたいです。 どうぞよろしくお願いします。

  • Excel データの個数を複数条件付きでカウントしたい

    OS:XP Ver.:Excel2003 Excelの関数で質問です。 いろいろ調べたのですがどうしてもわかりません。 お知恵をご拝借下さい。 A B C D 1月 2月 3月 りんご 250 0 300 みかん 150 80 0 りんご 88 150 200 いちご 0 300 85 ぶどう 0 350 89 (確認画面にするとずれてしまいますが、A列には品名、B~D列には月が入るようになっています。) 上記のような元データがあり、(実際はもっとたくさん) 1月    2月    3月 りんご みかん いちご ぶどう (こちらもずれてしまいますが、それぞれの月の品名ごとの集計を入れたいのです。) のような表を完成させたいと思います。 (1)表に入れるのは、合計数量ではなく【データの個数】です。 1月のりんごは2、みかんは1、という感じです。 ただし、0はカウントしたくないので、1月のいちごとぶどうは0を 返してほしいのです。 countifやsumproductなど考え付くあたり試してみましたが、うまくできません。 どういう数式(関数)を入れればよいのでしょうか? (2)2月以降のデータ範囲を指定する場合はどうすればいいのでしょうか?  1月ならA2:B6とするのかもしれませんが、2月の場合は1月列(B列)が不要ですよね?

  • エクセルの重複データ、必要数を指定して絞る

    エクセルの重複データ、必要数を指定して絞ることは可能ですか。 エクセル2010です。 マクロはよくわからないので、マクロを組まねばならないようでしたらあきらめます。 たとえばある列に (別の列もデータがあります。 この列を基点にしぼるイメージです) りんご りんご りんご りんご りんご りんご りんご りんご バナナ バナナ バナナ バナナ バナナ バナナ みかん みかん みかん みかん みかん みかん みかん みかん みかん みかん と、個数がランダムで同データがあるような場合に りんご りんご りんご りんご りんご バナナ バナナ バナナ バナナ バナナ みかん みかん みかん みかん みかん と5個に絞るということです。 「重複するレコードは無視する」としたときに1つにしぼられますが、 1つでなく、5つに絞るようなイメージです。 そのような指定がなんらかで可能でしょうか。 テキストフィルターをうまく使えばできたりするでしょうか。 よろしくお願い致します。

  • エクセル関数 頻度順に並べる方法は?

    excel関数についてですが 度数の多い順に並べる方法はありますか? 例えば、果物名前がたくさん並んでいるデータを考えます。 1 りんご 2 バナナ 3 なし 4 りんご 5 メロン 6 もも 7 ぶどう 8 りんご 9 ぶどう 10 バナナ 11 りんご 12 ぶどう このデータから、度数の多い順に並べたいです。 [欲しい結果] 1 りんご 2 ぶどう 3 バナナ ...といった具合です。 同率で並ぶ場合は含めなくてもよいですが。。。 できれば、データ列を作らずに関数式で表示させたいのです。

  • エクセル、複数行のデータを別シートに集計するには?

    複数行のデータを別シートに、伝票番号別、品名別に反映させるにはどのような関数にすればいいですか? 例えば、 [シート1] 伝票番号   品名   数量 aaa      りんご   50 aaa      バナナ   30 aaa      もも     15 bbb      バナナ   20 bbb      りんご   33 ccc      りんご   10 ccc      バナナ    40 [シート2]    A      B    C    D    1         aaa  bbb  ccc 2 りんご    50   33   10 3 バナナ    30   20   40 4 もも      15 [シート1]の様なデータがあり、それを[シート2]のセルB1に伝票番号を入力したらセルB2、B3...と数量が反映するようにしたいです。 わかりづらくてすいません。 どなたかわかる方がいらしたらお願いします。    

  • Excelの使い方で質問

    例えば、 A列1~10には「No.」として1~10の数字が順番に入ってます。 B列1~10には「りんご」「みかん」「いちご」「ぶどう」という文字がいくつかずつ入っています。 そういうデータで「りんご」は「No.」いくつといくつにあるか、「みかん」は「No.」いくつといくつにあるか、「いちご」は…、「ぶどう」は…、といったように集計したいと思っています。 りんご 1,5,6 みかん 9 いちご 2,3,9 ぶどう 4,7,8,10 といった感じにできれば良いのですが、どうすればよろしいのでしょうか? よろしくご教授ください。

  • Excel 最小値に合致するカテゴリの抽出

    初めて投稿します。よろしくお願いします。 エクセルの行ごとに異なるカテゴリデータが入って(下記のようになって)いるのですが、A列に最小値のデータ、B列最小値のカテゴリを抽出したいのです。 A列の最小値については「=MIN(D2:I2)」で抽出できたのですが、品名を返すことができず手作業しかないかと思っています。 でも、データ数が多くだんだんとわからなくなってきてしまい、このようなことができるのかお聞きしたくて投稿させていただきました。  A列|B列|C列|D列|E列|F列|G列|H列|I列| 最小値|最小値のカテゴリ|空白|品名1|数量1|品名2|数量2|品名3|数量3| 10|バナナ(※自動表示したい)||りんご|50|みかん|100|バナナ|10| 3000|鶏肉(※自動表示したい)||鶏肉|3000|豚肉|5000|牛肉|10000| どのようにお聞きしたら良いのかわからず、説明不足な点があるかと思いますがお分かりの方がいらっしゃいましたらご教示ください。 お願いいたします。

  • EXCEL VBA 複数列を2列にまとめる

    下記のようなデータ(列数も行数も常に変わり、固定ではない)を ┌───────────────── │ A 列  | B列   | C列   | D列 ├─────────────────── │ 1 │伝票01 │品名01 | 品名02 │品名03 ├─────────────────── | 2 │0011 │みかん │みかん | りんご ├─────────────────── │ 3 │1001 │りんご  │いちご |    ├─────────────────── │ 4 │1100 │いちご  │みかん | ぶどう  └─────────────────── ↓のように2列にまとめる方法はございますでしょうか?VBAを希望しております。   よろしくお願い申し上げます。 ┌───────────────── │ A │ B   ├───────────────── │ 1 │伝票  │品名 ├───────────────── │ 2 │0011_品名01 │みかん  ├───────────────── │ 3 │1001_品名01 │りんご    ├───────────────── │ 4 │1100_品名01 │いちご ├───────────────── │ 5 │1001_品名02 │みかん  ├───────────────── │ 6 │1100_品名02 │いちご  ├───────────────── │ 7 │1001_品名02 │みかん  ├───────────────── │ 8 │1100_品名03 │りんご  ├───────────────── │ 9 │1001_品名03 │  ├───────────────── │ 0 │1001_品名03 │ぶどう  ├─────────────────

専門家に質問してみよう