[[20110308214554]] 『iserrorとvlookupを使用して値の検索  』(cherry) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『iserrorとvlookupを使用して値の検索  』(cherry)

 どなたか教えて下さい。

 【Book1】
    A    B 
1 リンゴ  
2 みかん  

 【Book2】
   A    B    C
1 リンゴ  りんご  150円
2 ぶどう  ブドウ  300円
3 みかん  ミカン  200円

 Book1のA1、A2の金額を、Book2から検索して
B1、B2に値がかえるように数式を組みたいのですが、

 Book1のA1がBook2のA列にない場合はB列から
検索して合致する金額を求めたいのです。

 iserrorとvlookupの組み合わせで可能でしょうか。
もしくは、他の数式があれば教えて下さい。

 どうぞ宜しくお願いします。

 こんばんは。
>iserrorとvlookupの組み合わせで可能でしょうか
それでもできますし、↓のようにCOUNTIFを使ってもできます。
・COUNTIFの結果が0より大きい=該当するセルがある

 ○ BOOK1.xls【Sheet1】シート
  [R/C]     [A]    [B]
   [1]   リンゴ  150円
   [2]     葡萄  300円

  B1 =IF(COUNTIF([BOOK2.xls]Sheet1!$A$1:$A$3,A1)>0,VLOOKUP(A1,[BOOK2.xls]Sheet1!$A$1:$C$3,3,FALSE),
         VLOOKUP(A1,[BOOK2.xls]Sheet1!$B$1:$C$3,2,FALSE)) →B1:B2フィルコピー
 
 ○ BOOK2.xls【Sheet1】シート
  [R/C]     [A]   [B]    [C]
   [1]   リンゴ  林檎  150円
   [2]   ぶどう  葡萄  300円
   [3]   みかん  蜜柑  200円
 
(コタ)

 別ブックなら、ISERROR(MATCH(・・・))の方が良くないでしょうか。。。
 COUNTIF関数より式は少し長く成っちゃいますが。
 ISERROR(VLOOKUP(・・・))とするよりは短くて済むと思います。

 BOOK1で計算をさせるときは、必ずBOOK2は開いておく のなら
 COUNTIF関数で良いと思いますが。

 (HANA)

 HANAさんへ
ご指摘ありがとうございます。
 
VLOOKUPやMATCH関数は、閉じてある別ブックへの参照も可能なのですね。
セル内容を直接リンクさせる(=[BOOK2.xls]Sheet1!$A$1とか)場合しかできないかと思っていました。

 cherryさんへ
下記のいずれの数式でも、BOOK2を閉じたままで参照できました。
(ただあまり数式が多くなると、BOOK2を閉じたままだと計算が遅くなるかもしれませんのでご留意を)
 
・ISERRORとVLOOKUP
  B1 =IF(ISERROR(VLOOKUP(A1,[BOOK2.xls]Sheet1!$A$1:$C$3,3,FALSE)),VLOOKUP(A1,[BOOK2.xls]Sheet1!$B$1:$C$3,2,FALSE),
         VLOOKUP(A1,[BOOK2.xls]Sheet1!$A$1:$C$3,3,FALSE)) →B1:B2フィルコピー
 
・ISERRORとMATCH
  B1 =IF(ISERROR(MATCH(A1,[BOOK2.xls]Sheet1!$A$1:$A$3,0)),VLOOKUP(A1,[BOOK2.xls]Sheet1!$B$1:$C$3,2,FALSE),
         VLOOKUP(A1,[BOOK2.xls]Sheet1!$A$1:$C$3,3,FALSE)) →B1:B2フィルコピー
 
・ISNUMBERとMATCH (上2つと第2引数、第3引数の順番が逆になります)
  B1 =IF(ISNUMBER(MATCH(A1,[BOOK2.xls]Sheet1!$A$1:$A$3,0)),VLOOKUP(A1,[BOOK2.xls]Sheet1!$A$1:$C$3,3,FALSE),
         VLOOKUP(A1,[BOOK2.xls]Sheet1!$B$1:$C$3,2,FALSE)) →B1:B2フィルコピー
 
(コタ)


 長い長く無いにこだわるなら、VLOOKUPやMATCHだったら、ISERRORでなくISNAをでしょ。
 (Jaka)


 >COUNTIF関数より式は少し長く成っちゃいますが。
 これは、使う関数が増える

 >ISERROR(VLOOKUP(・・・))とするよりは短くて済むと思います。
 は、VLOOKUP関数を使うよりMATCH関数を使った方が無駄が少ない

 と思って書いただけであって、文字数の事を主体に考えていた訳じゃないのですが
 書き方が安易でした。済みません。

 (HANA)

みなさま

本当にありがとうございました!!
助かりました☆

(cherry)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.