プロが教えるわが家の防犯対策術!

Excel初心者です。

windows10、Excel2016。デフォルトの書式。
a1に0.3入力。a2からa11のセルに対して連続データ作成で、0から0.1刻み、列、加算、1まで、としたとき、match関数で、a2~a11の範囲にa1の検索をかけるとN/Aが返されます。
ここで、a4にキーボードから0.3を入力すると、match関数が値を返してきます。
同様の現象が0.6、0.7の場合でも起きます。

また、windows7、Excel2010の別のマシンでも同様でした。

原因が全く分からずモヤモヤしております。
なぜこのような現象が起こるのか、ご存知の方がいらっしゃいましたらご教示願いたいと思い、質問させていただきました。

よろしくお願いいたします。

A 回答 (1件)

こんばんは!



おそらく浮動小数誤差の影響ではないでしょうか。
小数点以下の数値がある場合には扱いに注意が必要です。

MATCH関数の「照合の種類」は「FALSE」型「0」にしていませんか?
「0」にしてしまうと完全一致のみヒットします。
「照合の種類」を「TRUE」型(1)、または何も指定しないとどうなりますか?

※ 他の方法として、A1セルに「0.3」と入力したら
A2セルに
=ROUND(A1+0.1,6)
という数式を入れフィルハンドルで下へコピー!

小数点以下6桁くらいで丸めておくとMATCH関数の「照合の種類」が「0」であっても
ちゃんとヒットすると思います。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとう

ご回答ありがとうございます。

確かに、照合の種類を「0」にしておりました。記載忘れ失礼しました。

後日、ご提案の方法を試してみます。

お礼日時:2018/02/07 20:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!