• ベストアンサー

エクセル:並べ替え後に同じ入力項目同士が横になるには?

いつもお世話になっています。 現在エクセルを使用中なのですが、困っている内容があります。 並べ替え後にセル内で同じ入力項目同士が横に表示されるようにする 事は可能でしょうか? (例1) 現在)(セルA1)シャツ (セルB1)ズボン    (セルA2)シャツ (セルB2)シャツ    (セルA3)ズボン (セルB3)シャツ          ↓ 理想)(セルA1)シャツ (セルB1)シャツ    (セルA2)シャツ (セルB2)シャツ    (セルA3)ズボン (セルB3)ズボン (現在)をグラフを並び変えて(理想)のように、同様のセル同士が 横並びになるようにしたいです。現在は1個1個確認して自分で コピー→貼り付けしてます。数が膨大な為、時間がかかって しまって・・・。 問題点として、AにあってもBにないものがあったりします。 例えばこんな風に・・ (例2)    (セルA1)シャツ (セルB1)ズボン   (セルA2)シャツ (セルB2)シャツ   (セルA3)ズボン (セルB3)シャツ   (セルA4)ニット (セルB4)シャツ   (セルA5)シャツ (セルB5)シャツ   (セルA6)ズボン (セルB6)シャツ この(例2)では(セルA4)ニットがそれにあたります。 そういう場合、B4は空白にする等の処理ができるもの でしょうか? ご回答のほう、よろしくお願いします。

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

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

関数式(またはソート+関数式)を期待しての質問でしょうが、この質問のタイプは、VBA向きの質問で、関数式でできたとしても、今の質問者にはすぐは理解不可能の複雑およびウラ技敵関数利用になると思います。 エクセルは、(1)条件で抜き出しや(2)セル間配置をコントロールするのは(言い換えると、完成したろ仮定して、完成後にどこのセルに行くか単純でない・決まってない・変動する、もののタイプ)難しいです。 ーーー VBAでは 基本的にはマッチングのロジック(下記)でできそうです 1 A列、B列独立してソート(各列は文字コード順に並ぶ) ーー 2 A列 とB列比較 3 A=Bの時A,Bをペアーで書き出し   両方下行に移動 4 A<>B(等しくない)のとき   小さい(文字コードが)方を空白、BまたはA,空白で書き出し。   書き出した方一方の下行を比較対象に上げる。 5 2以下を繰り返し 6 終わり(各行の最下行)の場合、AまたはBの終わりサインをセット。 9 終わりサインでA,.B一致したとき終わり VBAが判るならコードを作って見ますが。 ーーー ソートすると、コンピュターの規則で並んでしまう。会社でふつう考えている順番は崩れるので我慢すること。

gottachan
質問者

お礼

裏技的関数利用になるとの事で・・VBAから当たってみます。 ご回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

条件が不十分です  A列   B列  シャツ  シャツ  ズボン  ズボン  シャツ  ズボン のときは  シャツ  シャツ  シャツ  (空白)  ズボン  ズボン となるものと想像して回答します。補助列を使用します。下手に関数をこねくり回すより良いと思います A列  B列   C列   D列   E列   F列    G列 シャツ 補助列1 補助列2 シャツ  補助列3 補助列4  結果 B1に  =COUNTIF(A$1:A1,A1) を入れて下方向にコピーします。するとその行までのA列のシャツの出現回数が得られます。同様にE1には  =COUNTIF(D$1:D1,D1) と入力すると、D列のシャツの出現回数が得られます C1には  =A1&B1 F1には  =D1&E1 を入力し下方向にコピーします。するとC1には「シャツ1」(A列のシャツの1番目)が表示されます。同様にF1には「シャツ1」(D列のシャツの1番目)が表示されます あとはC列の値と一致するF列の値があるかないかを判断すればよいです。G1の式は  =IF(ISNA(MATCH(C1,F:F,0)),"",INDEX(D:D,MATCH(C1,F:F,0))) です。このセルも下方向にコピーします。 G列をコピーし、同じ列に「編集」→「形式を選択して貼り付け」→「値」にしたあと、補助列は削除してください

gottachan
質問者

お礼

ご回答ありがとうございます。IF関数の使い分けが重要みたいですね、じっくりやってみます。

全文を見る
すると、全ての回答が全文表示されます。
  • neko_noko
  • ベストアンサー率45% (146/319)
回答No.1

(例1)のようなデータなら、 A列だけを選択して並べ替える→B列でも同じように並べ替える これでできそうですが、(例2)のようなデータだと難しそうですね。 かなり力技で手作業も多くなるし、あまりお勧めできないのですが・・・ B列に「条件付き書式」を適用する、というのではどうでしょうか? まずは先ほどのように、A列だけ、B列だけそれぞれ並べ替えます。 次に、B列にA列の値と比較する条件付き書式を設定します。 セルB1の場合だと、セルA1と値が同じでなければ背景色を変える、などしておきます。 ※セル$A$1にならないように気をつけて下さい。 B1に設定した書式を「書式のコピー」を使ってB列全体に適用します。 これにより、背景色を見ればA列と一致しないセルが分かります。 後は上から順に見ていき、違っている部分はセルを挿入して下方向にずらす。 セルを挿入すれば背景色が戻る、はずです。 あとはこれを繰り返す。 A列にあってB列にないものがたくさんあると、かなり大変です。 もっと良いアイデアがあればいいのですが・・・ とりあえずご参考までに。

gottachan
質問者

お礼

 ご回答ありがとうございます。条件付書式の件、早速やってみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelで並べ替え

    Excelのデータを並べ替えたいのですが 「形式を選択して貼り付け」の「行列を入れ替える」ではできません。 1行目は項目名があります。 A2からA12のセルに「あ」、A13からA23のセルに「い」と入力されています。 B2からB12のセルにはそれぞれ異なるデータが、B13からB23のセルにもそれぞれ異なるデータが入力されています。 これを A2に「あ」を表示させて、B2からB12のセルに入力されているデータを 「あ」の右へ横並びに A3には「い」とB13からB23が「い」の右へ横並びに 表示させたいのですが、方法がわかりません。 どのようにしたらできるでしょうか? どうぞよろしくお願いします。

  • EXCEL

    EXCELで、 (1) 例えばA1に『著作権』、B2、B3、B4にその言葉についての 『説明』が入力されていたとします。  B2~B4 の セルの結合を行うと、  『選択範囲には複数のデータ値があります。  1つのセルとして結合すると選択したセル範囲にある最も左上端にあ るデータのみが保持されます(空白セルは無視されます)』  とコメントが出て  結合したセルには B2に入力した内容しか残らなくなってしまいま す。  こうなると『説明』の部分をすべて打ち直し、または他のセルにうつ してから貼り付け作業を行わなくてはなりません。  なんとか良い方法はありませんか?    (2)またA列には用語を、B列以降はその用語の説明をどんどん入れて  いき、最後にA列のデータ並べ替え(五十音順)を行いたいのです  が、A列の並べ替えをおこなっても、用語説明が数行にわたる為、  B列以降を一緒に並べかえすることができません。 (1)だけでも良いので回答いただければとおもいます。

  • Excelで、入力文字の後に自動で空白を入れるには

    セルに任意の文字を入力し、その後ろに自動で空白を入れる方法を探しています。 具体的には、次のような内容です。 1 セル内は必ず全角10文字にする。 2 A1に「北海道」と入れたとき、B1は「北海道       」と空白が7文字分入る。 3 A2に「青森」と入れたとき、B1は「青森        」と空白が8文字分入る。 としたいのです。 可能であればBのセルを使わず、Aに入力しEnterを押したらセル内が変わると言うのが理想ですが… 何かいい方法があれば教えて下さい。

  • Excelの並び替えについて

    こんばんは。初めての質問です。 現在仕事でExcelで入力をしていますが、以下のような状況で並べ替えが必要になりましたが、方法がわかりません。 現在 セルA  セルB 1     11 2     12 4     14 5     15 3     13 と入力されいるものを セルA  セルB 3     13 5     15 4     14 2     12 1     11 このようにセルA,Bをセットで並べ替えをしたいです。 何かよい方法がありますでしょうか。 よろしくお願いいたします。   

  • エクセルで空白セル”” と未入力セルの違い

    関数で セルA1 に=if(B1=0,"","入力済") としました。 セルの選択を素早くするためにショートカットキー「Ctrl+↓」を 利用しています。 通常の未入力空白セルは上記のショートカットで飛ばされて選択 されません。 これに対して上記関数で ""  として入力されたものを コピーして値だけを貼り付けたとしても 上記ショートカットキーで飛ばされず選択されてしまいます。 見た目は 全く同じ 空白セルです。(関数も値貼り付けをしているので消えています。) 未入力の空白セルと 関数で""と入力されて値貼り付けを受けたセルではどこが違うのでしょうか。 また、未入力の空白セルに 戻すには関数でどのように入力させればいいのでしょうか。もちろんDeleteKeyを使って未入力の空白セルに 戻るのですがそれではショートカットキーでとばせるメリットがなくなります。関数で大量に処理したいのです。 おわかりの方お教えください。

  • Excel 関数で上から順に数字を整列させる

    Excelで、下記表(例)に入力された数字を上から順に関数を用いて隣のB列に整列させたいです。 ・例 A1:A60の表があります。 ※以下A列に入力された数字とします 1 空白 2 20 3 空白 4 15 5 25 ・(省略、この間空白と考えて下さい) ・ ・ 59 10 60 空白 上記表(例)は、A2に20,A4に15,A5に25,A59に10それ以外は空白を表します。 上記表のセル内数字は全て手入力とします。 全てのセルが空白の場合もあります。 B列はB1:B5の5行です。 この入力された数字を関数を用いて、B列に上から順にB1に20,B2に15,B3に25,B4に10,B5は空白となるように整列させたいです。 B列セル結果は他シートに参照されますのでセルはロックを掛けています。 上記のことからデータの並べ替えも使えませんし昇降順でもありません。 上から順に整列させた数字を、B1:B5の5行内で上位5まで表示させます。 A列の行数が多いのでif関数も使えません。 なお、上記質問内に不明な点がありましたら補足させて頂きます。 以上、宜しくお願いします。

  • Excelに関しての質問です。

    A1のセルに、数字(1~)が入力されたら、B1のセルに◯%と表示される。しかし、A1が空白のままなら、B1には何も表示されないまま というような事を関数を用いてできるようにしたいのですが、どういう式にすれば上手くいくでしょうか? 例: A1 B1 1 ◯% ←A1.B1ともに空白 2 ◯% また、上記の式に【B1に表示したい◯%がA1の値によって、2種類ある】という場合は、どうすれば良いかも可能でしたら、教えて下さい。 例: A1 B1 1 58% ←ともに空白 2 60% それでは、よろしくお願い致します。

  • エクセルのグラフ作成で空白セルのラベル設定方法

        あいうえお Aさん 1   1 2 Bさん 2   3 Cさん    2  4 こんな感じの空白セルのある表を積み上げ棒グラフに したいのです。 凡例が多いのでできれば系列ラベルを棒に付けたい のですが、空白セルの部分のラベルが重なって表示 されて読めなくなってしまい上手くいきません。 (上の例だとAさんの「い、う」が重なって表示さ れます) 上手く表示される方法を教えてください。

  • エクセルのグラフについて

    Excel2000のグラフについて教えていただきたいのですが 有るセルの数字から、別のセルへ計算で値を作りその値でグラフを作ろうとしているのですが。 何も入っていないセルは何も入っていないように、たとえば if(a1="","",a1*3) の様に式を入れたのですが。グラフにするとこの空白セルと0と認識しているようです。 x軸に一杯ポイントがうたれます。 グラフにこの空白セルを表示しないようにするにはどうしたらよろしいでしょうか。 空白セルを削除するとうまく行くのですが、いっぱいあって面倒なので何かいい方法がないか探しております。 よろしくお願いいたします。

  • エクセルの関数入力【初心者です】

      A   B    C 1 1000  700 2 2000 3 1000  580 4 8000  790 のようなA列には常に数字が、B列には数字があるところとないところのあるデータです。 C列のセル入力する 「Bセルに数字があればA-B、Bセルが空白なら空白のまま」という関数はどう入力すれば良いか教えてください。 宜しくお願い致します。

専門家に質問してみよう