- ベストアンサー
エクセル関数で正しい値が返ってこない理由と解決方法
- エクセルで約4,000件のデータの照合作業を行っている際、一部のMATCH関数の結果が正しくないことがあります。関数の式には問題はなく、件数が多いことが原因と思われます。このような現象は一般的であり、解決方法もあります。
- エクセルでMATCH関数を使用してデータの照合を行っている際、まれに正しくない値が返ってくることがあります。この問題は件数が多い場合に起こりやすく、関数自体には問題がないと考えられます。
- エクセルのMATCH関数を使用して大量のデータの照合を行っていると、正しくない値が返ってくることがあります。この問題は件数が多い場合によく発生し、関数の式には問題がありません。解決方法としては、データの照合を別の方法で行うことが考えられます。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
何らかの原因で「セルの再計算」を中断したりすると「再計算を行うまえにセルに入っていた、正しく計算する前の値」がセルの値として残ります。 MATCH関数などのように「ある程度の大きさの範囲を見に行く関数」では、再計算に時間が掛かります。 再計算に時間が掛かっている場合、再計算中に中断キーを押したり、表を大きく激しくスクロールさせたり、、表を自動で再計算しないモードにした場合、セルに表示される値は「正しく計算する前の値」になりますので注意しましょう。 特に「MATCH関数で見付かった件数が1件のみ」とかだと、余計に再計算に時間が掛かると思うので、注意が必要です。
その他の回答 (5)
- purumin9
- ベストアンサー率24% (39/161)
4000件って、エクセルにとっては何てことない量です。エクセル側にはきっと問題ないと思います。 照合するデータに不正がないか確認してみてください。 テキストだというなら、全角・半角、大文字・小文字、あとは書式とかかな?
お礼
アドバイスをありがとうございます。 書式も関係してくるのですね… ちょっと驚いてしまいました。
- imogasi
- ベストアンサー率27% (4737/17069)
(1) aaa <-A1 bbb ccc ddd bbb 1 eee fff ggg hhh kkk C列の式は =MATCH(B4,$A$2:$A$100,0) 正しくは 第2引数 $A$1:$A$100にすべきである。 (2)第3引数 0 が-1や1になっている。 など疑わしい。 式を複写したりするだろうから、いつもこうなるのではないが、部分的に 何かの拍子で式がおかしくなっていたとしか考えられない。 >バグと言うか いつも原因がわからないとソフト側のバグと言う人が多い。 9年間、質問回答を見ているが、こんな質問は無いと記憶する。 エクセルで不一致が出るのはこんな点ではない。 ーー この質問は質問者が原因を探さないと、他では原因がわからないとおもう。 読者に再現させることが出来ないでしょうから。
お礼
アドバイス、ありがとうございました。 このような「ズレてしまう」事象は2回目なので >部分的に 何かの拍子で式がおかしくなっていたとしか imogasiさんのおっしゃるように、「何かの拍子」を ご存じの方がいるかと思いこちらで質問させて頂いた 次第です。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
>下記が使用している式です。「+1」は >=MATCH(B338,$A$2:$A$4895,0)+1 つまり、MATCH(B338,$A$2:$A$4895,0) は0 考えられない値ですね。ためしに、C338セルに入力してみたものの 例示のようにはなりませんでした。 Excelのバージョンは何でしょうか?
お礼
Excelは、2007です。 すみません、言葉が足らなかったようです。 お知らせした式は、実際に使用しているものですが 例としてあげた画像のものは、あくまで例としての ものなので、見出しを入れていないなど 忠実に問題を再現していませんでした。 わざわざお調べ頂き、ありがとうございました。
- suekun
- ベストアンサー率25% (369/1454)
直接の回答に繋がりませんが、 「←ここがずれてしまっている」がある列に 想定として左からA列 B列・・・と並んでいるとして 最上段から、 =IF(INDEX(A:A,C1)=B1,"正","誤") なんて入れて下に必要行コピーすれば、間違いは見つけやすいかも?
お礼
間違い探しに役立つ情報を ありがとうございました! とても助かります。
- nattocurry
- ベストアンサー率31% (587/1853)
実際にどんな計算式を使っているのかを提示してもらえませんか。
補足
早速のお返事ありがとうございます。 下記が使用している式です。「+1」は 1行目に見出しを入れているのでつけています。 =MATCH(B338,$A$2:$A$4895,0)+1 どうぞ宜しくお願い致します。
お礼
解決致しました。 また、詳細な説明をありがとうございました。 やはり計算中は、じっと待っていることが ベストなようです。