• 締切済み

エクセル重複を横に配置し横列を連動し並び替え

A B C 1 5 □ 2 7 ○ 3 1 △ 4 2 @ 5 6 7 ↓ A B C 1 1 △ 2 2 @ 3 4 5 5 □ 6 7 7 ○ A列に合わせ重複したB列を並び替える。 C列以降はB列に連動して並び替えたいです。 ご解答いただけたら大変助かります。 どうぞ宜しくお願いいたします。

みんなの回答

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.6

B,C列の内容をE,F列に並び替えて表示しています。 E1セルに↓の式を入れてE1:F7にコピーしてみてください。 =IFERROR(VLOOKUP($A1,$B:$C,COLUMN(A1),FALSE),"")

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

#3です。 VBAでやると簡単にならないかと、趣味でやってみました。 コメント(注釈)、見てみてくだされば、何をやるのかわかるでしょう。 VBAと言っても、あくまで我流の1方法です(Findを利用法)が。 全体では、あまり簡単にならなかったという、感想ですが。「見つかった時の処理」の2行がポイントです。 Sub test01() Set sh1 = Worksheets("Sheet1") 'シート1を捉える Set sh2 = Worksheets("Sheet2") 'シート2を捉える lr = sh1.Range("A100000").End(xlUp).Row 'データ最終行を捉える 'MsgBox lr '--各行の処理の繰り返し For i = 2 To lr '--順序数セット sh2.Cells(i, "A") = sh1.Cells(i, "A") '--探す数は x = sh1.Cells(i, "A") '--その数をシート1のB列で探す Set r1 = sh1.Range("B1:B100000").Find(x) If r1 Is Nothing Then '--見つからない時は、何もせず次行処理へ Else '--見つかった時の処理 ' MsgBox r1.Row '--見つかった数をシート2のB列にセット sh2.Cells(i, "B") = sh1.Cells(r1.Row, "B") '--その右隣C列の記号をシート2にセット sh2.Cells(i, "C") = sh1.Cells(r1.Row, "C") End If '--- Next i End Sub ’--- Sheet2の結果 1 1 △ 2 2 @ 3 4 5 5 □ 6 7 7 ○ 「並べ替える」というよりも、該当のものを見つけて、しかるべき、セルに代入する、という考えです。 ーー こういうロジック(考え方)が、どちらがよいか、経験を積んで、見極めるのが、データ処理の肝心な点だと思います。

回答No.4

【参考までに】  これって、一種の左外部結合ってやつだから、SQL文で書けば次のようになります。 SELECT A.F1, BC.F1, BC.F2   FROM [Sheet7$A1:A10] AS A   LEFT JOIN [Sheet7$B1:C10] AS BC   ON A.F1 = BC.F1  で、実際にイミディエイトウインドウで上記SQL文を実行すれば、以下のような結論を得ます。 [イミディエイトウインドウ] ?DSelect("SELECT A.F1, BC.F1, BC.F2 FROM [Sheet7$A1:A10] AS A LEFT JOIN [Sheet7$B1:C10] AS BC ON A.F1 = BC.F1;",,Chr(13),,False) 1;1;△ 2;2;@ 3;; 4;; 5;5;□ 6;; 7;7;〇  まあ、式が簡単なのか?それとも、SQL文が簡単なのかは、見解の分かれるところですが・・・。一応、目的を達成する方法は、色々あるってことです。  参考までに・・・

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

何処に結果を出すかが、質問に書いてない。 E,F,G列に出すとして E2は =A2 下方向に式を複写する。 F2は =INDEX(B$2:B$7,MATCH(A2,B$2:B$7,0),1) と、入れて、その式を下方向に式を複写する。 G2は =INDEX(C$2:C$7,MATCH(A2,B$2:B$7,0),1) と、入れて、その式を下方向に式を複写する。 ーー 結果 E2:G8 1 1 △ 2 2 @ 3 #N/A #N/A 4 #N/A #N/A 5 5 □ 6 #N/A #N/A 7 7 ○ となる。このエラーはjy間なので、 式の先頭に、エラーチェック式を加えて、F2では =IF(ISNA(MATCH(A2,B$2:B$7,0)),"",INDEX(B$2:B$7,MATCH(A2,B$2:B$7,0),1)) G2では =IF(ISNA(MATCH(A2,B$2:B$7,0)),"",INDEX(C$2:C$7,MATCH(A2,B$2:B$7,0),1)) のようにすればよい。 結果 F,G列は 1 △ 2 @ 5 □ 7 ○

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.2

添付図参照 1.次の各セルにそれぞれ右側の式を入力  ̄ ̄C9: =IF(MAX((B$1:B$7=A9)*(ROW(A$1:A$7))),INDEX(C$1:C$7,MAX((B$1:B$7=A9)*(ROW(A$1:A$7)))),"")  ̄ ̄ ̄ ̄【お断り】上式は必ず配列数式として入力のこと  ̄ ̄B9: =IF(C9<>"",A9,"") 2.範囲 B9:C9 のフィルハンドルを「エイヤッ!」とダブクリ!

  • HohoPapa
  • ベストアンサー率65% (454/690)
回答No.1

期待の並び替えを行った結果を、 同じシートのD,E,F列に出力してよければ D1=A1 E1=IF(ISNA(MATCH(A1,B:B,0)),"",A1) F1=IFNA(INDEX(C:C,MATCH(E1,B:B,0)),"") 別シートのA,B,C列に出力したい場合は A1=Sheet1!A1 B1=IF(ISNA(MATCH(Sheet1!A1,Sheet1!B:B,0)),"",Sheet1!A1) C1=IFNA(INDEX(Sheet1!C:C,MATCH(Sheet1!E1,Sheet1!B:B,0)),"") とし、必要数下方向に複写する関数はいかがでしょうか?

関連するQ&A

  • エクセルの重複

    すいませんが人から引き継いだデータで重複があって それを削除したいんですがやり方を教えてください。 A  B  C   1 100 200  重複 2 11  10 3 15  22 4 200 13  重複 5 200  3  重複 6 200 100 重複 と言った感じでC列に重複してると表示させたいのですが・・ 何か良い方法はあるでしょうか? A列もB列も並び替えができない状態になってます。

  • エクセル 重複調べる

    エクセルの重複を調べる方法について何ですが、 a1,b1,c1に文字列が入っているのですが、 a1~c1の中に重複しているものが一つあったら(a1とc1が同じ、もしくはa1とb1が同じ、b1とc1が同じ)d1に1と表示して、重複無しだったら0と表示する関数はありますか?

  • EXCELの重複チェック

    エクセルで重複する文字列のセルに色付けしたいです。ただ重複する文字列を同色でカラーリングすることはできるのですが、同じ文字列毎に色を変えることは可能でしょうか。 下の例でいうと、Aは赤、Bは青、Cは緑、、、、というイメージです。 例) A B B C C C C A B C

  • ExcelでA列内で重複するレコードを削除

    A、B、C列にデータが入力されており、A列の店名が重複する場合、最初の1つを残して、他の重複するレコード(行全体)を削除する方法を教えてください。 A列で重複していても、B、C列で内容が違う可能性があります。 例えば、 A列:田中商店 B列:本町1-1-1 C列:0120-000-000 A列:田中商店 B列:本町1-1-11 C列:0120-000-001 この様にA列で田中商店が重複する場合、1番目の田中商店の行だけを残し、2番目以降は行全体を削除して上方向に詰めたいです。

  • エクセル 重複セルについて

    住所リストを制作しておりまして、 全リストから、一定の人を削除したリストを作りたいのですが、 方法が分かりません。 重複しているセルをソートできればと思うのですが、 どなたかお教えいただけますでしょうか?   A列  B列 C列  D列  1 住所 田中     太田 2 住所 斉藤     田中 3 住所 太田     木村 4 住所 木村     渡邉 5 住所 小林  B列にある氏名の中にD列の氏名が重複していたら、 下記のようなことができますでしょうか? ●C列に”重複”と出る   A列  B列 C列    1 住所 田中 重複 または ●B列と重複するD列のセルが隣に並び変えられる   A列  B列 C列  D列  1 住所 田中     田中 なお、A列とB列は一緒にしたいので、 B列だけが並び変えられることは避けたいです。 緊急SOSです! よろしくお願いいたします。

  • 重複したデータを動かさずに並び替えを行う方法

    是非、教えてください。 Excel2000を使用しています。 データベースに重複したデータが存在しているのですが、 作業の都合上、特定の行(B行やC行)を基準にし、 重複しているデータがありその関係を維持したい列(3・4列)の データを固定したまま並び替えを行いたいと考えています。 ところが、普通に並び替えをしてしまうと、 3・4列にあったデータが離ればなれになってしまい困っています。 また優先されるキー等も活用しましたが上手くいきませんでした。 なにか良い方法はあるのでしょうか? 具体例(Cを基準に並び替え)    A    B   C 1  ID  項目1 項目2 2  11   A    c 3  12   B    d ※ 4  12   C    b ※ 5  13   D    a 6  14   B    c ↓ このようにしたいです。    A    B   C 1  ID  項目1 項目2 2  13   D    a 3  12   C    b ※ 4  12   B    d ※ 離ればなれにならない! 5  11   A    c 6  14   B    c 分かりにくい文章で恐縮ですが、 どうぞよろしくお願いします。

  • 「エクセル」で重複したデータだけを呼び出したい。

    「Excel2000」を使用しています。 「重複しているデータだけ抽出する」 ということは出来るでしょうか? たとえば「A列」に名前が入っていて、 「B列」に住所、「C列」に電話番号が 入っているとします。 重複した名前だけを呼び出して、 なおかつ「B列」「C列」の データも表示させたいのですが…。

  • 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列ごとに表示したいのです。 宜しくお願いいたします。

  • エクセルで重複したデータの処理をしたい

    お世話になります。 A列はランダムに数字が入っています。(並び替えはされていない) このA列の数字は重複するものがあります。 A列の中で重複する場合に、上から順に1/3,2/3,3/3などになるようにしたい。 例) A1:1 A2:2 A3:1 A4:3 A5:1 A6:2 A7:4 のとき 1は3つ出てくるので1/3,2/3,3/3 2は2つ出てくるので1/2,2/2  3,4は1つなので空白にする。 このときB列に分子を、C列には分母を入力する。 この例の場合、B1:1 C1:3 B2:1 C2:2 B3:2 C3:3 B4:空白 C4:空白 B5:3 C5:3 B6:2 C6:2 B7:空白 C7:空白 と入力されるようにするにはどういう計算式をB列、C列に入れておけばよいのでしょうか? Excel2002です。 実際はかなりの量があります。 よろしくお願いします。

  • エクセルで対象のものを重複しているのもを省いて1つだけ取り出す方法

    エクセルの表で次のようなことをしたいのですが どのようにしたらいいのか教えて下さい。 Aの列に大きな項目、Bの列に小さな項目があるとします。 大きな項目の1種類を選んでそれに該当するB列のものを抜き出したいのですが 重複しているものは1つだけを取り出したいのです。 例えば   A      B  野菜     にんじん くだもの    バナナ くだもの    りんご  野菜     じゃがいも くだもの    バナナ と、いう表があったとして Aで「くだもの」となっている行のB列に書かれているものをC列に抜き出すとします。 その際、重複しているものは、いくつも抜き出さず1つだけ抜き出したいんです。 つまり   C  バナナ  りんご とする方法です。 重複がない時は オートフィルタでA列でくだものを選びBをコピーし貼り付けを行っていたのですが 重複がある時はそれだけではとても面倒ですし しょっちゅうすることなので、重複がなかったとしてももっと作業を簡素化したいと思っているのですが 簡単に行う方法はありますか? 知っている方がいらっしゃいましたらぜひ教えて下さい。

専門家に質問してみよう