- ベストアンサー
VLOOKUPで一致した場合に特定の数字を返す
- 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とすればよいのかと思ったのですが、エラーになります。どのような数式をつくればよいのでしょうか。
- みんなの回答 (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)
>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)
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年データにないということになります。 データ範囲や列番号は、修正してください。 お試しください。