• ベストアンサー

EXCELのデータ並び替え

データの並び替えでP1A023***-***,P2B034***-***,P3C045***-*** が入力されていたとするとPは同じなので次の1,2,3次にA,B,Cで並び替えられ次に 023となりますが、この数字の部分を並び替えの一番に したいのですが、何か方法はありますか

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

むかしは、大型やオフコンでは、ソートマージソフトは、別独立ソフトで提供された。そういう場合だと、ソートキーの位置を指定するパラメータは任意の位置から任意の長さで決められた。 しかしエクセルのデータは、1セルのデータが最小単位。 別作業列に一旦望みのデータを書き出さないとエクセルのソートは使えない。 (ただ関数の中では、関数の結果を引数とできるがそれは別)。 こういう、「ルールをデータ全体に当てはめて」、その結果でなになにをする(出来るようにする)発想はエクセルにはほとんどない。一旦セルに固定しないとならない。 このルールが簡単な場合だと、良くグラフなどで、初心者から、修正したデータで、の質問が出ているが、同じようなこと(ユーザー設定のソートを出来るようにしているから、こんなものを作るのはMSにとって簡単だと思うが)は、複雑にならないように自己規制してやらないようにしていると思う。 VBAでやってもエクセルのセルから配列などにデータを離してもその後のこと(自力ソート)が複雑で難しく、別の空き列に一旦修正データを作らないとならないだろう。エクセルのソートメソッドはRangeオブジェクトのメソッド。rangeオブジェクト以外には使えない。

polaris1103
質問者

お礼

回答ありがとうどざいました。 簡単には出来そうにないので、あきらめます。

その他の回答 (4)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.5

エクセルのツールバーにある「並び替え」は、 列(=1つのセル全体が対象)単位ですから、このままではできない。 並び基準に使いたい項目(m文字目からn文字)を抜きだす。 これ以外には、並び替え自身をVBAで実行させること。 これなら、シートのセル自身は変更しないし、別途列も増やさない。 セルのm文字目からn文字という指定で並びの判定基準にできる。 ロジックは50ステップもいかないだろうから 並べ替えのアルゴリズムわかっている人には難しい命令もなくそんなに難しくない。 そこまでするかどうか。

polaris1103
質問者

お礼

回答ありがとうございます。 私には無理のようなので、あきらめます。

noname#159916
noname#159916
回答No.3

コネクタ番号、信号名の表っぽいですね。 私がよくやったのは、ソート条件を複数使い分けるために「ソート用の列」を複数個用意し、 そこにコピー及び編集して置いておく、という方法です。 そこも含めてオートフィルタの範囲に設定しておくと、 「オートフィルタ」で「昇順」(または「降順」)にソートすると そのソート条件に従って表全体を一気に並べ替える事ができます。 (要・たしか Excel 2003 以降) 例えば、A列を元にB~E列を以下のように作ります。 (列コピーしセル内容分割などすると楽です) A       B  C  D  E P1A001A03 P1 A 001 A03 P1B001A02 P1 B 001 A02 P1A002A01 P1 A 002 A01 P1B002A00 P1 B 002 A00 P2A001D03 P2 A 001 D03 P2B001D02 P2 B 001 D02 P2A002D01 P2 A 002 D01 P2B002D00 P2 B 002 D00 これを >この数字の部分を並び替えの一番にしたい ならば、数字の部分 D列でソートさせれば A       B  C  D  E P1A001A03 P1 A 001 A03 P1B001A02 P1 B 001 A02 P2A001D03 P2 A 001 D03 P2B001D02 P2 B 001 D02 P1A002A01 P1 A 002 A01 P1B002A00 P1 B 002 A00 P2A002D01 P2 A 002 D01 P2B002D00 P2 B 002 D00 と、お望み通りの順になります。 他列のソートも加味したい時は、手前の段階でその列でのソートを行っておきます。 要するに、列ごとのソートを、優先順位と逆順に行う、という事です。 信号名やグループ、ピン番号の抜けや重複がないか、ある信号があるピン番はどこか、など 必要な列でソートさせると素早く探せ、文字の誤読もかなり防げます。 信号名順(E列でソート)すると A       B  C  D  E P2B002D00 P2 B 002 D00 P2A002D01 P2 A 002 D01 P2B001D02 P2 B 001 D02 P2A001D03 P2 A 001 D03 P1B002A00 P1 B 002 A00 P1A002A01 P1 A 002 A01 P1B001A02 P1 B 001 A02 P1A001A03 P1 A 001 A03 何通りかのソートしたものをそれぞれ印刷しておくと、デバグ中に探す際に 適当な表を使ってすぐに見つけることができます。 元データは1つのexcelファイルですから、転記ミスのような誤りもありません。 (大元が間違ってればダメですけど)

polaris1103
質問者

お礼

こういう方法もあるのですね。 回答ありがとうございます。

noname#129487
noname#129487
回答No.2

単純に、RIGTHかLEFT関数で、数字部分を取り出し、 空いた空白列に貼り付けて、 フィルタで昇順にすれば可能だと思います。 間違っていたらすみません。

polaris1103
質問者

お礼

回答ありがとうございます。 調べてみます。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

作業列を使ってもいいなら =MID(A2,4,3)&LEFT(A2,3)&RIGHT(A2,7) でP1A023***-***,P2B034***-***,P3C045***-*** を023P1A***-***,034P2B***-***,045P3C***-*** としてこの列で並べ替えを行う。

polaris1103
質問者

お礼

回答ありがとうございます。 確かめてみます。

関連するQ&A

  • EXCELでデータの部分的並び替え

    EXCELでデータの部分的並び替え a 5 a 6 a 7 b 7 b 8 b 8 c 7 c 7 c 5 . . というデータがあって a,b,cそれぞれについて右の数字を並び替え最大値と 最小値を出すにはどのようにすればいいでしょうか マクロで書く必要がありますか よろしくお願いします

  • エクセルのデータの並び替え

    文字データが次のように並んでいます   A    B    C   1    2    3   4    5    6   7    8    9  10    11  12 これをD列に         1        2        3        4        5        6        7        8        9       10 と並び替えたいのです。 以前にこの逆のような並び替えをしたのですが、反対になるとまた わからなくなりました。 よろしくお願いします。

  • エクセル 並び替えについて

    B・C・D・Eセルにデータが入力しています。 そしてEのセルだけ=RANK(AL3,AL$3:AL$19)の数式でランラムで数字を1~8と書いています。 質問です。並び替えにEのせるを優先でランラムの数字を小さい数字に並べ変える方法を 教えてください。

  • エクセルでデータの並び替え

    エクセルでデータの並び替えを使い、 A列に入っている数字を最優先して 並び替えをしたいのですが、後半部分 うまく並び替えができません。 行が、2134行目までは、うまくいったのですが、 それ以降が並び替わらないのです。 もしかして、行があまりに多いとできないのでしょうか。。。限界があるのでしょうか? それか、ほかに原因があるとしたらわかりません。 わかる方、教えてください。

  • エクセルのデータの並び替え

    エクセルのデータの並び替えで、A列に都道府県名、B列に都道府県の対前年度の収支差の数字の列が続いています。    《例:A1 東京都、B1 1200、       A2 大阪府 B2  -60、       A3 神奈川 B3  600、       A4 高知県 B4 ー500、)  これを収支差の多い順に並べ替えようと思い、データの並び替え機能を使ったのですが、A列の都道府県名を無視して、収支差の数字だけが並び変わってしまうのです。「選択範囲を拡大」で、最優先の列を「1200」、次に優先する列を「東京都」としてみても、ウンともスンともいいません。また、上司の指示では、途中でマイナスの収支差が出てきたところは、マイナスの大きい順に並び替えろとの指示も出ています。なにかよい方法はないでしょうか・・。  (例:A1 東京都 B1 1200、     A2 大阪府 B2  ー60、     A3 神奈川 B3  600、     A4 高知県 B4 -500     の順でデータが並んでいたら、     A1 東京都 B1 1200、     A2 神奈川 B2  600、     A3 高知県 B3 -500、     A4 大阪府 B4  -60     と並び替えるということです。)

  • Excelでのデータの並び替え

    Excelで以下のようにデータの並び替えを行いたいのですが どのような関数や手順で行えばいいのでしょうか。 A  B           A   B  C  D 001 a           001  a  b 001 b       →   002  a  b  c 002 a       →   003  a 002 b       →   004  a  b 002 c       →   . 003 a           . 004 a           . 004 b           . .               . . . 上記のような感じで、A列の重複を省きB列のデータを1列ごとに表示したいのです。 宜しくお願いいたします。

  • Excel で 並び替えを教えてください。

     添付図のように、A列に1~4など入力すると並び変えられます。 しかし、B列に図のように干支を入力したとたんに、並び替えができなくなります。  データを複数行に入力した場合に行を崩さないで、データの並び替えをすることができますか?   

  • エクセルの並び替えについて

    エクセルの並び替えについて質問させて頂きます。 下記のようにエクセルに文字列を入力しています。 A         B       1 10011   ホワイト 2        ブラック 3        ブルー 4 10002   ブラウン 5      レッド 6      イエロー 7 10005   パープル  8      ネイビー 9      サックス      A1に「10011」と入力してありますが、「10011」という品番に対してセルB1・B2・B3のホワイト・ブラック・ブルーのカラーが存在するという意味です。 ここで並べ替えを行いセルA1・A4・A7の数字を若い順(昇順)に並べ替えを行った場合、品番のみ昇順となり、カラーがその品番に対してキレイに並び替えが行われないのです。 最終的に下記のように並び替えを行いたいのですが、どのように並び替えを行えばよろしいでしょうか?よろしくお願い致します。 A    B    C   …    1 10002   ブラウン 2      レッド 3      イエロー 4 10005   パープル  5      ネイビー 6      サックス  7 10011 ホワイト 8      ブラック 9      ブルー     

  • エクセルのデータ並び替えについて教えてください。

    エクセルのデータ並び替えについて教えてください。 セブン エクセル2007 です、初心者ですよろしくおねがいします。 1行目に表題(○○会名簿)と入力 A列とB列を結合して中央揃えしました。 2行目にA例は名前 B列は住所と入力 3行目からは上記に添い名前、住所と入力してから、数行を過ぎたところで 名前のA列昇順にデータを並びかえようとしたら、1行と2行目も混ざり並び替えられました。 3行目以下を並び替えすることはできないのでしょうか? 方法を教えてくださいませ

  • エクセルの並び替え

    エクセルの並び替えをしたいのですが、  最優先させるキー:A列  2番目:B列 のように並べ替えたいので B列を最優先させるキーに指定して並べ替え    ↓ OK   A列を最優先させるキーに指定して並べ替え をしました。ですが、こうなってしまいます   ↓↓ こうしたいのですが↓↓ A列      B列      A列   B列 1       A       1   A 1       B       1   A  1       C       1   B 1       A       1   B   1       B       1   C  1       C       1   C ちなみに本当は数字ではなく文字でユーザー設定リストを使って並べ替えています。分かりにくい質問で申し訳ないのですがお願いします。

専門家に質問してみよう