「夫を成功」へ導く妻の秘訣 座談会

エクセルでA列にはあるがB列にはない項目を抽出するにはどうしたらよいでしょうか。
下の例だと、C列あたりに、山本、川田を抽出したいのですが……
A列にはB列のデータがすべて含まれています。
A列は10月と11月のデータで、B列は10月のデータです。

A列   B列
山田  山田
山本  川上
川田
川上

このQ&Aに関連する最新のQ&A

アンサープラス

エクセルでは様々なデータの削除や抽出などができますよね。


こちらのページでは、表の中で重複しているデータを削除する方法が掲載されていますので、参考となるかもしれませんね。

・表の重複している項目を削除する - Excel (エクセル) - Microsoft atLife TIPS アーカイブ
https://www.microsoft.com/ja-jp/atlife/tips/arch …

A 回答 (3件)

色々な方法がありますが、COUNTIF関数とIF関数で、一致するものしないものが選択できそうですね。


データがA1:A4、B1:B2にあるとします。
C列に
=IF(COUNTIF($B$1:$B$2,A1)=0,A1,"")
と入力すれば、A1の値がB列の範囲内になければ、A1を表示、ない場合には何も表示しません。
ご確認下さい。
    • good
    • 12
この回答へのお礼

ありがとうございます。できました。
こんなシンプルでわかりやすい方法があったんですね。

お礼日時:2006/11/15 20:28

次の方法は如何でしょうか。


C1セルに次の数式を設定し、下方向にコピーして下さい。
配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。
=INDEX(A:A,SMALL(IF(COUNTIF($B$1:$B$100,$A$1:$A$100)=0,ROW($A$1:$A$100),9999),ROW(A1)))&""
    • good
    • 8

関数で簡単にできないかちょっと首をひねってみましたが、きれいにできる方法を思いつかなかったので、マクロを書いてみました。


Alt+F11でVBAの画面を起動して、以下のマクロを貼り付けてみてください。
マクロの実行はAlt+F8からできますが、フォームのツールバーからボタンを配置して、このマクロを登録しておけばボタン一つで表示されます。

Sub AとBの差分をCに表示()
  Dim r As Range
  Dim i As Integer
  i = 1
  With Worksheets(1)
    Range("C:C").ClearContents
    For Each r In .Range("A1", .Range("A65535").End(xlUp))
      If .Range("B:B").Find(r.Value) Is Nothing Then
        Cells(i, 3).Value = r.Value
        i = i + 1
      End If
    Next
  End With
End Sub
    • good
    • 7
この回答へのお礼

解答ありがとうございます。
今、VBAを勉強しているので参考になります。

お礼日時:2006/11/15 20:32

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelで[表1]にあって、[表2]にないものを抽出する関数

Excelで[表1]にあって、[表2]にないものを抽出する関数

例)[表1]   [表2]
   A社     A社
   D社     D社
   R社     P社
   P社     R社
   D社
   F社
   F社

上記は簡単に書きましたが、表1に重複するものも含め、300社程度あるなかで
表2にリストアップされていない会社を見つける関数やその他方法論があれば
ぜひ教えてください!
(例でいえば、F社を見つける方法です。)

抽出するのは別シートでも、同じシートでも構いません。

Excel2003でも対応できるものであれば、なお嬉しいです。

よろしくお願いします。

Aベストアンサー

Countif関数で同じものがいくつあるか数えさせます。
   A   B        C
  [表1]表2にある数   [表2]
   A社          A社
   D社          D社
   R社          P社
   P社          R社
   D社
   F社
   F社
だとして
B列に =Countif(C:C,A2)
と入れて下までコピィすれば 表2に同じものがいくつあるか出ますので
0 がないものです。

QExcelで2つのファイルの違い(Diff)をとりたい

Excelでファイル名が同じで更新日付の異なる2つのファイルがあります。
この2つのファイルで内容が変わっている部分を知りたいのですが、良い方法はあるでしょうか?
(もしくは内容が変わっているかどうかだけでも知りたい)

比較が必要なファイルが大量にあるため、一つずつ見比べる時間が無く、困っています。

Aベストアンサー

使ってないのでお勧めはわかりませんが、こちらのフリーソフトを試してみては?
http://search.vector.co.jp/search?query=excel+%94%E4%8Ar

Qエクセル【A列とB列の不一致を知りたいです】

初めまして。
お忙しい中、大変申し訳ございませんが、下記に関して、ご指導のほど、宜しくお願い致します。

***************
【例】
A列    B列

あめ    チョコ
ガム    ポテトチップス
チョコ   あめ
       ガム


という列があり、A列はA1000まで続き、B列はB3000まで続きます。
必ずしも、A列の横に同じお菓子名があるわけではありません。

そこで、A列とB列を比較し、B列にしかないもの(上記「例」ではポテトチップス)のセルに色づけ、もしくはC列に、不一致するものだけ「NG」等が記載される数式を教えてください。

お忙しい中、大変申し訳ございませんが、
何卒宜しくお願い申し上げます。

Aベストアンサー

条件付書式で、B列のセルに
「数式が」
=ISERROR(VLOOKUP(B1,A:A,1,FALSE))
で書式を設定し下にコピーすると、無いものだけが書式変更されます。

同じように、B列の隣のC列に
=IF(ISERROR(VLOOKUP(B1,A:A,1,FALSE)),"NG","")
として下にコピーしても隣にNGと表示できます。

Qエクセル 2枚のシートの違いを抽出したい

目を通していただきありがとうございます。
エクセルは全く詳しくないため、質問させていただきます。

sheet1とsheet2に各2000行ほどの表があります。

sheet1
A列(商品) B列(産地) C列(定価) D列(特価) E列(数量)
 みかん    愛媛     100      80       500
 みかん    静岡     120      85       400
 オレンジ  アメリカ     150      90       100
 
sheet2
A列(商品) B列(産地) C列(定価) D列(特価) E列(数量)
 みかん    愛媛     100      80       300
 オレンジ  アメリカ     150     100       100
 いちご     福岡     300     150       100
 みかん    静岡     120      70       400

それぞれ「1行目のみかん」はA~D列まで同じ値で、E列のみの違いですので、
抽出の必要はありません。
sheet2の3行目のいちごはsheet1にはありませんので、これも抽出の必要はありません。


sheet1の2行目とsheet2の4行目のみかん、
sheet1の3行目とsheet2の2行目のオレンジ、はD列(特価)の違いがあります。
この<D列のみ違いがある>ものを行単位でsheet3に抽出したいのですが、
何か良い方法(関数等)がありましたら、教えていただけないでしょうか?

なお、表題に「エクセル」と書きましたが、実際はKingsoftのSpreadsheets 2012を使用しています。
基本的な関数でしたらそのまま使えるようですので、エクセルとして書かせていただきました。

よろしくお願いいたします。





 
  

目を通していただきありがとうございます。
エクセルは全く詳しくないため、質問させていただきます。

sheet1とsheet2に各2000行ほどの表があります。

sheet1
A列(商品) B列(産地) C列(定価) D列(特価) E列(数量)
 みかん    愛媛     100      80       500
 みかん    静岡     120      85       400
 オレンジ  アメリカ     150      90       100
 
sheet2
A列(商品) B列(産地) C列(定価) D列(特価) E列(...続きを読む

Aベストアンサー

 今仮に、Sheet4のA列とB列を作業列として使用するものとします。

 まず、Sheet4のA2セルに次の関数を入力して下さい。

=IF(INDEX(Sheet1!$A:$A,ROW())="","",IF(COUNTIFS(Sheet2!$A:$A,INDEX(Sheet1!$A:$A,ROW()),Sheet2!$B:$B,INDEX(Sheet1!$B:$B,ROW()),Sheet2!$C:$C,INDEX(Sheet1!$C:$C,ROW()),Sheet2!$D:$D,"<>"&INDEX(Sheet1!$D:$D,ROW()),Sheet2!$E:$E,INDEX(Sheet1!$E:$E,ROW())),10000000+ROW(),""))

 次に、Sheet4のB2セルに次の関数を入力して下さい。

=IF(INDEX(Sheet2!$A:$A,ROW())="","",IF(COUNTIFS(Sheet1!$A:$A,INDEX(Sheet2!$A:$A,ROW()),Sheet1!$B:$B,INDEX(Sheet2!$B:$B,ROW()),Sheet1!$C:$C,INDEX(Sheet2!$C:$C,ROW()),Sheet1!$D:$D,"<>"&INDEX(Sheet2!$D:$D,ROW()),Sheet1!$E:$E,INDEX(Sheet2!$E:$E,ROW())),20000000+ROW(),""))

 次に、Sheet4のA2~B2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。

 次に、Sheet3のA2セルに次の関数を入力して下さい。

=IF(ROWS($2:2)>COUNT(Sheet4!$A:$B),"",INDEX(CHOOSE(INT(SMALL(Sheet4!$A:$B,ROWS($2:2))/10000000),Sheet1!$A:$E,Sheet2!$A:$E),MOD(SMALL(Sheet4!$A:$B,ROWS($2:2)),10000000),COLUMNS($A:A)))

 次に、Sheet3のA2セルをコピーして、Sheet3のB2~E2の範囲に貼り付けて下さい。
 次に、Sheet3のA2~E2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。


 これで、<D列のみ違いがある>データのみが、Sheet3に抽出されます。

 今仮に、Sheet4のA列とB列を作業列として使用するものとします。

 まず、Sheet4のA2セルに次の関数を入力して下さい。

=IF(INDEX(Sheet1!$A:$A,ROW())="","",IF(COUNTIFS(Sheet2!$A:$A,INDEX(Sheet1!$A:$A,ROW()),Sheet2!$B:$B,INDEX(Sheet1!$B:$B,ROW()),Sheet2!$C:$C,INDEX(Sheet1!$C:$C,ROW()),Sheet2!$D:$D,"<>"&INDEX(Sheet1!$D:$D,ROW()),Sheet2!$E:$E,INDEX(Sheet1!$E:$E,ROW())),10000000+ROW(),""))

 次に、Sheet4のB2セルに次の関数を入力して下さい。

=IF(INDEX(Sheet2!$A:$A,ROW())="","",IF(...続きを読む

Q膨大なデーターの変更点のみ抽出するには?

お世話になります。

ある管理データーがあり、それを定期的に分析しています。
元のファイルはイントラにあり、数百人の人が自分のデーターを時々更新しています。

例えば半年後に、こちらで分析するに当たり、
今イントラから取り出したデーターと、半年後に取り出したデータのどこが更新されているか、
比較する式があれば教えていただきたく、

何卒宜しくお願いいたします。
使用しているのはエクセル2010で、このデーターは1万行位あり、今までは一から分析しており、
今後追加されている分だけ取り出せないかと思い、質問させていただきました。

Aベストアンサー

最終的にどのようなデータが欲しいのかによって、最も合理的な処理方法が異なります。

たとえば、更新データでは行の挿入などのレイアウトの変更は行わず(同じデータは同じ行に入力されている)新しいデータは行末に追加するなら、セルの変更箇所だけを調べればよいことになります。
これを行うには条件付き書式などで変更点のセルの色を変更するなどの処理が可能です。
さらにタイトルの「抽出したい」というのがそのデータだけを一覧表示したいという意味なら、関数でデータの変更をチェックするかフィルタオプションの設定などを利用することになります。

その場合でも、データの入力形式や(たとえば名前の列がA列で同じ名前はデータベースシートに1つしかないなど)、新しいデータの修正方法によって、使用する数式が異なることになります。

したがって、最終的にどのようなことがしたいのか(修正点がわかるだけでよいのか、一覧データを取得したいのか)によって、合理的な処理方法がことなりますので、その部分を補足説明してください。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Q2つのシート間での重複データのチェック

Excelについて教えてください。
以下の2つのシートがあります。

Sheet1
すずき 03-0000-0000
やまだ 03-1111-1111
たなか 03-2222-2222

Sheet2
03-1111-1111
03-4444-4444
03-0000-0000
03-2222-2222

Sheet1には名称と電話番号、Sheet2には別所から抽出した電話番号のみのデータがあります。
Sheet1のデータの中からSheet2に電話番号があるものだけを知りたいのですが、たとえばSheet1の 各行のC列 に Sheet2に一致する番号があった場合は●等付けるにはどうすればよいでしょうか。

よろしくお願いします

Aベストアンサー

シート1のC列に式を入れます。
=IF(ISNA(VLOOKUP(B1,Sheet2!A:A,1,FALSE))=TRUE,"-","●")

【式の説明】
シート1のセルB1の値が、シート2のA列に、存在する場合は●を、存在しない場合は-をセット。

QB列の値がA列にあるかを調べる関数

excel2010を使っています。
題名の通りなのですが、B列にある値がA列にあるかを関数を使って求めたいと思います。

B列に290個、A列に259個の値が入力されていて、

・B列にあってA列にないもの
・A列にあってB列にないもの

の両方を見つけ出したいのですが、よい関数を教えてください。exact関数ではダメでした。

Aベストアンサー

C1セルに
=IF(COUNTIF(B:B,A1),"","このAはAにあってBに無い")
以下コピー
D1セルに
=IF(COUNTIF(A:A,B1),"","このBはBにあってAに無い")
以下コピー

とそれぞれ埋めて検査します。

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング