• ベストアンサー

セルの並べ替えについて

a b1 b a2 c a1 d c1 e e1 - c3 - c2 このような状態のものを、 a a1 - a2 b b1 c c1 - c2 - c3 d - e e1 のように並べ替えるにはどのような方法がありますか。 よろしくお願いします。 (-は空白になります)

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

質問では並べ替え前のデータ個数が7個、並べ替え後が8個になっています。Excelの並べ替え機能ではデータ個数の増減はできないので、何らかの処理手順が必要になります。 並べ替え後の意味を、「数字のついた文字で並べ替え、その文字の先頭の場合に前に文字を表示し、数字のついた文字が現れない文字については、文字のみを表示する」と解釈しました。 ○セルA2:A6に{a、b、c、d、e}を入力。 ○セルB2:B8に{b1、a2、a1、c1、e1、c3、c2}を入力。 ○セルC2に「=LEFT(B2,1)」を入力してC8までコピー。 ○セルD2に「=COUNTIF($C$2:$C$8,A2)」を入力してD6までコピー。   {2、1、3、0、1}が表示されるはずです。 ○セルF2に「=IF(D2=0,A2,"")」を入力してF6までコピー。 ○セルF7に「=C2&" "&B2」を入力してF13までコピー。 ○セルF2:F13をコピーして、セルH2に値貼り付けします。 ○セルH2:H13を選択して、「データ」タブ>「並べ替えとフィルター」グループ>「降順」ボタンをクリックします。セルH2:H9に文字が見えるはずです。 ○セルH2:H9を選択して、「データ」タブ>「データ ツール」グループ>「区切り位置」ボタンをクリックします。   区切り位置指定ウイザード 1/3で、カンマやタブなどの・・・を選択し「次へ」。   区切り位置指定ウイザード 2/3で、区切り文字の「スペース」をチェックし「次へ」。   区切り位置指定ウイザード 3/3で、表示先を「$J$2」にして完了。 ○セルJ2:K9を選択して、「データ」タブ>「並べ替えとフィルター」グループ>「並べ替え」ボタンをクリック。   最優先されるキーをJ列、昇順、   次に優先されるキーをK列、昇順にして「OK」ボタンをクリック。 ○セルM2に「=IF(J2=J1,"",J2)」を入力してM9までコピー。 ○セルN2に「=K2&""」を入力してN9までコピー。 これで完成です。 質問にあるように、1文字と数字1桁の前提です。文字が1文字以上だったり、数字が1桁以上がある場合は、 セルC2に入力する算式を   「=LEFT(B2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(B2)&1234567890)-1))」 にしてください。

jgfjw666
質問者

お礼

詳しく記載していただきありがとうございます。 参考にさせていただきます。

関連するQ&A

  • セル内にある長さの違う数字の分割

    A1=123 A2=456 A3=7890 という桁数の違う数字がセル内にある時、B行に千の位、C行に百の位、D行に十の位、E行に一の位⇒  B1=空白 C1=1 D1=2 E1=3 B2=空白 C2=4 D2=5 E2=6 B3=7 C3=8 D3=9 E3=0 と他のセルに表示させたいのですが…、関数MIDを使用すると桁数が違う為、うまくいきません。何か方法があれば教えて下さい。よろしくお願いします。

  • 空白セルのカウント方法

    どなたかご存じでしたら回答をお願いします。 【質問】 各列毎に●や★が任意の数がある8行のセルがあります。 各列毎に8行目から上に遡り、●までの間の空白のセルを数える方法が知りたいです。 但し、★も”空白の1つ”として数えます。 【入力】   A  B  C  D  E  F  G ・・・・ 1 ●        ★ 2       ●  ●  3       ★        ● 4             ★ 5              6 7                ● 8                   ● 【結果】  A B C  D E  F G ・・・  7 8  6  6  8  1 0 ※結果の説明 A:●の下には空白が7個。 B:●が無く空白が8個。 C:●の下に★があるが空白とみなして6個。 D:●の下に空白が6個。 E:★があるが空白とみなして8個。 F:●の下には空白が1個 G:●の下には空白が0個 使用するエクセルは2010です。 以上、よろしくお願いします。

  • excelのセルの並べ替え。

    Excelの操作で迷っています。詳しい方の知恵を拝借できたらと思います。 以下のようにデータの入力されたセルが並んでいます(アルファベット1文字が1セルです)。 A B C D E F G H I J K 横に何セル並んでいるかは、行によってまちまちです。このようなデータが、数千行あります。これを、以下のように1列に並べ替えたいのです。 A B C D E F G 「行列を入れ替えてコピー」ではなかなかに大変なので、何か良い方法を探しています。よろしくお願いいたします

  • エクセルで、空白のセルを無視して連結する方法を教えてください!

    エクセル2002を使っております。   A B C D         1 あ い う え     2   お   か    3 か   き く     と文字が入ったセルがあるときに   A B C D       E  1 あ い う え      あいうえ  2   お   か      おか 3 か   き く      かきく このようにE列のセルに空白を入れずに連結したいのです。 E2で、=A2&B2&C2&D2 といれて連結させると、   A B C D       E  1 あ い う え      あいうえ  2   お   か       お か 3 か   き く      か きく となってしまい困っています。どなたかよい方法をご存知でしたら教えてください。よろしくお願いいたします。

  • EXCEL セルに一つずつ表示させるには

    EXCELについて教えてください。 一つのセルにA1に123456と入力されているとします。 それを一つずつ分解して、B1には1。C1には2。D1には3というような形にしたいのですが。 MID関数を使うと近い形にはなりましたが、A1が12となっている場合に、B1に1、C1に2という形になります。 A1は12で、B1・C1・D1・E1は空白で、F1に1・G1に2と表示させたいのですが、なにかいい方法がありますでしょうか。

  • エクセルVBAで関数が入った空白セルの取得

    エクセルVBAで下記のようなセルの参照をしたいのですが、よろしくお願いします。(エクセル2002です)   A  B  C  D  E  F 1 78 80 セル(A1)(B1)には値も関数も入れられています。 セル(C1)(D1)(E1)には値は入っていませんが、ワークシート関数が組み込まれており空白となっています。(関数の""にて空白) セル(F1)には何も入力されていません。 今回はセル(B1)の80の値を取得できるようにVBAで下記のようにコードを組みました。 Range("F1").End(elToLeft).Activate そうすると、セル(E1)に関数があるために(?)(E1)がアクティブな状態となります。 関数が入力されていても空白として(B1)をアクティブな状態にするために良い方法はありますでしょうか? 誠に申し訳ございませんが、よろしくお願いします。

  • 空白セルのある場合の計算

      A  B  C  D   E  F  G  H 1 (2)     (2)     空     (3) わかりづらいかもしれませんが、 =A1+C1+E1+G1 で、数字の合計を出したいのですが、###のエラーが出ます。 E1の空白セルに数字が入るとエラーはなくなります。 どうしたら空白を0とみなして計算できますか? (空白セルはどうしても空白じゃなきゃなりません) (B列D列F列は計算対象外の数字が入力されてます)

  • エクセルで左端のセル位置を取得するには

    範囲内で空白を除いて一番左端のセルの位置を取得する方法というのはあるでしょうか? たとえば以下のような表の場合にA1にはC1、A2にはD2、A3にはE3が入るようにしたいのです。 以下のような表の場合に  A  B  C  D  E 1      1  2   3 2           2   3 3             3 わかりづらい質問で申し訳ありませんが、よろしくお願いします。

  • 並べ替え?抽出?

     A   B      C    D    E    F 1:CD  社名   金額    CD  社名   金額 2:1010 ○○商事 321,987 1020 ××商事 654,321  3:1020 ××商事 654,321 1080 □□商事 963,741  4:1030 △△商事 663,591 2100 ★★商事 656,982  5:1080 □□商事 963,741 3330 ◆◆商事 200,100  6:2100 ★★商事 656,982 1010 ○○商事 321,987  7:3330 ◆◆商事 200,100 4210 ※※商事 998,825 以上のようなデータがありA1~A7のコードに合わせて Dのコードを同じセルに順番どおり並べ替えたい。 EやFの社名や金額も一緒に並べ替えたい。 Aには、1030が有るがDには、無いのでその部分は、 空白にし逆にDには、4210が有るがAには、無いので Aのその部分は、空白にしたい。 別々で入力したExcelデータの比較をしたいと思って おります。数件のデータならいいのですが数百件も ある場合手間がありまして・・・ どうか宜しくお願い致します。

  • EXCEL関数 複数セルのデータと1つのセルにまとめたい

    先日アンケートを取りました。 質問に対し、回答は1~5の選択肢のうち、いくつでも選ぶ方式(複数回答)でした。 この回答データをEXCELで入力済みなのですが、ここで問題が発生してます。 EXCELは、 A列が回答者氏名 B,C,D,E,F列が回答(選択肢1~5のいずれか) となっています。 例えば、太郎さんが2,4,5と回答した場合には、 A列:太郎、B:2、C:4、D:5、E:空白、F:空白 になっています。 これを次のようにしたいのですが、何か方法はありますか? A列:太郎、G列:2 4 5

専門家に質問してみよう