順序リストを使って複数条件による並べ替えを行うには

次のようなリストがあります

製造番号 製品種別 サイズ 色

サイズはXS~M~XLまであり、ただの昇順降順ではLMSXL…と並べ替えられてしまう。
そのため順序リストを設定し、XS,S,M,L,XLとしたが、並べ替えの設定に昇順と降順しかない。

製品種別ごとにまず並べ替え、製造番号ごとに並べ替え、色で並べ替えて、サイズごとに並べ替えたいんです。よってデータ>昇順に並べ替え ではなく データ>並べ替え→ダイアログでの設定になるはずですが…ダイアログのオプションタブで順序リストを指定しても順序リストに従った並べ替えが行われていません。昇順降順と変わらないんです(SML→XS…ではなく、XS,S,M,L,XLにしたいんです)
ダイアログでサイズの列を指定せずに順序リストにチェックを入れても、サイズの列を指定して順序リストにチェックを入れても変わりません。

どうしたらできますか。LibreCalc7.0.4.2です。

自身は表計算ソフトでの並べ替えや順序リストは滅多に使わないのでドンピシャなアドバイスは出来ないのですが…。

確かに、並べ替えダイアログで試してみたところ、「サイズ」が「並べ替えキー1」で指定されていない場合には、オプションタブの「順序の指定」をチェックしてもその順で並び替わってくれないように見受けられます(「並べ替えキー1」なら反映されるようです)。これが仕様なのか不具合なのか、あるいはうまい使い方があるのか、私にはちょっと分かりかねます。

が。複数項目での並べ替えは必ずしもダイアログで一括処理しなくても良いのではないかと思います。ダイアログの一括処理は3項目までしか扱えないようで、その程度であれば1項目ずつ順番に処理してもさほど手間は増えないように思います。むしろその方が一つ一つの処理の成果をステップを踏んで確認できますし、項目数にも制限がありません。実際私が表計算ソフトなどで並べ替え処理を行う場合は大抵そのようにしています。

並べ替えは優先項目の逆順に行います。サイズでの並べ替えの際にはダイアログを表示し、オプションタブで「順序の指定」を行うことで、手元ではXS,S,M,L,XLの順に並べ替えることが出来ました。

ひとまずご参考まで。

※この問題は7.2にて解決され、順序リストに従って並べ替えられるようになりました
※ただし、LOを再起動するたびに「デフォルトの順序リスト」が丸ごと増えるバグが発生しています
※また、自然順の並べ替えがGoogleスプレッドシートと異なります(どっちが問題なのか不明なので未報告)

2 Likes

お問い合わせ内容が「順序リストに設定したとおりに並び替えできない」けど、どうすればできるのか?という内容であればコレは回答になっていませんのでご了承ください。

参考事例として、ご質問が、項目毎に当方で想定している順番どおりに並び変えるにはどうすれば良いでしょう?という内容についてご提案します。

やりかたとして、ソート順をvlookup関数で数字として付与する方法をご提案します。(ソートで使う重み数字を別列に強制付与するだけですが・・・)

昇順と降順で対応できるようにvlookup関数を使って「サイズ」の並び順を数字に置き換えて別列に表示させ、その列を「昇順・降順」で並び替えると言ったほうが分かりやすいかもしれません。

製造番号 製品種別 サイズ 色 の項目について

ご依頼の内容は、サイズでのソートが思惑と違う順番になってしまうということになっているようですので
サイズについて

1・別表「サイズ並び順」を作りvlookupの参照先とします(参照リストは別シートに作成することをお勧めします:別シートに作成して範囲名を付け、vlookupの範囲も範囲名での指定する方法をお勧めします)

サイズ 並び

XS 1

S 2

M 3

L 4

LL 5

2・並び替えしたい一覧表の空いた列に、並び替え用の列項目として新しく「サイズ並び順」といった項目を作り
vlookup関数を使って

サイズがXSだったら1を返す、から、サイズがLLだったら5を返すまで
といった式を設定します 例 =VLOOKUP(C3,サイズ並び順,2,0) C3は表のサイズ項目の座標

3・サイズ並び順項目にはサイズに対応した数字が表示されるようになるので、その値を並び替えすれば
要望どおりのソートが実行できるようになると思います。

また、色 についての順番も同じように「色並び順」といった別項目を設けると大丈夫と思います。

ちなみに、並び替え条件が多い場合、「製造番号」と「サイズ並び順」と「色並び順」を&で連結した「並び替え用のコード」を作って、その項目値を並び替えるといった方法もよく使います。

上記設定したワークシートを作成しておき、売上データをシステムから入手して値貼り付けを行って、並び替え処理を実行するように使っています。
シートを配布が必要な場合、渡した相手に対し「順序リスト」の追加変更が不要な点も便利になります。

処理の参考になれば幸いです。