Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
いつもおせわになっております。
数値を比較して条件を満たした場合にアウトプットがでるようにしたいのですが、
見た目上は満たしているのにうまく表示されないことがあります。
初歩的な質問ですがよろしくおねがいします。
具体的には、製品の在庫リストがあり、それぞれに売価と原価をぶつけて赤字(原価>売価)となっている製品について
在庫額を表示されるようにしたいのです。(売価>原価)は不要です。
例)
製品 在庫金額 売価 原価 結果
A 1,000 100 80
B 2,000 200 250 2,000
C 300 50 40
D 500 100 150 500
普通のifを使えばできると思うのですが、なぜかかなりのデータが条件を満たしているのに表示されないことがあります 。
おそらくは数値形式の問題があり、そもそも数字として認識されていない可能性があると思います。
こういった場合のよい解決方法はございますでしょうか?
以上、よろしくお願いします。
考えられる原因のひとつは、記載されているように、数値として認識していない可能性が考えられます。
該当項目のリストボックスを作成し、[プレゼンテーションタブ]の[配置]で、テキストを’左揃え'、数値を'右揃え'に設定すると確認出来ると思います。(設定変更していなければ、通常この設定になっています。)
もし混在しているようであれば、NUM関数を利用してロード時に書式指定してあげれば大丈夫だと思います。
その他として、データが実際には小数点以下も値があるケースです。
見た目は四捨五入されているが実際には値が満たないケースが存在しているかもしれません。
また、もっと細かく言うと、コンピューターの小数点以下の値は正確ではないため、見た目と計算結果が違うケースがまれに存在します。
たとえばエクセルのA1セルに’39.9’と入力してB1セルに’39’と入力し、C1セルに’=A1-B1’と入れると、本来は'0.9'になるはずですが、小数点以下の有効桁数を増やして確認すると、'0.899999999999999'になると思います。
これらもきちんと処理する必要がある場合は、必用な10の累乗をかけて整数にしてから計算する必要がありますが、通常はそこまでする必要は無いと思います。
QVでも同様の現象はあるので、私は賃金系の計算の場合だけ、この方法をとっています。