- ベストアンサー
VLOOKUP関数とIF関数
だれか、アドバイスをください!! VLOOKUP関数とVLOOKUP関数にIF関数がひっついているものの意味がわかりません。 マイクロソフトオフィスエキスパートの問題を練習しています。 少しはVLOOKUP関数については、わかりはしましたが、それにIF関数がつくと????です。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 IF(A1="","" だったんですね。 ISERRORは余分でした。逆に混乱させてしまったみたいでごめんなさい。 一度に色々と覚えるのは大変なので、ISERRORはもう少し先に勉強をされると いいと思います。 VLOOKUPについては D列 F列 みかん 100 リンゴ 150 バナナ 200 と言う表がある時に、A1セルに みかん と入力したら みかんの右にある 100という数字を引っ張ってくるというものです。 B1に みかんの 100を呼び出す関数は下の通りです。 VLOOKUP(A1,D1:E3,2,FALSE) A1 は A1セルに入っている 「みかん」を検索すると言う意味 D1:E3 は みかん 100 リンゴ 150 バナナ 200 の範囲を指定しています。 必ず検索に使用する「みかん」の値が一番左側に来るように 表の範囲を指定する必要があります。 2 は 左から数えて2列目の数字を呼び出すと言う意味 最後の FALSE は 完全に一致するものを探しましょう という意味です。 TRUE は、完全に一致する物が無くても、代りの値を呼びましょうという意味です。 FALSEとしていると、D1:E3のコード表の中に 「みかん」が 無かった時は、#N/A というエラーの値がB1に表示されます。 TRUEとしていると、D1:E3のコード表の中に 「みかん」が無い場合でも 代りの値を呼んできます。 ※厳密には次の文字コードの値を表示するという意味ですが、 その辺を考えると余計に難解になりますので、VLOOKUPの時は 最後に原則「FALSE」を入れる決まりと思っていて問題ないでしょう。 つまり VLOOKUP(A1,D1:E3,2,FALSE) は A1のセルの値を、D1:E3の表の中の左端(D列)から探して D列に同じ値があれば右方向に2列目の値を呼び出して下さい と言う意味になります。 VLOOKUP関数を下にコピーする時には、値を探しに行くコード範囲が D2:E4 D3:E5 と言う風に変わってしまうと困るので $をつけて 絶対参照にして、必ず同じ範囲に値を探しにいくようにするといいです。 http://www.excel.studio-kazu.jp/lib/e1tw/e1tw.html http://allabout.co.jp/computer/msexcel/closeup/CU20060805A/index.htm?FM=rss
その他の回答 (5)
- zuhka
- ベストアンサー率12% (2/16)
再びNo.3-4の者です。 IF関数はお分かり頂けたようですね、それではVLOOKUP関数のほうの説明ですが・・・ VLOOKUP関数というのは、左端列から検索値と一致した行の指定列セルの値を求める関数です。 さっきの関数のVLOOKUP以降の部分を見てみると VLOOKUP(A1{←検索値},$AA$1:$AF$30{←範囲},3{←列番号},0{←検索方法}) となります。 どの部分がわからないのか、分かったのか教えてください。また、追加説明します。 下のリンク先に全関数の説明が出ていますのでこれも参考にしてみて下さい。
- 参考URL:
- http://excelcafe.net/
- zuhka
- ベストアンサー率12% (2/16)
No.3の者です まず一つ訂正をさせて頂きますね。 「絶対参照」は $A$1 の「$」のことですね。 msfsaさんのおっしゃるとおり、コピーしても範囲を変えたくないときに[F4]キーを使って変えますね。失礼いたしました。 検索値についてですが、さきほどの関数を使って説明しましょう。 先ほどの関数は =IF(A1="","",VLOOKUP(A1,$AA$1:$AF$30,3,0) でしたが 最初のIF関数のA1が空白なら空白を、そうでなければVLOOKUP関数を使って値を導き出してほしい、ということですね。 この関数の最後の0の部分、あれは「検索の型」です。 0=TRUE…完全に一致する値だけを検索する 1=FALSE…近似値を含めて検索する なので、上の関数の場合はA1に入っている数値を検索値にして、完全に一致する値を表示させることになります。 セルA1に「10」が入ってるとします。 「10」が「検索値」です
補足
IF関数の使い方は、理解できました。でも、こんどは、逆にVLOOKUP関数がわかんなくなってしまいましたぁ。あーどうしようもないのでしょうか?
- zuhka
- ベストアンサー率12% (2/16)
msfsaさんのおっしゃってる関数というのがおそらく =IF(A1="","",VLOOKUP(A1,$AA$1:$AF$30,3,0) こんなかんじの関数のことをおっしゃっているんだと思います。(違ってたら補足お願いします。) この関数だとA1が""(空白)の時には""(空白)を、 そうでなければVLOOKUP関数を用いて、A1を検索値に、AA1からAF30の範囲の中の3列目の数値を、絶対参照してください。 ということになります。 VLOOKUPに限らず、関数がいくつか入っていても、ひとつひとつの関数の意味をちゃんと把握していればさほど問題なく使えると思います。 特にIF関数はいろんな関数にくっついて使う場面が実務でも多々あります。 MOSエキスパート試験、がんばってくださいね。
補足
そうです。そうです。 =IF(A1="","",VLOOKUP(A1,$AA$1:$AF$30,3,0) この関数だとA1が""(空白)の時には""(空白)までは理解できます。 これ以下です。 そうでなければVLOOKUP関数を用いて、(1)A1を検索値に、(2)AA1からAF30の範囲の中の3列目の数値を、(3)絶対参照してください。 (1)「検索値」ということと、(3)絶対参照がなんとなくわかりません。しかし絶対参照とは、セルを固定することですよね?
- p-applepie
- ベストアンサー率53% (156/290)
問題の関数を書かれていないので、どの様な説明をしていいのか 不明ですが・・ IF関数とVLOOKUPを使う意味は、ほとんどはVLOOKUPでエラー(#N/A)の時は 空白を返す と言うような意味かなと思います。 例えば =VLOOKUP(A1,$D$1:$E$30,2,FALSE) は、A1の値をコードにして D1~E30から同じコードを持つデータの 2列目の値を呼んでくる と言う意味ですが、A1のコードに 該当する物が D1~D30に入っていなければ #N/A の表示になります。 そこで IFを使って =IF(ISERROR(VLOOKUP(A1,$D$1:$E$30,2,FALSE))=TRUE,"",VLOOKUP(A1,$D$1:$E$30,2,FALSE)) と言うような書き方をします。 IF(A,B,C) の意味は もしも Aの時はB、そうでない時はCの処理をする。 と言う意味になります。 上の関数に入れている ISERROR(A) は Aがエラーかどうかを判別して エラーであれば TRUE エラーでなければ FALSE という値を返す関数です。 全部を分解して解説すると IF もしも ISERROR(VLOOKUP(A1,$D$1:$E$30,2,FALSE))=TRUE VLOOKUP()の値がエラー(#N/A)になるならば "" 空白を表示 VLOOKUP(A1,$D$1:$E$30,2,FALSE)) エラーでない時は、VLOOKUP()の 結果を表示しなさい と言う意味です。
補足
こんなに丁寧に書かれているのに、半分くらいしか理解できないです。 どうしようもないのでしょうかぁ?
式が分からないので何とも言えませんが、 N/Aを除くためではないでしょうか? VLookUPで該当する項目が無かったらN/Aとなり、 集計しにくくなります。 それを取り除くためにやっているのかもしれません。 もし(if)、該当する項目がなかったら、N/Aではなく空白で表示する。 という感じでは?
補足
質問が、希薄でもうしわけございません。 VLOOKUP関数の概念的なものからわからないのです。 なんて説明していいのか・・・・。 この関数にif関数をもちいることで、エラーを表示させないということはわかります。しかし、なぜ、if関数なんですか?
お礼
ほんとに、講師のように教えていただいてありがとうございます!! ちょっと整理してみます!でも、だいぶわかってきたような気がしてうれしいです!!