エクセルの複数条件に一致したセルを抽出したいのですが、関数で教えてください。

               A列   B列    C列
Aファイルには 行 【注文月日】、【氏名】、【商品金額】が記入されています。
Bファイルには 行 【注文月日】、【氏名】、【税金額】が記入されています。

AファイルのD列に、Aファイルの【注文月日】かつ【氏名】がBファイルの【注文月日】かつ【氏名】と一致する場合のBファイルC列の【税金額】を表示したいのです。

VLOOKUP関数では条件が1つだけなので使用できませんが、似たような関数で複数条件ができる関数があるなら教えてください。

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

A 回答 (2件)

こんばんは!


一例です。
↓の画像で右側(Bファイル)の方に作業用の列を設けています。
作業列D2セルを
=A2&B2
としてオートフィルで下へずぃ~~~!っとコピーします。

そして、AファイルのD2セルに
=IF(OR(A2="",COUNTIF([Bファイル.xls]Sheet1!D$2:D$1000,A2&B2)=0),"",INDEX([Bファイル.xls]Sheet1!C$2:C$1000,MATCH(A2&B2,[Bファイル.xls]Sheet1!D$2:D$1000,0)))
という数式を入れ、オートフィルで下へコピーすると
画像のような感じになります。
尚、数式はBファイルの1000行目まで対応できるようにしていますが、
データ量によって範囲指定の領域はアレンジしてみてください。

以上、参考になれば良いのですが
他に良い方法があれば読み流してくださいね。m(__)m
「エクセルの複数条件に一致したセルを抽出し」の回答画像2
    • good
    • 4
この回答へのお礼

回答ありがとうございます。
図までのせていただき、すごくわかりやすかったです。
参考にさせていただきます。

お礼日時:2010/03/27 14:09

VLOOKUP関数を使うなら、A列とB列を結合した文字列をA列の左に挿入し、てこのキーを検索値に指定するのが簡単です。



1つの数式で対応するなら以下のような関数を使うことになります。

=INDEX(ブック名シート名!C:C,MAX(INDEX((ブック名シート名!$A$2:$A$100=A2)*(ブック名シート名!$A$2:$B$100=B2)*ROW($A$2:$B$100),)))
    • good
    • 5
この回答へのお礼

回答アリガトウございます。
せっかく関数の式を教えていただいたのですが、いまいち理解ができません。
1つ1つの関数のやり方を調べて試行錯誤したのですが、うまくできませんでした。
最初のブック名シート名はファイルBのC列で、2回目と3回目ののブック名シート名はファイルAでよろしかったでしょうか?

お礼日時:2010/03/27 12:48

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

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

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

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

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

Qエクセルで A列に商品名 B列に商品番号 C列に管理者 が入っています

エクセルで A列に商品名 B列に商品番号 C列に管理者 が入っています。

A B C
あ 001 佐藤
い 002 鈴木
う 003 田中
え 004 伊藤
お 005 三木

以下600行くらい続いています。
商品名は重複していません。

D列を空列にしE列に商品名をいくつか並べたときに、
F列とG列に商品番号と管理者を表示させたいのですが、
どの関数を使えばいいのかよくわかりません。

環境はエクセル2003です。

Aベストアンサー

こんにちは。

 下記サイトをご参照ください。
  http://allabout.co.jp/gm/gc/3143/
  VLOOKUP関数で一覧表から検索できます。

では。

Q【エクセル】IF関数  AまたはBならばCと表示

引き続き、お世話になります。

IF関数の使い方について教えてください。

A1セルが「1」ならば B1セルに「●」を表示 ←これは出来ます。

A1せるが「1」または「6」ならば B1セルに「●」を表示←これができません。

ANDを組み合わせるのですよね???
どのようにすればいいか、ご存じの方教えてください。

Aベストアンサー

B1のセルに、以下の数式を入力します。

=IF(OR(A1=1,A1=6),"●","")

QA列で0以上で18以下ならB列のセルに色づけ

いつもお世話になります
WINDOWS7 EXCELL2010です

A列の値が、
  0:01 より大きく
 18:00 より小さいときに

条件付き書式でB列のセルに色を付けたい。

勤務管理で早退時管理用です

ご指導いただけませんか

Aベストアンサー

時間の入力は文字列ではなくてシリアル値だとして、

B1セルの条件付き書式(メニューバーの「書式」→「条件付き書式」)で、
「セルの値が」を「計算式が」にして、計算式を、
=AND(A1>0.000695,A1<0.75)
と入力、セルの書式設定をすればよいと思います。

QA列に日付け、B列にその日に買った野菜の名前が入ってます。入力が重複し

A列に日付け、B列にその日に買った野菜の名前が入ってます。入力が重複しないようにしたいのですがうまくいきません。
一列のみでしたら重複する内容のセルに色を付けたりできますが日付と野菜が両方重複する時にメッセージを出したり、色をし変えたりするにはどうしたらよろしいでしょうか?

Aベストアンサー

色付け例です。
条件つき書式設定で数式を=SUMPRODUCT(($A$1:$A$5=$A1)*($B$1:$B$5=$B1))>1で如何でしょうか。
因みにエクセル2007ならば、=COUNTIFS($A:$A,$A1,$B:$B,$B1)で可能です。

QA列とB列の文字列を検索 結果をA列セル色で変化

めぐみと申します。
エクセルのマクロのことで質問させて頂きます。
少し複雑ですみません。

A列とB列に文字列があります。
A列に並んでいる文字を1つずつ検索してB列にその文字列があればA列のその文字があるセルを赤色にするというマクロはできますでしょうか?

お時間のある方がいらっしゃりましたら教えて頂ければ幸いです。
めぐみ

Aベストアンサー

別にマクロなど使わなくても条件付き書式でできますが?

手順:
A列を列選択する
A1セルがアクティブセルになっている事を確認する
Excel2003までは書式メニューから条件付き書式を開始する
セルの値が → 数式が に変えて
右の空欄に
=MATCH(A1,B:B,0)
と記入し,書式ボタンで赤く塗る。

Excel2007以降を使っているならホームタブで条件付き書式▼から新しいルールを開始
数式を使用して…を選んで
下の空欄に
=MATCH(A1,B:B,0)
と記入し,書式ボタンで赤く塗る。




そこを敢えてどうしてもマクロが使いたいんだというご相談なら。
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける

sub macro1()
 dim r as long
 for r = 1 to range("A65536").end(xlup).row
  if cells(r, "A") <> "" then
  if application.countif(range("B:B"), cells(r, "A")) > 0 then
   cells(r, "A").interior.colorindex = 3
  else
   cells(r, "A").interior.colorindex = xlnone
  end if
  end if
 next r
end sub

別にマクロなど使わなくても条件付き書式でできますが?

手順:
A列を列選択する
A1セルがアクティブセルになっている事を確認する
Excel2003までは書式メニューから条件付き書式を開始する
セルの値が → 数式が に変えて
右の空欄に
=MATCH(A1,B:B,0)
と記入し,書式ボタンで赤く塗る。

Excel2007以降を使っているならホームタブで条件付き書式▼から新しいルールを開始
数式を使用して…を選んで
下の空欄に
=MATCH(A1,B:B,0)
と記入し,書式ボタンで赤く塗る。




そこを敢えてどうしてもマクロが使いた...続きを読む


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

人気Q&Aランキング

おすすめ情報