• ベストアンサー

Excel関数のifとvlookupの組合せについて

10月というシートと11月というシートがあります。10月にあるIDが11月にもあるようなら、11月のシートに○をないようなら×を入れるような関数を作ろうと思っています。ifとvlookupを組み合わせたらどうにかなりそうだと思ったのですが、どうも思った結果が出ません。どなたか教えて下さい。 <10月シート>   A  B 1 555 田中  2 666 鈴木 3 777 山本 <11月シート>   A  B  C 1 999 本田 × 2 888 鈴木 × 3 666 鈴木 ○

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

  • ベストアンサー
回答No.2

vlookup関数でもいいんですが、私はmatch関数を使います。 どちらも検索して見つからなければ#n/aエラーを返すので、isna関 数で#n/aエラーかどうかを検出します。たとえば =if(isna(match(B1,Sheet1!B:B,0)),"×","○") のような感じですね。 =if(vlookup(B1,Sheet1!B:B,1,0)=B1,... のようにヤルと、見つからなくて#n/aエラーが返ってきた時にB1と 等しいかどうかの判定をしません。エラーは何かと等しかったりし ないのです。

その他の回答 (4)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! すでに回答は出ていますが・・・ 他の方法の一例です。 ↓の画像の下側が「11月シート」になります。 11月シートのC2セルに =IF(A2="","",IF(COUNTIF('10月シート'!$A$2:$A$1000,A2),"○","×")) という数式を入れ、オートフィルで下へコピーすると 画像のような感じになります。 尚、数式は1000行まで対応できるようにしていますが、 データ量によって範囲指定の領域はアレンジしてみてください。 以上、参考になれば幸いです。m(__)m

Sam-mama
質問者

お礼

画像までつけていただいて、分かりやすい説明ありがとうございました。色々なやり方があるものですね。勉強になりました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

一例です。 10月シートをsheet1、11月シートをsheet2とし、11月シートのC1に次の数式を設定、下方向にコピーして下さい。 因みに10月シート範囲は100行としています。 =IF(SUMPRODUCT((Sheet1!$A$1:$A$100=$A1)*(Sheet1!$B$1:$B$100=$B1)),"○","×")

Sam-mama
質問者

お礼

皆様、色々な方法を教えていただきありがとうございました! おかげで解決しました。

noname#179793
noname#179793
回答No.3

11月というシートのC1に IF(ISNA(MATCH(A1,'10月'!$A$1:$A$3,0)),"×","○") を入力して、必要なだけ下にコピーですかね。 $A$1:$A$3は適当な範囲に修正してください。

回答No.1

11月シートのC1セルに =IF(ISERROR(VLOOKUP(A1,'10月シート'!A:B,1,FALSE))=TRUE,"×","○") という感じでしょうか。 確認はExcel2000ですが、それ以降でも大丈夫かと思います。

関連するQ&A

  • ifとvlookupの組み合わせ?

    お世話になります。 シートAとシートBの結果を参照して、シートCに結果を表示させたいのですがうまくいかず、、どなたかお知恵を貸していただけないでしょうか。 シートA~Cの列の項目は全て同じです。やりたいことは、まず、Aのシートの特定のデータを参照し、そこが"合格"ならシートCに"合格"を、もし"不合格"ならシートBを参照し、"合格"ならシートCに"合格"と表示、シートBでも"不合格"ならシートCに"不合格"と表示されるようにしたいです。 イメージとしては、 【シートA】1月結果 No 生徒名  国語  数学  英語  理科  社会 ・・・・・・・ 01 鈴木   不合  不合  不合 02 田中   不合  合格  合格 03 木村   合格  不合  合格 【シートB】3月結果 No 生徒名  国語  数学  英語  理科  社会 ・・・・・・・ 01 鈴木   合格  合格  不合 02 田中   不合  合格  合格 04 山田   不合  不合  不合 【シートC】集計 No 生徒名  国語  数学  英語  理科  社会 ・・・・・・・ 01 鈴木   合格  合格  不合 02 田中   不合  合格  合格 04 山田   合格  不合  合格 上記のように、1月結果には存在するけれども、3月には退会等によって削除された生徒分については、シートCへの反映は必要ないのですが、 逆に、シートAの時にはいなかったけれども、シートBの時、入会によって増えた生徒分はシートCへBの結果を反映させたいです。 生徒に割り当てられたNoは全て固有の番号ですので、入退会による使い回しや変動はありません。 IfとVlookupでできるかと思って、色々考えてみたのですが、全くうまくいかず、ご相談させていただきました次第です。 エクセル初心者で勉強中のため、IfとVlookupに固執するのではなく、(といいますか、そもそもIFとVlookupでできるものなのかどうかもわかっていませんが) 上記のような結果が出せる方法があれば、色々ご教授いただければ幸いです。 どうぞよろしくお願いいたします。

  • エクセル2003 関数 IFとVlookupの組み合わせについて

    エクセル2003 関数 IFとVlookupの組み合わせについて IF関数とvlookuo関数を組み合わせて関数を組もうとしています。 vlookupしたい元データが18万あるのでシートを(1)~(3)に分けています。 やりたいことは、 シート「(1)1~60,000」     A列:ID B列:社名 シート「(2)60,001~120,000」 A列:ID B列:社名 シート「(3)120,001~180,000」 A列:ID B列:社名 シート「集計」 このシートに関数の結果を表示したいです シート「集計」のH9のセルにIDを入れたらI9のセルに社名が自動表示される。且つH9のセルが空欄ならI9のセルも空欄になる。※入るIDはシート(1)~(3)のどこかにあります 関数教えて下さい。よろしくお願いします。

  • IFとVLOOKUP関数

    VLOOKUP関数を使って検索結果を出そうと思いましたが、 データ量が93000行X8列になりますので、 共通分けして複数のシート(A、B、C、D)に分けました。 あるセルに『A』と入れると『シートA』の表から検索を行う、 あるセルに『B』と入れると『シートB』の表から検索するといった感じにするには、 IFとVLOOKUPを使用するなら、どのような式を入れたらいいのでしょうか? また、他の関数を使う式があるのでしょうか? マクロやVBAも考えましたが、 あまり知識がありません。 データ量から考えると マクロやVBAで行った方がいいのでしょうか?

  • if関数とVLOOKUP関数について

    if関数とVLOOKUP関数について エクセル2003で以下のような表を2枚 (シート1とシート2です)作成しています。 上段がシート1で、左上「NO」からA1セルに なっています。 下段がシート2で、特別番号が付番される 人の対象者リストで、「氏名」 がA1セルです。 図が乱れてすいません。 シート1のB列の売上日、C列の氏名は 別ファイルから貼り付けています。 シート2は、特別番号を付番する人の 氏名リストですが、ここでは、便宜上 小文字のアルファベットにしています。 ここでしたい処理ですが、売上日及び氏名を シート1に貼り付けた際に、特別番号対象者 (シート2のリストに挙がっている人) が入ってきたとき、自動的にシート1の A列のNOの列に「特別番号」 との文言を表示させたいのです。 実際に数字を表示するのではなく、 「特別番号」の文字列を表示させたいです。 IF関数とVLOOKUP関数でできると思うのですが よくわかりませんでしたので、教えてください。 NO 売上日 氏名 1 1月1日 A 2 1月2日 B 特別番号 1月3日 a 特別番号 1月4日 b 特別番号 1月5日 c 3 1月6日 D 4 1月7日 E 特別番号 1月8日 e 特別番号リスト(シート2) 氏名 住所 a 東京都 b 大阪府 c 神奈川県

  • Excelの関数が分かりません。Vlookupで出来ると思ったのですが、出来ませんでした。

    すいません。自分が馬鹿なもので・・・さっぱりです。 A  B  C  D   E 1  梨 柿 苺 山下 2 芋 米 栗 鈴木 3 鳥 馬 羊 松本 4 魚 犬 猫 田中 というシートがあって。 別シートで A  B  C 1  猫 田中 2 芋 鈴木 3 梨 山下 4 犬 田中 というように、B列を検索してC列に人の名前を返す 例えば「猫」を前のシートから検索して一致する 「田中」の名前を返したいとき、どのような関数を使えばいいですか? vlookupだと検索範囲が1列しか検索できないから、どうしても複数列を検索したいもので・・・

  • IF関数とLOOKUP関数の組み合わせについて

    指定したセルと等しい数値(文字列?)をLOOKUP関数を使って別シートのデータベースを検索させて、そのシートに無ければまた別のシートのデータベースを検索させるものを作りたいのですが上手くいきません。 指定したセルが空白なら空白を返すように次のような感じで作っています。 IF(A1="","",IF(LOOKUP(A1,シート1!A1:A15,A1:A15)<>A1,LOOKUP(A1,シート2!A1:A15,B1:B15),LOOKUP(A1,シート1!A1:A15,B1:B15))) VLOOKUP関数でもやってみたのですがこちらも上手くいきません。 IF(A1="","",IF(LOOKUP(A1,シート1!A1:A15,A1:A15)<>A1,VLOOKUP(A1,シート2!A1:B15,2,0),VLOOKUP(A1,シート1!A1:B15,2,0))) ご指摘いただければ嬉しいです。

  • EXCEL関数VLOOKUPとIFについて

    たびたび申し訳ありません シート1 セルA1(商品)  A2(値段)  A3(購入日) AAA       200円    2007年 BBB       300円 CCC       200円    2006年 シート2 セルA1(結果表示)   セルA2(商品入力) の様なデータがあるのですが シート2セルA1には以下のような関数を入れてます =IF(ISBLANK(A2),"",VLOOKUP(A2,Sheet1!A1:C3,3,FALSE)) もしシート2のセルA2に商品BBBを入れると 日付の部分が0と表示されてしまいます。 空白セルがあった場合に0ではなく何も表示されないようには どのような関数で書くのでしょうか? 又、別の件なのですがセルA1にセルA2の内容を表示するとき IF(A2="","",A2)と書いたのですがA1セルには ひし形のエラーマークが出ます。 内容は空白セルを参照していますと出てました こちらを消すにはどのようにすればよろしいのでしょうか? お願いいたします。

  • IFとVLOOKUP

    DのコラムにIDaa001アルファベット2文字と数字3桁 Fのコラムに商品名の入ったシートaa DのコラムにID bb001アルファベット2文字と数字3桁 Fのコラムに商品名の入ったシートbb 上記二つのシートからデータを参照したいシートccが有ります。 シートccに入っているIDによって、参照するシートを変えたいので、IF関数を使ってみましたがうまくいきませんどの様にしたら良いのでしょうか? ちなみに私の書いた式は下記です =IF(A3=aa,VLOOKUP(D3,aa!A2:B99,2,FALSE),VLOOKUP(D3,bb!A2:B213,2,FALSE)) どうしたら良いのか分からなく、IDの頭2個のアルファベットをLEFT関数で抜き出して、Aのコラムに貼り付けて上記の式をつくってみましたがダメでした。 よろしくおねがいします。

  • VLOOKUPとIFの組み合わせで困ってます

    シートが2枚あり、sheet1は工事記録一覧、sheet2は納品書です。 sheet2のセルA1に、工事記録の管理番号を入力し、 セルA2以降に、管理番号に該当する住所や建物名、 工事種類などを表示させたいと思ってます。 参考にするセルが空欄の場合には、空欄のままにしたいので、 IF関数とVLOOKUP関数を組み合わせて 下のように自分で式を組んでみましたが、#N/Aになってしまいます。 =IF(A1="","",VLOOKUP(A1,sheet1!A1:J20,3,FALSE) 同一シート内で同様の式を入れた時は、希望通りの答えが返ってきましたが、 別のシートだと上手くいきません。 どなたか正しい式をご教授いただけますでしょうか。 エクセル初心者で、ネットや本で調べながら作成しているので、 分かりやすく教えていただければ助かります。 どうぞよろしくお願いいたします!

  • Excel2007 VLOOKUP関数の相談

    もし検索不足で重複した質問でしたら申し訳ありません。 VLOOKUP関数について、シート「A」に文字列を入力したら シート「リスト」シート上に同じ文字列があれば その文字列関係の情報を持ってくるというVLOOKUP関数を使用していました。 <使っていた関数> =IF(ISERROR(VLOOKUP(H306,リスト!A:B,2,0)),"",VLOOKUP(H306,リスト!A:B,2,0)) この入力する文字列が数字(別データからコピーして貼り付ける)に変わっただけなのですが、 何故か対象情報の抽出をしてくれません。 <使おうとしている関数> =IF(ISERROR(VLOOKUP(I2,データ0501!A2:F695,3,0)),"",VLOOKUP(I2,データ0501!A2:F695,3,0)) ネットで検索したのですが、関数情報が不足しているのか、 コピーした数字列の貼り付け方が間違っているのかわからない状況です。 恐れ入りますが解決策があればお教えいただければと思います。 どうぞ宜しくお願い申し上げます。

専門家に質問してみよう