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

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

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

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

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

よろしくお願いします。

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

A 回答 (5件)

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 がないものです。
    • good
    • 19

[フィルタオプションの設定]で一発(?)で可能です。


添付図参照

D2: =COUNTIF(B$2:B$5,A2)=0
「Excelで[表1]にあって、[表2]に」の回答画像5
    • good
    • 20

項目名が1行目に入力されており、表1がA列(データはA2セル以下)に、表2がC列にあるなら、補助列のB列(B2セルに以下の式を入力し下方向にオートフィルします。



=COUNTIF($C$2:$C$100,A2)+COUNTIF($A$1:A1,A2)

A列のみに存在するデータは以下のような数式で表示できます。

=INDEX(A:A,SMALL(INDEX(($B$2:$B$100<>0)*1000+ROW($B$2:$B$100),),ROW(A1)))&""
    • good
    • 11

   A   B   C


1 A社  B社 ここに式

2 B社  D社 C1からコピー

3 C社  A社 C1からコピー


上記のデータの場合に、下の関数を「c1」セルに入力してください。
別の方が回答しているものを式にしたものです。

=IF(ISNA(VLOOKUP(B1,$A$1:$A$3,1,FALSE)),"見当たらない","重複")
    • good
    • 18

表1の各値の横にVLOOKUPで,表一の値を表2から探すようにする。

(検索方法は完全一致で)
この結果でエラー(#N/A)になるものが表2にないものです。
if分と組み合わせて#N/Aを置き換えるときれいに出すこともできますが,要素数が
多くなると,重くなります。
    • good
    • 7

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

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

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

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

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

QExcel セル内容を[Ctrl]+[A]で全選択

Excel セル内容を[Ctrl]+[A]で全選択
環境:Windows XP/Excel2000

1つのセルに
ABC
DEF
GHI
と3行入力してあります。
このセルを別のブックのセルに転記したくても結合環境の違いなどでコピーできない場合、セルをダブルクリックしてから内容をドラッグなどしてコピーする方法があります。

しかしこの場合、ドラッグのミスで内容が欠落したり、コピー回数が多いとドラッグが面倒な場合があります。
できれば、セルをダブルクリックの後、[Ctrl]+[A]をしてセル内容を全選択したいのですが、出来ません。

ですので、セルをダブルクリックの後、[Ctrl]+[HOME]の後、[Shift]+[↓][↓][↓]などを考えてみたのですが、これも得策と思えません。
良い方法があれば教えてください。

Aベストアンサー

>回答番号:No.1 この回答へのお礼

失礼しました。
Microsoft Forms 2.0 Object Libraryを参照設定をします。
VBEの画面で、ツール>参照設定 で探してチェックを入れてください。

個人用マクロブックに置けばExcel全てのブックで使用できます。
ショートカットキーを割り当てるか、ボタンをツールバーに置けばよいと思います。

他には、セル間のコピーマクロを組んでもよいかも知れません。
結合状態に関係なく「値」の転記をすることは可能です。

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Qexcel2000で[データ] ⇒ [区切り位置]の使い方は

記述が理解しにくいとのことなので表現を詳しく変えました。

応募者用に指定してある、
年月と経歴記述との間に縦罫線が入った履歴書書式(添付を参照)に、
ms-wordで作って保存してある縦罫線無しの形式の履歴書を
読み込みまたはcopy & pasteして
その縦罫線が入った書式内に、、
縦罫線の両側に年月と経歴記述とを分離させた状態で
はめ込む処理をしたいのです。
flow chart形式で手順を教えてください。

追加情報は、
最後の段階でwordに戻って何か処理をするらしいということです。

Aベストアンサー

> excel2000で[データ] ⇒ [区切り位置]の使い方は

下記URLのページのような使い方をします。
「切り位置で楽々データ分割」
http://kokoro.kir.jp/excel/delimitation-position.html

> 応募者用に指定してある、年月と経歴記述との間に縦罫線が入った履歴書書式(添付を参照)に、
> ms-wordで作って保存してある縦罫線無しの形式の履歴書を
> その縦罫線が入った書式内に、縦罫線の両側に年月と経歴記述とを分離させた状態ではめ込む処理をしたいのです。

1)
応募用のExcelファイルのセルの1個ずつに、当該データ(日付とその内容に分けて)コピペします。
(手数は必要ですが、いろいろな方法を調べている時間より短時間で完成できると思います。)

2)
1. 応募用紙の邪魔にならない部分に、作成したWordファイルをコピペします。
2. 前記URLを参照して、「データ」→「区切り位置」を操作して、表示位置を縦罫線の両側の所定セル範囲を指定します。
(但し、Wordのファイルのデータが「日付」と「その内容」の間にスペースなどの「区切り記号」が挿入されていることが条件です。)

> 最後の段階でwordに戻って何か処理をするらしいということです。

??

> excel2000で[データ] ⇒ [区切り位置]の使い方は

下記URLのページのような使い方をします。
「切り位置で楽々データ分割」
http://kokoro.kir.jp/excel/delimitation-position.html

> 応募者用に指定してある、年月と経歴記述との間に縦罫線が入った履歴書書式(添付を参照)に、
> ms-wordで作って保存してある縦罫線無しの形式の履歴書を
> その縦罫線が入った書式内に、縦罫線の両側に年月と経歴記述とを分離させた状態ではめ込む処理をしたいのです。

1)
応募用のExcelファイルのセルの1個...続きを読む

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

Q[エクセル]複数条件を抽出する関数

エクセル初心者級です。
(関数はある程度理解できますが、マクロはできません)

今、休暇管理のエクセルシートを作っていて
下のような表を作成しています。

    A      B      C     D     E     F…
1 [氏名]    [合計]   [4/1]  [4/2]  [4/3]  [4/4]
2 山田太郎  1.5日        半休        全休
3 田中花子  0.5日        半休
4 鈴木美穂  1.0日              全休


このデータを基に別シートのカレンダに落とし込みたいのです。


    A     B     C     D     E     F     G
1 2011年4月
2  日曜   月曜   火曜   水曜   木曜   金曜   土曜
3                                 1 2
4                                   山田・田中
5   3     4     5     6     7     8 9
6 鈴木    山田


A1セルに年月を入れたら自動で日付が入るようカレンダは作成しました。
後は、基シート(上の表)でその該当日に
全休なり半休なりの言葉を入れている人を抽出し
カレンダの日付の下に名前を入れられるようにしたいのです。

(1)カレンダと表の日付が一致していて
(2)その日付の表の所に何かしらの文字が入っている人

を自動で抽出したできるようにしたいのですが
何か良い方法はないでしょうか。
このシートはパソコンを使い慣れていない人も使用するため
できれば関数で一発でできるようなものがあれば有りがたいのですが…
アドバイスをいただけないでしょうか。
よろしくお願いいたします。

エクセル初心者級です。
(関数はある程度理解できますが、マクロはできません)

今、休暇管理のエクセルシートを作っていて
下のような表を作成しています。

    A      B      C     D     E     F…
1 [氏名]    [合計]   [4/1]  [4/2]  [4/3]  [4/4]
2 山田太郎  1.5日        半休        全休
3 田中花子  0.5日        半休
4 鈴木美穂  1.0日              全休


このデータを基に別シ...続きを読む

Aベストアンサー

関数なら判るのでしたら,範囲を指定して(たとえばA2:A5のように)セルの文字列を結合する関数は無い事はご存じですね。

比較的簡単な方法:
管理表の5行目など(実際は10行目でも20行目でも構いません。邪魔にならないところに)に
C5:
=SUBSTITUTE(TRIM(CONCATENATE(IF(C2="","",LEFT(TRIM($A2),FIND(" ",JIS(TRIM($A2)&" "))-1))," ",IF(C3="","",LEFT(TRIM($A3),FIND(" ",JIS(TRIM($A3))&" ")-1))," ",IF(C4="","",LEFT(TRIM($A4),FIND(" ",JIS(TRIM($A4))&" ")-1))))," ",",")
と記入して,31日の列まで右にコピーしておきます。
式の中で使っているスペースは全て全角のスペースなので,間違えないよう注意してください。

もちろんこんなチマチマした式は入力する人には一切触って貰う必要はありませんから,行を隠すなり目に付かないところに追いやるなりシートを保護するなりして,触られないよう手はずをしておきます。



カレンダーに「日付が入る」とは,数字の1,2,3を計算で出してあるのか,それとも「年/月/日」で日付を計算させて日付の値のみ表示させてあるのか,どっちでしょうか。そこが変わると数式も変わります。
また,日付の無い(先月末と来月になる)マス目には,やはり日付を計算して条件付き書式などで目に見えない仕込みをしてあるのか,それとも式を駆使して""を計算させてあるのかどちらでしょうか。こういう違いでも,数式はイチイチ手だてを変えてやらないとまともに計算できません。

123と""で計算してあるとして:
A4:
=IF(A3="","",INDEX(Sheet1!$C$5:$AG$5,A3))
右にコピー,2週目以降にコピー
などのような具合で出来ます。



#メンドクサイ方法:
勿論,前段に書いたような式の組み立てを無理矢理カレンダーのA4の式の中に組み込んでも,そりゃやればできますので,もしどうしてもそうしたければチャレンジしてみてください。

関数なら判るのでしたら,範囲を指定して(たとえばA2:A5のように)セルの文字列を結合する関数は無い事はご存じですね。

比較的簡単な方法:
管理表の5行目など(実際は10行目でも20行目でも構いません。邪魔にならないところに)に
C5:
=SUBSTITUTE(TRIM(CONCATENATE(IF(C2="","",LEFT(TRIM($A2),FIND(" ",JIS(TRIM($A2)&" "))-1))," ",IF(C3="","",LEFT(TRIM($A3),FIND(" ",JIS(TRIM($A3))&" ")-1))," ",IF(C4="","",LEFT(TRIM($A4),FIND(" ",JIS(TRIM($A4))&" ")-1))))," ",",")
と記入し...続きを読む

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

Q[VBA]文書内の特定語句をハイライト[Word]

ある単語のリストがあり、そのリストにある単語が Word 文書内にある場合、すべてをハイライトしたいのですが、うまくできません。
次のコードです。これだと「初出のみ」のヒットしかハイライトされません。
これを「ヒットしたすべて」にかえることはできるのでしょうか?

Dim search(2) as string
search(0) = "abc"
search(1) = "def"
search(2) = "ghi"

For i = 0 To 2

Selection.Find.ClearFormatting
With Selection.Find
.Text = search(i)
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute
Selection.Range.HighlightColorIndex = wdBrightGreen

Next

ある単語のリストがあり、そのリストにある単語が Word 文書内にある場合、すべてをハイライトしたいのですが、うまくできません。
次のコードです。これだと「初出のみ」のヒットしかハイライトされません。
これを「ヒットしたすべて」にかえることはできるのでしょうか?

Dim search(2) as string
search(0) = "abc"
search(1) = "def"
search(2) = "ghi"

For i = 0 To 2

Selection.Find.ClearFormatting
With Selection.Find
.Text = search(i)
.Forward = True
.Wrap = wdFindContinue
...続きを読む

Aベストアンサー

Sub Sample1()
 Dim search(2) As String

 search(0) = "abc"
 search(1) = "def"
 search(2) = "ghi"
 Options.DefaultHighlightColorIndex = wdBrightGreen

 For i = 0 To 2
 Selection.Find.ClearFormatting
 Selection.Find.Replacement.ClearFormatting
 Selection.Find.Replacement.Highlight = True
 With Selection.Find
  .Text = search(i)
  .Replacement.Text = ""
  .Forward = True
  .Wrap = wdFindContinue
  .Format = True
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchWildcards = False
  .MatchFuzzy = False
 End With
 Selection.Find.Execute Replace:=wdReplaceAll
 Next i
End Sub

「全て置換」の記録マクロを参考に,ちょっとアレンジしてみた具合です。

Sub Sample1()
 Dim search(2) As String

 search(0) = "abc"
 search(1) = "def"
 search(2) = "ghi"
 Options.DefaultHighlightColorIndex = wdBrightGreen

 For i = 0 To 2
 Selection.Find.ClearFormatting
 Selection.Find.Replacement.ClearFormatting
 Selection.Find.Replacement.Highlight = True
 With Selection.Find
  .Text = search(i)
  .Replacement.Text = ""
  .Forward = True
  .Wrap = wdFindContinue
  .Format = True
  .MatchCase = False
  .MatchWholeWord =...続きを読む

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

QExcelである表から文字列を抽出、別の表で整理

 A
1 おにぎり
2 おにぎり
3 おにぎり
4 ラーメン
5 そば
(続く)

上のような既存の表から、品名を抽出し下のような集計表を作ろうとしています。
同じ品名がある場合詰めてリストアップします。 ←この方法が分からず難儀しています。

 B    C
1 おにぎり 3
2 ラーメン 1
3 そば   1
(続く)

B1~B3(続く)セルにどのような数式が考えられますでしょうか?
よろしくお願いいたします。

Aベストアンサー

こんにちは!
一例です。
とりあえず同Sheetに表示するとします。

↓の画像のように作業用の列を1列設けます
(今回はF列にしていますが、目障りであれば列を非表示にするか遠く離れた列にします)

F2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(),"")
という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。

そして、C2セルに
=IF(COUNT(F:F)<ROW(A1),"",INDEX(A:A,SMALL(F:F,ROW(A1))))

D2セルに
=IF(C2="","",COUNTIF(A:A,C2))
という数式を入れ、C2・D2セルを範囲指定 → D2セルのフィルハンドルで下へコピーすると
画像のような感じになります。

以上、参考になれば良いのですが・・・m(__)m


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

人気Q&Aランキング

おすすめ情報