ID:44739 excelの並び替え(少し特殊な条件)
by goomod2 2010-03-16 13:40:28 / view 23
いつもお世話になります。
excel2003/2007(windows)です。
excelの並び替えについて質問です。

毎月、商品の仕入れがあるたび
<仕入番号>を連番で振っていきます。
並び替えは<仕入番号>で並んでいればいいのですが、
1つだけ特別な条件があります。

*並び替え前のデータ
<仕入番号> <商品名>
1     C部品
2     B溶剤
3     C部品
4     D工具
5     E機器
6     A部品
7     B溶剤
8     C部品
9     E機器

「<商品名>が同じもの
については、<仕入番号>の若い順に位置を”まとめる”」
という条件です。


具体的には今回のような表の場合、
<仕入番号>1から並べていくわけですが・・・

<仕入番号>1と同じ「C部品」が3番と8番にあります。
この場合1,3,8と並べ、次に、

<仕入番号>2を並べますが、「B溶剤」は7番にあるので、
2,7と並べ、次に、
  
<仕入番号>4を並べ、
(仕入番号3はすでに並べたので4になります、
 「D工具」は、この1件だけなので、”まとめる”作業はなし)

・・・このような感じで、並び替えたあとは、
下記のようになります。

*並び替え後のデータ
<仕入番号> <商品名>
1     C部品
3     C部品
8     C部品
2     B溶剤
7     B溶剤
4     D工具
5     E機器
9     E機器
6     A部品

毎回数100件のデータを、手動で並び替えていますが、
これは並び替えの工夫でなんとかなるでしょうか?
それともマクロなるものを使う必要があるのでしょうが。
どうかお助けいただけないでしょうか。
よろしくお願いいたします・・・
ID:44740 grumpy_the_dwarfさんからのお返事です
by grumpy_the_dwarf 2010-03-16 13:41:22
添付のように「並べ替えコード」を作ってやると可能です。これは
match関数で自分の行の「商品名」の初出行を検索して、仕入番号
より優先してやるわけです。