[[20210902145815]] 『LOOKUP関数について。』(コルム) ページの最後に飛ぶ

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

 

『LOOKUP関数について。』(コルム)

https://www.ipentec.com/document/office-excel-difference-between-lookup-vlookup-and-hlookup のLOOKUP関数で、検査値が2の場合は、検査値以下の最大値となる"1"のセルが該当したと判断されます。LOOKUP関数の戻り値は最終行の値が返されるため、"3" がLOOKUP関数の戻り値になります。の所で、検査値は何を意味しているのでしょうか?教えていただけると幸いです。すみません。

< 使用 アプリ:Microsoft365、使用 OS:Windows10 >


 その解説者は嘘を書いています。
 読んでも無駄です。

 >検査値は何を意味しているのでしょうか?
 ID(1、2、3)であることは明らかじゃないですか?

(半平太) 2021/09/02(木) 15:41


 > >検査値は何を意味しているのでしょうか?
 > ID(1、2、3)であることは明らかじゃないですか?

 ちょっと語弊がありました。m(__)m

 一行目の中から探そうとしているとすると、何をやっているのか意味不明なので、
 検索値は合理的な何かを意味しているとは言えない。

 単に、その行を対象に2と言う数値を検索してみたらどうなるか、
 Lookup関数の挙動を試しただけに過ぎない。

(半平太) 2021/09/02(木) 16:00


その行とは、IDのことですか?教えていただけると幸いです。すみません。
(コルム) 2021/09/02(木) 18:34

 行  _A_  __B__  ________C________  __D__ 
  1  ID   価格   品名               重量     その行とは          
  2   1    210  ぺんぎんクッキー     0.2  ← この行です 
  3   2    120  しろくまアイス       0.12               
  4   3     90  らくだキャラメル     0.08               

 式は =LOOKUP(A7,A2:D4) 

 範囲「A2:D4」の第一行目です。

(半平太) 2021/09/02(木) 19:33


では、なぜ結果が3になるのでしょうか?教えていただけると幸いです。すみません。
(コルム) 2021/09/02(木) 20:32

 >なぜ結果が3になるのでしょうか

 そんな事は考えるだけ無駄なんですよ。
 下のヘルプに書かれているように、正しい保証がない結果について
 どうしてそうなるかなど分析するのはエネルギーの浪費です。
                 
 >行  _A_  __B__  ________C________  __D__ 
 > 1  ID   価格   品名               重量     
 > 2   1    210  ぺんぎんクッキー     0.2     ← この行は昇順になっていないです。

 【ヘルプ】
 重要  配列に入力されている値は、... .. のように
 コード順の昇順に配置されている必要があります。
 そうでない場合、LOOKUP 関数は正しい値を見つけることができません。

(半平太) 2021/09/02(木) 20:58


では、これも嘘という事でしょうか?
また、戻り値(対応範囲)は。行数より列数が多い領域を指定した場合は、最終行で対応値が検索されます。行数と列数が同じ領域(正方形領域)または、行数より列数が少ない領域を指定した場合は、最終列の値が対応地として検索されます。
教えていただけると幸いです。すみません。
(コルム) 2021/09/03(金) 02:40

なぜこの行が昇順になっていないのでしょうか?教えていただけると幸いです。すみません。
(コルム) 2021/09/03(金) 03:10

 >では、これも嘘という事でしょうか?

 それは正しい。

 でも、それは戻り値についての話です。
 まず最上行で検索が正しく行われているのが大前提です。

 >なぜこの行が昇順になっていないのでしょうか?

 「この行」が昇順なら、右方向に大きくなっていると言うことです。
 一目で昇順じゃないことは明らかじゃないですか。? 

  >  _A_  __B__  ________C________  __D__ 
  >  ID   価格   品名               重量     
  >   1    210  ぺんぎんクッキー     0.2  ← この行

 大体「ID、価格、品名、重量」なんて項目のデータが昇順になるハズがないですし、
 そんなデータを検索対象行に選ぶこと自体がナンセンスです。
 コルムさん自身も「検査値(2)は何を意味しているのでしょうか?」と疑問を持ったでしょう?

(半平太) 2021/09/03(金) 09:26


結局LOOKUP関数の戻り値が3と返ってきたのは、無意味な戻り値の3ということでしょうか?教えていただけると幸いです。すみません。
(コルム) 2021/09/03(金) 15:23

 >無意味な戻り値の3ということでしょうか?

 議論の中身を「数式の有意義性」と「LOOKUP関数の挙動」を一緒にしてしまった感があります。 m(__)m

 1.数式の有意義性について
   「この行」の中に2を検索するのは無意味なのだから
   戻り値が3であろが、何であろうが無意味なのは明らかでしょう。

 行  _A_  __B__  ________C________  __D__  
  1  ID   価格   品名               重量                
  2   1    210  ぺんぎんクッキー    0.2   ←この行
  3   2    120  しろくまアイス      0.12 
  4   3     90  らくだキャラメル    0.08 
  5                                      
  6                                      
  7   2      3 ← =LOOKUP(A7,A2:D4)

 2.LOOKUP関数の挙動について

  (1) Webサイトの解説は嘘である
      ※検査値が2の場合は、検査値以下の最大値となる"1"のセルが該当したと判断されます。

    試しに D2セルの重量を 0.2→1.5 に変更してみてください。

    上の解説が正しいなら、検査値以下の最大値となるのは「1.5」に変わりますから
    D4セルの「0.08」が戻ってこないとおかしいですよね?

    実際B7セルはどうなったですか? 0.08にならなかったら嘘という事になりますよ。

   (2) 検索値「2」で、何故「3」が返るのか

    LOOKUP関数は2分探索を行います。
     まず、「この行」のデータの中間値(210)を見て、
     ア. 検索値より大きいと判断したら小さい方向(左)に検索を続けます
     イ. 検索値より小さいと判断したら大きい方向(右)に検索を続けます

      今回のサンプルでは、上記「ア」に該当するので、左方向に探索を続けます。
    普通はもっとデータがあって、A列と210の列との中間値を更にチェックしに行くのですが、
    今回は単純なサンプルなので、検索はそこで終わり1をヒットします。

    1と2は違うので、本来はエラーなんですが、見つからない場合は「内輪の最大値」とする仕様なので
    1が正式なヒット値になります。このため、1のある列の最下行のB4セル(3)が返ることになります。

(半平太) 2021/09/03(金) 16:56


(1)は、なぜ、0.08が戻り値出ないと嘘なのでしょうか?教えていただけると幸いです。(2)は、もっとデータがある場合は、どうやって、A列と210の列の中間値を探すのでしょうか?それと、内輪の最大値とはどういう事でしょうか?教えていただけると幸いです。
(コルム) 2021/09/03(金) 20:51

 >(1)は、なぜ、0.08が戻り値でないと嘘なのでしょうか?

 (1)の中で説明していますけど? もう一回読んでください。

 それで、D2セルの重量を 0.2→1.5 に変更したら、B7セルの値は何になったのですか?
 ただ聞くだけじゃなく、自分の手足を動かしてくださいよ。

 >(2)は、もっとデータがある場合は、どうやって、A列と210の列の中間値を探すのでしょうか?

 細かく説明するのはしんどいので、 ネットで「2分探索」のキーワードで検索し、
 その記事を読んで理解してください。

 対象が順番に並んでないと意味を為さないことも分かるハズです。

 >内輪の最大値とはどういう事でしょうか?

 1,2,3,4,5 と言う数列があったとして、
 検索値を4.5にした場合、4.5を越えない範囲の最大値ということです(つまり4となる)

(半平太) 2021/09/03(金) 21:28


Excelで試しましたが、何も変わりません。3のままです。どういう事でしょうか?教えていただけると幸いです。すみません。
(コルム) 2021/09/04(土) 10:16

 >何も変わりません。
検索値(A7)の値に
1・2・3以外にも
300やらくだ等を入れてみては
(はまちゃん) 2021/09/04(土) 10:38

 >Excelで試しましたが、何も変わりません。3のままです。どういう事でしょうか?

 同じ事を聞かないくださいよ。

  Webサイトの解説は嘘なんです。先述のレス(1)で説明したでしょ?
 「3のままの理由」も先述のレス(2)で説明したでしょう?

(半平太) 2021/09/04(土) 10:53


気に入らないみたいですね。
https://oshiete.goo.ne.jp/qa/12552821.html
(ふふ) 2021/09/04(土) 19:22

コメント返信:

[ 一覧(最新更新順) ]


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