- ベストアンサー
困っている人必見!LOOKUP関数に関するバグの解決方法
- 困っている人必見!LOOKUP関数に関するバグの解決方法をご紹介します。LOOKUP関数を使用していると、一部のセルで予期しない結果が表示されることがあります。その原因や解決策について詳しく解説します。
- LOOKUP関数でCやBといった値を返す際に、セルの値と一致しない場合があることに困っている方必見!この問題はLOOKUP関数の範囲指定や引数の設定に問題がある可能性があります。解決方法を解説します。
- LOOKUP関数を使っているのに、CやBといった予測とは異なる値が返されるとお困りではありませんか?この問題の原因と解決策について解説します。LOOKUP関数を使った計算結果の一致性を確保する方法を詳しくご紹介します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
この質問はセル番地がしっかり書かれていなくて、わかりにくいが、適当に見繕った。 >=SUM(D1:G1)で合計を出しますーー>何処の出セルか。$I$1? 例データ 検索表をA1:B3、データをA4:G6として 0.0 C 0.5 B 0.8 A 1 1 1 1 4 1 A 0.8 0.6 0.4 0.2 2 0.5 B 0.2 0.4 0.6 0.8 2 0.5 B 式はE4に=SUM(A4:D4) 下方向に式複写 F4に=E4/$E$4 下方向に式複写。A1:A3は表示形式で%表示。上例では実数にした。 ーーー F5、F6を計算でなく手入力で入れると、正しい結果がG5,G6に出る。(上記) このことや、今までのエクセル経験から、(本件では数式で割り算しているが、割り算した結果を使うから、と推定される。 こんな身近な(簡単な)例で起こるのですね。 ーー このタイプはエクセルで有名な話で http://pc.nikkeibp.co.jp/pc21/special/gosa/ http://hp.vector.co.jp/authors/VA016119/kitan01.html 他にエクセルで有名な例は http://miyahorinn.fc2web.com/faq/faq020.html の◆時間の比較がうまくできないなどに説明されている問題があるのは有名。 ーー 割合に、比較する場面でボロが露見しやすい。本件も表を引くときセルの値と検索表の値を比較している。 ーー 会費策は手間だが、小数点以下を使わないようにするしかないかも(やや自信なし)。 データをA9:G14に移して検索表を10倍して 0 C 50 B 80 A 1 1 1 1 4 100 A 0.8 0.6 0.4 0.2 2 50 B 0.2 0.4 0.6 0.8 2 50 B F12には =INT(E12/$E$12*100) 下方向に式を複写 百倍してパーセント数にしてみた。且つINTを咬ます。 G12 に =VLOOKUP(F12,$A$9:$B$11,2,TRUE) 下方向に式を複写 ーー 初心者のうちは>バグ? を言わないほうが良い。もちろんエクセルの処理法が良くないが、コンピュター世界のデータの持ちようにも起因し、世界の最高峰の設計者が色々考慮した末なのでやむを得ないのだと思う。いかにもこういう事例を知らないことをさらけ出すような感じなので。
その他の回答 (2)
- toshi_2010
- ベストアンサー率43% (25/57)
- deadend
- ベストアンサー率62% (23/37)
コンピュータにおける小数値の扱い方が、人間の日常感覚とはかけ離れていることから起きる現象です。 >0.8 0.6 0.4 0.2 2 50%→C >0.2 0.4 0.6 0.8 2 50%→B 上の行の演算結果は、コンピュータ内では0.4999999999999999と認識されているのだろうと予想します。 >LOOKUP(J2,$A$2:$A$4,$B$2:$B$4) のJ2をround(J2,任意の桁数)の形で任意の桁数で四捨五入してみてください。