« 条件付書式と表示形式 | | はじめに-中級 »

2012年11月01日

LOOKUP関数

コメント

申しわけございません。
VLOOKUPの基礎問題を解こうとしているのですが、#NA が発生してしまう状態になっております。
もしよろしければご解説よろしくお願いします。

-----------------------------------------------------------------------
Re.エムティ・ソフト 2023/03/11 02:30

当サイトをご利用いただき、ありがとうございます。

下記のページにアクセスし、それぞれのサンプルファイルをダウンロードしてみましたが、
特に問題なく、開くことができました。

VLOOKUP関連の
VLOOKUP関数 https://mt-soft.sakura.ne.jp/kyozai/excel_mid/100_lookup/10_vlookup_1.htm
VLOOKUP関数例 https://mt-soft.sakura.ne.jp/kyozai/excel_mid/100_lookup/20_vlookup_2.htm
HLOOKUP関数 https://mt-soft.sakura.ne.jp/kyozai/excel_mid/100_lookup/30_hlookup.htm

#NA が発生するページは、上記で間違い無いでしょうか?
また、同エラーが発生するのはページアクセス/ダウンロードファイルのどちらでしょうか?
もしくは、それ以外?

よろしくお願いします。 エムティ・ソフト

投稿者 Anonymous : 2023年03月10日 16:52

いつもお世話になっております。
度々、質問に対して丁寧に回答頂きありがとうございます。


中級問題 VLOOKUP関数 問題1

回答 =IF($D45="","",VLOOKUP($D45,$I$45:$J$50,2,FALSE))
上記の回答をいただきましたが
(空白の場合の処理も考えておきます。)→IFERRORを使用しても問題ないでしょうか。

IFERRORとIF関数の""(空欄)の違いに混乱してます。


①=IFERROR(VLOOKUP(D6,$I$6:$J$11,2,0),"")
②=IF($D45="","",VLOOKUP($D45,$I$45:$J$50,2,0))

①まずVLOOKUP→その後、不一致の値があったらNAとかの表示にしないで空欄で返す
②D45が空欄だったらまず空欄で値を返す→その後VLOOKUP

宜しくお願い致します。

-----------------------------------------------------------

>taku 様  from エムティ・ソフト 2022/07/11 11:20

IF関数で、空白(未入力)を判定しているのは、余計なエラーを表示したくないためです。
初期状態(所属Noが未入力)では、計算結果を非表示にしておきたい場合に使用します。
一方、IFERROR関数は、エラーが発生した場合の処理を行う時に使用します。

本問題の場合、正常に入力する場合は同じ結果になりますが、
規定外の所属No(11,21など)を入力すると、
IF関数(空白判定)の場合、#N/A が表示されますが、
IFERROR関数では、空白のままとなり、エラーの原因がわかりにくくなります。

未入力と規定外入力を分けて表示したい場合は、IF関数で空白判定した方が宜しいです。

エムティ・ソフト

投稿者 taku : 2022年07月08日 14:26

【VLOOKUP関数1 - 問3】

①解答では、受講料のみから割引金額を算出しているが、問題を解いているとテキスト代を含めるのか含めないのか明記されておらず、分かりずらい。

②割引金額セルの解答「=IF(G74="","",VLOOKUP($G$74+$G$75,リスト!$B$18:$C$22,2,TRUE))」は、誤りだと思います。これだと、割引金額を「〇円以上〇円未満」じゃなくて、「〇円に近い」で算出してることになるので、ここは素直にIF関数のみで解答するべきではないでしょうか。

-----------------------------------------------------------------

エムティ・ソフト>Y 様 2020/05/14 06:14

解答は、下記のようになっています。
=IF(G74="","",VLOOKUP($G$74+$G$75,$リスト.$B$18:$リスト.$C$22,2,1))

①「$G$74+$G$75」は「受講料+テキスト代」を算出し、その合計値を割引対象額としています。
 Webページに、「割引対象額は、受講料+テキスト代 と記述を追記します。

②VLOOKUP($G$74+$G$75,リスト!$B$18:$C$22,2,TRUE)の第4パラメータで「TRUE」は、
 未満の最大値を求める場合に使用します。
 解答例では、受講料+テキスト代=72,000 なので、「セミナー割引額テーブル」では、80,000未満の最大値、
 すなわち、1,500 が求める割引額となります。

 IFを使用すると、複数で判断する必要が出てきます。
 「20,000以上80,000未満か?」だけで判断する事はできません。
 (単価やコースが変わるたびに数式を変更する必要が出てきます。)
 本例では5区分ですが、定期代のように、20個、100個となると、大変面倒になります。
 VLOOKUP関数を使用すると、参照テーブルのサイズに無関係になる利点があります。

お試しください。

投稿者 Y : 2020年05月13日 11:19

【VLOOKUP関数 - 問2】

解答にて
『ここでは単位/税/単価も自動で表示されるように設定しています。
単位: =IF($B65="","",VLOOKUP($B65,$K$65:$O$69,3,0))
税 : =IF($B65="","",VLOOKUP($B65,$K$65:$O$69,4,0))
単価: =IF($B65="","",VLOOKUP($B65,$K$65:$O$69,5,0))』
とありますが
Excelでは ,VLOOKUP部分が
VLOOKUP($B16,商品台帳1,3,0))
VLOOKUP($B16,商品台帳1,4,0))
,VLOOKUP($B16,商品台帳1,5,0))
となっております。

――――――――――――――――――――――――――――――――――――
エムティ・ソフト>

調べてみましたが、下図のように、名前は使用されていないようです。

そもそも、「商品台帳」という名前は定義されていません。
問2 の数式

なお、参照エラーとなる名前がありましたので、これは削除しました.
名前の定義

投稿者 M : 2020年05月04日 19:41

>KKWAK 様

ご指摘、ありがとうございます。
リンク切れを修正しました。
今後も、よろしくお願いします。

エムティ・ソフト

投稿者 エムティ・ソフト : 2019年03月03日 05:39

HLOOKUP関数は、ダウンロードリンクが切れているようです。
再アップしていただけたら嬉しいです。

投稿者 KKWAK : 2019年03月02日 18:18

コメントしてください




保存しますか?

投稿者 mt-soft : 00:59


書式を変更するような一部のHTMLタグを使うことができます。
  ・特殊記号: ¥ < > などは文字化けするので、下記のように入力(末尾のセミコロン';'を忘れずに!)
     ¥ : &yen;  < : &lt;  > : &gt;
  ・リンク:    <A href="http://xxx">表示文字</A>
  ・プログラムコード: <pre> ~ </pre> で囲む