[[20030308004239]] 『枝番号を使用しているデータの並べ替え』(ハッチ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『枝番号を使用しているデータの並べ替え』(ハッチ)

枝番号を下のように並べ替えたいのですが、

    1-5

    1-10

    4-2-1

    4-14-5

    11-4-7

実際には下のようになってしまいます。

    1-10

    11-4-7

    1-5

    4-14-5

    4-2-1

良い方法があれば教えてください。

関係あるのか分かりませんが表示形式は文字列になっていました。

よろしくお願いします。


 桁数を揃えてやれば、希望通りの並べ替えが出来ます。 

01-05

01-10

04-02-1

04-14-5

11-04-7

 (シニア)


 シニアさんありがとうございました。

実は1万件近くデータがあるのですが、手っ取り早く桁数を揃えられる方法があったら

教えていただけませんか?

 (ハッチ)


 大変困難な問題ですね、条件式で扱っても7通りをクリアしなければなりません。

試しに式を作ってみましたが、こんな沢山のIF文で1万セル処理できるか心配です。

式をある程度コピー、値貼付けを繰り返さなければハングアップする可能性大だと思います。

何方か良い方法はありませんか?マクロ操作で出来るのであれば紹介してあげてください。

式の例

 =IF(AND(LEN(A1)=3,FIND("-",A1)=2),"0"&SUBSTITUTE(A1,"-","-0"),IF(AND(LEN(A1)=4,FIND("-",A1)=2),"0"&A1,IF(AND(LEN(A1)=5,ISERROR(SEARCH("-",A1,4))),A1,IF(AND(FIND("-",A1)=2,SEARCH("-",A1,4)=4),"0"&REPLACE(A1,3,"0",0),IF(AND(FIND("-",A1)=2,SEARCH("-",A1,4)=5),"0"&A1,IF(AND(FIND("-",A1)=3,SEARCH("-",A1,4)=5),REPLACE(A1,4,"0",0),A1))))))

A1のコードの隣B1に上の式をコピーして試してみて下さい。

 (シニア)


 一度にやろうとすると大変です。

     A

 1 1-5

 2 1-10

 3 4-2-1

 4 4-15-5

 5 11-4-7

 まずはそのセル範囲を選択し、

 [データ]-[区切り位置]より区切り文字を その他 - として、

 セルに分割します。

    A    B    C

 1  1    5

 2  1    10

 3  4    2    1

 4  4    15   5

 5  11   4    7

 あとは関数で書式を設定し、結合します。

    A    B    C    D    E    F    G    H    I

 1  1    5         01   -    05             01-05

 2  1    10        01   -    10             01-10

 3  4    2    1    04   -    02   -    01   04-02-01

 4  4    15   5    04   -    15   -    05   04-15-05

 5  11   4    7    11   -    04   -    07   11-04-07

 例では

 D1には =IF(A1="","",TEXT(A1,"00"))

 E1には =IF(F1="","","-")

 F,G,HもD,Eにならって設定します。

 I1には =CONCATENATE(D1,E1,F1,G1,H1)

 あとはI列をコピーして、上から値で貼り付ければ完成です。

 手作業でも数分で終わるはずです。

 マクロは便利ですけど、マクロを作るのに手作業にかかる以上の時間を

 ついやしてしまっては意味がありません。

 (ramrun)


 シニアさんramrunさんありがとうございました。

 無事に作業することができました。

 ややこしい質問に丁寧に答えていただいて本当に感謝しています。

 (ハッチ)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.