(1)エクセルのソート操作さえ、させないで、並べ替えをやりたいということ。
じゃあ長々質問文に書くまでもなく、そう1文書けば済むものを。
>エクセル云々以前の問題の方に、からそうなるのかな。
ーー
順番はイチゴの中では入力したときの順序を保存したい(崩さないようにしたいということかな。
行番号を作業列に振れば実現します。
ーー
いちご、もも、りんごの順はどう考えるの。
並び替えの質問らしいが、どの点質問に書いてないのはおかしい。
==
関数式で考えて見ます。相当複雑ですが、簡単なものは出るかな。
品名 数量 参考1 参考2 コード
いちご 10 1 1 101
もも 20 2 1 201
いちご 30 1 2 102
りんご 20 3 1 301
もも 15 2 2 202
もも 12 2 3 203
いちご 25 1 3 103
C列参考1は
=IF(COUNTIF($A$2:A2,A2)=1,MAX($C$1:C1)+1,INDEX($C$2:$C$100,MATCH(A2,$A$2:$A$100,0),0))
D列参考2は
=IF(COUNTIF($A$2:A2,A2)=1,1,COUNTIF($A$1:A2,A2))
参考1*100+参考2を計算して
コード列は
=IF(COUNTIF($A$2:A2,A2)=1,MAX($C$1:C1)+1,INDEX($C$2:$C$100,MATCH(A2,$A$2:$A$100,0),0))*100+IF(COUNTIF($A$2:A2,A2)=1,1,COUNTIF($A$1:A2,A2))
結果はE列
の通り
ーー
普通はこれでソートすればよい。
ソートw使わないなら
これを別シートに値だけを貼り付けて
関数Smallでコードの小さい順に取り出す。
ーー
H3に=SMALL($E$2:$E$100,ROW()-2)
下方向に式を複写する。
I3に
=INDEX($A$1:$A$100,MATCH(H3,$E$1:$E$100,0),0)
下方向に式を複写する。
結果
101 いちご (略)
102 いちご
103 いちご
201 もも
202 もも
203 もも
301 りんご
他の列は類推でできますが長くなるので略。
ーー
多分複雑なやり方しかない。関数でやるのはあきらめては。
VBAで無いと
>エクセル云々以前の問題の方に、相手に処理するのはできないように思う。
お礼
何度もありがとうございます。 品名に番号つけて並び替えをやってみましたが、 品番順に並び替えがうまく出来ませんでした・・・。 何がいけないのか・・・。 でも、これでうまく出来れば何とかなりそうです。 もうしばらくがんばってみます!! ありがとうございました!