VLOOKUPで一致した場合に特定の数字を返す

このQ&Aのポイント
  • Excelファイル1に平成24年度版の商品の縦書き一覧表があります。同じくExcelファイル2に平成23年度版の商品の縦書き一覧表があります。Excelファイル1における平成24年度の商品一覧表の各商品の横のセルに、平成23年度にも販売していたのであれば「23」という数字を記入し、平成23年度に販売していなければ(平成24年度からの発売であれば)「24」という数字を記入したいとします。
  • 簡単な方法としてはExcelファイル2のB2~B100に23を記入し、Excelファイル1のB2にVLOOKUP関数を入力し、Excelファイル1と2のA列が一致する場合、Excelファイル2のB列(23)を返し、一致しないセルのエラーを削除して24を記入するという方法が考えられます。
  • しかし、一つの関数入力で23年度の一覧表に一致する商品の隣のセルに23、23年度に販売されていなければ24という値を返すようにしたいと思います。IF関数の中の論理式の部分をVLOOKUPに置き換えて入れ子にし真なら23、偽なら24とすればよいのかと思ったのですが、エラーになります。どのような数式をつくればよいのでしょうか。
回答を見る
  • ベストアンサー

VLOOKUPで一致した場合に特定の数字を返す

Excelファイル1に平成24年度版の商品の縦書き一覧表があります。(A2~A100までが商品名) 同じくExcelファイル2に平成23年度版の商品の縦書き一覧表があります。(A2~A100までが商品名) Excelファイル1における平成24年度の商品一覧表の各商品の横のセル(B2~B100)に、平成23年度にも販売していたのであれば「23」という数字を記入し、平成23年度に販売していなければ(平成24年度からの発売であれば)「24」という数字を記入したいとします。 簡単な方法としてはExcelファイル2のB2~B100に23を記入し、Excelファイル1のB2に VLOOKUP関数を入力し、Excelファイル1と2のA列が一致する場合、Excelファイル2のB列(23)を返し、一致しないセルのエラーを削除して24を記入するという方法が考えられます。 しかし、一つの関数入力で23年度の一覧表に一致する商品の隣のセルに23、23年度に販売されていなければ24という値を返すようにしたいと思います。 IF関数の中の論理式の部分をVLOOKUPに置き換えて入れ子にし真なら23、偽なら24とすればよいのかと思ったのですが、エラーになります。 どのような数式をつくればよいのでしょうか。

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

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

>平成24年度の商品一覧表の各商品の横のセル(B2~B100)に、平成23年度にも販売していたのであれば「23」という数字を記入し、平成23年度に販売していなければ(平成24年度からの発売であれば)「24」という数字を記入したいとします。 添付画像より説明します <(_ _)> 「平成24年度の商品」ブック名の一覧表(A列)の隣のB列のセルB2に次の式を入れます セルB2 =IF(ISNA(MATCH(A2,[平成23年版の商品.xlsx]Sheet1!$A$2:$A$10,0)),24,23) psy7777さんの示されている範囲を数式にすると次の式になります セルB2 =IF(ISNA(MATCH(A2,[平成23年版の商品.xlsx]Sheet1!$A$2:$A$100,0)),24,23)

その他の回答 (2)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>IF関数の中の論理式の部分をVLOOKUPに置き換えて入れ子にし真なら23、偽なら24とすればよいのかと思ったのですが、エラーになります。 どの様な式なのでしょうか?これを提示していただければ適切な回答が得られると思いますが 既に、回答済みなので、別案です。 >簡単な方法としてはExcelファイル2のB2~B100に23を記入し、Excelファイル1のB2に >VLOOKUP関数を入力し、Excelファイル1と2のA列が一致する場合、Excelファイル2のB列(23)を返し、>一致しないセルのエラーを削除して24を記入するという方法が考えられます。 考え方として Excelファイル1のB2に Countif関数を入力して、同じ商品名がなければ 0 あれば 1以上 なので あれば23 なければ24 と表示させる方法が考えられますよね =IF(COUNTIF(平成23年度版の商品!A2:A100,A2)>0,23,24) 省略して =IF(COUNTIF(平成23年度版の商品!A2:A100,A2),23,24) といった書き方も可能

  • malixiang
  • ベストアンサー率38% (10/26)
回答No.1

24年の商品一覧に 23年の計算式=24年の計算式にすると 一致するかしないかの答えが返ってきます。 =VLOOKUP(B1,23年のデータ範囲,1,FALSE)=VLOOKUP(B1,24年のデータ範囲,1,FALSE) TRUEの時に「23」、FALSEの時に「24」と返すなら =IF(VLOOKUP(B1,23年のデータ範囲,1,FALSE)=VLOOKUP(B1,24年のデータ範囲,1,FALSE)=TRUE,"23","24") TRUEの時は、23年データにあり、FALSEの時は、23年データにないということになります。 データ範囲や列番号は、修正してください。 お試しください。

関連するQ&A

  • エクセル関数(VLOOKUP?)

    エクセル関数の組み方を教えてください。 表Aにランダムな5桁の英数字(商品番号)があります。 表B(表Aとは別のエクセルファイルファイル)に Aとは並び順の異なった5桁の英数字(商品番号)があり 商品番号のとなりのセルに、その商品が載っているページ数があります。 表Aの商品がどのページにあるのかを探したく Aの隣のセルに、その商品のページ数を表示させたいのですが VLOOKUPなどで組めますでしょうか? -- A 00001 00005 00002 00006 -- B 00007 8 00005 10 00003 1 00006 20

  • EXELで複数のセルに一致したものを探したいです

    こんにちは。 EXEL初心者です。EXELの関数について教えて下さい。 下のような2種類の表があるとして、 表1(全在庫データ)  仕入CD 型番 JAN  販売数  1 1001  A-1 ******1    2 1002  B-1 ******2 3 1003  C-1 ******3  1 4 1004  D-1 ******4 5 1005  E-1 ******5 ・ ・ ・ 表2(販売実績データ)  仕入CD 型番 JAN  販売数 1 1003  A-1 ******1  1 2 1004  B-1 ******2  2 3 1003  C-1 ******3  1 4 1002  D-1 ******4  1 5 1001  E-1 ******5  2 商品CD、型番、JANのすべてのセルが一致する商品の販売数を 表1側の販売数に反映させたい場合どのような関数を入れれば良いでしょうか? ひとつのセルの一致だとVLOOKUPでいけますが複数セルだとどうしたら良いのかさっぱり分かりません。 詳しい方、ご教授頂けると幸いです。

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

    エクセルの複数条件に一致したセルを抽出したいのですが、関数で教えてください。                A列   B列    C列 Aファイルには 行 【注文月日】、【氏名】、【商品金額】が記入されています。 Bファイルには 行 【注文月日】、【氏名】、【税金額】が記入されています。 AファイルのD列に、Aファイルの【注文月日】かつ【氏名】がBファイルの【注文月日】かつ【氏名】と一致する場合のBファイルC列の【税金額】を表示したいのです。 VLOOKUP関数では条件が1つだけなので使用できませんが、似たような関数で複数条件ができる関数があるなら教えてください。

  • 一致するデータを検索する関数って?

    Excelの関数を教えてほしいのですが。 A表とB表があります。A表にはB表と一致するデータも含まれていて、 一致しないデータ-もあります。 A表の中でB表と一致するものを検索したいのです。 最終的にはA表の中のB表と一致するものは削除したいのですが。 まずは、一致するデータを検索できればと思います。 表のデータはかなり数が多いので、列づつではなく表と表で検索できる ようなものがあれば思うのですが。 列の方でもできそうな関数がありましたら教えて頂きたいと思っています。 また、数値と文字列でも使用する関数が違うのでしょうか? 説明が不十分とは思いますがよろしくお願いします。

  • エクセル:数字の部分一致と完全一致

    B1のセルにA1のセルの文字が含まれるか判定をするため、以下の関数を使用しました。 =IF(COUNTIF(B1,"*"&A1&"*"),0,1) 例えば、A1=400のとき、 B1=q400 B1=400 1 などの場合は、0(=含まれる)という判定がでるのですが B1=400 B1=14000 などの時は、1(=含まれない)となります。 完全一致である400、および14000も「400」という文字列が含まれるので同じ結果を返したいのですができません。 原因はA1が文字ではなく数字だからということはわかるのですが。 ちなみにA1には文字も入力される場合があるので、どの場合でも含むかの判定を出したいです。 アドバイスお願いします。

  • エクセル関数でセル個数検索で2つの条件が一致する行数を求める方法はあり

    エクセル関数でセル個数検索で2つの条件が一致する行数を求める方法はありますでしょうか? セル個数の場合=COUNTIF(A1:A50,"晴れ")でセル個数を求めますがB1:B50のセルに曜日が記入されているとしてA列の晴れとB列の日曜日が一致するセルが何回(何行)あるか求める関数はありますでしょうか?よろしくお願いします。ソフトはXPを使用しています。

  • VLOOKUPを使用するのでしょうか?

    Excelで現在表計算をしています。 一致する種類の商品の合計を求める場合、VLOOKUPでよいのでしょうか? =VLOOKUP("A",A2:B10,2,FALSE) この式で入力しているのですが、なぜかAに合致する数全て(113)が割り出せません。 なぜか2行目の23しか数値が入力されません。 A B 1 種類 数 2 A | 23 3 A | 40 4 A | 10 5 B | 40 6 B | 30 7 C | 20 8 C | 20 9 B | 16 10 A | 40 使う関数が間違っているのでしょうか。 教えてくださいよろしくお願い致します。

  • VLOOKUPについて教えてください。

    皆さんこんにちは。 今、エクセルファイルがA,Bと2つあります。エクセルファイルBには製品No.がB列、製造日時がC 列(B列の詳細データ)に入力されているデーターベースとなっています。ここでエクセルファイルAの A1のセルにエクセルファイルBに記入されている製品No.を入力してエクセルファイルAのB1のセ ルにエクセルファイルBのC列の製造日時を表示したいのですがどうもうまく行きません。どなたか教 えていただけませんか?

  • エクセルで前方一致のVlookupはできませんか

    * すぐに回答を! エクセルで前方一致のVlookupのような関数はないでしょうか。 具体的には、A列とB列にデータがあり、A列のデータの文頭部分の文字列が B列のデータのどれかと一致した場合に、C列に一致したB列のデータを返したいです。 データの行数が非常に多い(3,4万行)であるため、できるだけ動作の軽い 関数であればなお助かります。 A          B           C zzzfewfe      dadaf         zzzf dadaf3233      a11111k        dadaf aabbbb-fefe3     zzzf         aabbbb a11111k33r3      aabbbb       a11111k 宜しく御願い致します。

  • Excel :条件が一致した時にその数字を表示する関数

    以下の内容をExcelの関数で表す場合にどのような関数が有効でしょうか?どなたかお知恵を拝借願えると幸いです。 「A1,A2,A3にランダムに数字が入っています。仮に、3つにセル中、2つ以上の数字が一致した時には、A4セルに一致した数値を表示させ、3つのセルの数字がどれも一致しない場合は、ゼロと表示させます」 以下のようなIF関数を考えてみたいのですが、「真の場合」に一致した数字を表示させる方法が分からず悩んでいます。 IF(OR(A1=A2,A1=A3,A2=A3),一致した数字,"0") 勿論、このIF関数に拘っていないので、上述「」内の内容が関数で表現できればよいと考えております。

専門家に質問してみよう