こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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とすればよいのかと思ったのですが、エラーになります。

どのような数式をつくればよいのでしょうか。

投稿日時 - 2012-07-12 16:46:06

QNo.7586400

すぐに回答ほしいです

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

>平成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)

投稿日時 - 2012-07-12 21:17:10

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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)
といった書き方も可能

投稿日時 - 2012-07-12 20:22:18

ANo.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年データにないということになります。

データ範囲や列番号は、修正してください。

お試しください。

投稿日時 - 2012-07-12 17:42:42

あなたにオススメの質問