2012年11月01日
LOOKUP関数
コメント
【VLOOKUP関数1 - 問3】
割引金額を計算する際に、IFERROR関数を用いて解くことは可能でしょうか。
可能な場合、どのような数式になるかご教示いただけますと幸いです。
--------------------------------
>SHK様 From エムティ・ソフト 2024/08/28 09:00
■IFERRORの使用について
結論から言えば、空白処理の場合には、IFERRORは推奨できません。
記述するとすれば、下記のようになります。
=IFERROR(VLOOKUP($D6,$I$6:$J$11,2,FALSE),"")
未入力の場合に、エラーを表示しませんが、
間違った値を入力した場合にも、何も表示されなくなります。
式は簡素になりますが、入力ミスを防ぐという観点からは推奨できません。
IFERRORが効果を発揮するのは、エラーを無視(または別の値や文字を表示)したい場合です。
IF関数とISERROR関数の組み合わせでは、メインの式の記述が2個必要な代わりに、
IFERROR関数を使うと、1個の記述で済みます。
(多機能関数の使用は、IFのような基本関数に習熟した後を推奨します。)
■IFERROR関数の使用例
・候補から住所を検索-候補を対象の住所から検索
https://mt-soft.sakura.ne.jp/kyozai/excel_high/200_jissen_kiso/170_prefecture/index.html#array-formula
・最頻文字を調べる
https://mt-soft.sakura.ne.jp/kyozai/excel_high/200_jissen_kiso/190_str_count/index.html#2-mode
上級編ですが、後日、ご参考ください。
今後も、よろしくお願いします。エムティ・ソフト
投稿者 SHK : 2024年08月27日 15:01
申しわけございません。
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