すべてのカテゴリ » インターネット・パソコン » その他

質問

終了

EXCEL2000を使用しています。
4行ごとにひとまとまりのデータがあり、4行の結合セルと、結合していないデータがあります。
これを、ソートする方法はあるのでしょうか。

  • 質問者:う~たん
  • 質問日時:2008-03-06 09:01:20
  • 0

並び替え:

こゆのは実例を出さないと説明が難しいのだけど、Large、Small、Match、Vlookup(Offset関数の方が融通が利くけどExcel2000にはOffset関数が無かったように記憶しているので)関数等を駆使して別シートにソートした結果を表示する手は有りますね。

ソートしたい数値に上限或いは下限が存在する場合の例として簡単に書くと…そうですねぇ、ソートしたい数値が小数点以下の数値を取らないと仮定しましょうか。Offset関数を使った場合として挙げますと…

同一数値が有った時の固有化の為にソートしたい列と並べて行番号を表すセルを作り、更にその最大行数よりも大きなキリの良い定数(2のべき乗が理想)で割っておき、先程のソートしたい数値と足した数値がセルの値になるようにする。状況的には整数部分がソートしたい数値そのもの、小数部分は行の位置を表す事になります。

この列を別の列でのSmall関数で抽出しておいて、更にその隣でMatch関数で何行目に相当するかを算出します。これで何ができたかと言うと、ソートしたい配列の該当する順位の行位置へのオフセットが手に入ります。

Offset関数を使って配列のそれぞれの要素を引っ張り出せば別シートへのソート完了っちう按配です。

Offset関数が使えなかったら…Vlookup関数等を使用します。この場合は先程のMatch関数は不要です。その代わり、抽出した列はソートしたい配列よりも若い列に配置する必要が有ります。

…文字では分かり難いよネェ…^^;…でも、イザやってみると超簡単なので試行錯誤してみてください。

巧く行くか分かりませんがサンプルを作りましたので、以下の塊を切り出してテキストエディタに貼り付けてからtest.csv等の適当な名前で保存して、Excelで読み込んでみてください(余りこゆのを公開するのも勿体無いんだけど:笑)。

連結した行や列のソートはコレの応用で何とでもなりますから。

商品,価格,,行番号,価格+α,Smallソート,オフセット,,ソート結果,名前,価格
a,1000,,=ROW(E2)-ROW($E$2)+1,=B2+(ROW(E2)-ROW($E$2))/32,"=SMALL($E$2:$E$6,D2)","=MATCH(F2,$E$2:$E$6,0)",,,"=OFFSET($A$1,G2,0)","=OFFSET($A$1,G2,1)"
b,500,,=ROW(E3)-ROW($E$2)+1,=B3+(ROW(E3)-ROW($E$2))/32,"=SMALL($E$2:$E$6,D3)","=MATCH(F3,$E$2:$E$6,0)",,,"=OFFSET($A$1,G3,0)","=OFFSET($A$1,G3,1)"
c,300,,=ROW(E4)-ROW($E$2)+1,=B4+(ROW(E4)-ROW($E$2))/32,"=SMALL($E$2:$E$6,D4)","=MATCH(F4,$E$2:$E$6,0)",,,"=OFFSET($A$1,G4,0)","=OFFSET($A$1,G4,1)"
d,660,,=ROW(E5)-ROW($E$2)+1,=B5+(ROW(E5)-ROW($E$2))/32,"=SMALL($E$2:$E$6,D5)","=MATCH(F5,$E$2:$E$6,0)",,,"=OFFSET($A$1,G5,0)","=OFFSET($A$1,G5,1)"
e,300,,=ROW(E6)-ROW($E$2)+1,=B6+(ROW(E6)-ROW($E$2))/32,"=SMALL($E$2:$E$6,D6)","=MATCH(F6,$E$2:$E$6,0)",,,"=OFFSET($A$1,G6,0)","=OFFSET($A$1,G6,1)"

この回答の満足度

------
1111   | ←結合
1111  |
1111  |
1111  |
-------
2222
3333
------
1111   |←結合
1111  |
1111  |
1111  |
-------
この場合には、Excelの仕様で並べ替えができなかったと思います。
http://support.microsoft.com/kb/157111/ja

          1111  2222  3333   4444
                5555
この5555を4つの枠にわたって結合したようにしてあった場合は、4つのセルを選択して、セル書式で「横位置」 →「選択内で中央」とやれば並べ替えできますから、「縦位置」→「選択内で中央」があれば便利ですよね。
一旦結合を解除してダミーデータを入れる方法もあるようですね。
こちらが参考になるようです、ご参照ください。有料ですが、ヒントはあります。
http://www.ecken.co.jp/ketsugo.htm

  • 回答者:矢牛 (質問から3時間後)
  • 0
この回答の満足度
お礼コメント

ありがとうございました。
やはり出来ないのですね。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る