- ベストアンサー
Excel関数について
文字を数値として認識させて計算するにはどうすればよいでしょうか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
> =IF(D38<E36,D38-E36+E37)+IF(D38>E36,D38-E36+E37,IF(D38=E36,E37)) この式ですが IF(D38<E36,D38-E36+E37) + IF(D38>E36,D38-E36+E37, IF(D38=E36,E37)) D38=E36以外は同じ計算をしてますよね で「+」なんですが D38<E36ならD38-E36+E37+0 D38>E36なら0+D38-E36+E37 D38=D36なら0+E37 となります D38<E36かD38>E36の解は同じになりますので条件式は無視できますし 0をプラスすると言うのも無視できますので =IF(D38=E36,E37,D38-E36+E37) という式に簡略化できます。 > そして、10/25に追加として15000個投入をし、進捗は「0」と表示したいのですが、 > この場合の計算式が良く分かりません。 「追加」であれば進捗は0でいいと考えれば以下のようになります =IF(E36="追加",0,IF(D38=E36,E37,D38-E36+E37))
その他の回答 (6)
- kmetu
- ベストアンサー率41% (562/1346)
修正です > D38<E36かD38>E36の解は同じになりますので条件式は無視できますし 解じゃなくて式です
お礼
有難うございました。
- hallo-2007
- ベストアンサー率41% (888/2115)
>文字を数値として認識させて計算するにはどうすればよいでしょうか? の前に =IF(D38<E36,D38-E36+E37)+IF(D38>E36,D38-E36+E37,IF(D38=E36,E37)) の式について考えてみませんか? IF(条件、真の時、偽の時)と条件によって2つに分けることが出来ます。 =IF(D38<E36,D38-E36+E37)の部分もIF(D38=E36,E37)の部分も 偽の時の式が省略されています。 (省略した場合は FALSEとなりますが、この場合は 0 として計算されています。) 前日の進捗<本日の指示の場合 D38-E36+E37 で IF(D38>E36,D38-E36+E37,IF(D38=E36,E37))は 0 前日の進捗>本日の指示の場合 IF(D38<E36,D38-E36+E37)が 0 で IF(D38>E36,D38-E36+E37 の式で D38-E36+E37 前日の進捗=本日の指示の場合 IF(D38<E36,D38-E36+E37)が 0 で IF(D38=E36,E37)の式で E37ですが D38=E36なのですから、 D38-E36+E37 の答えと同じでしょう。 つまり、 =D38-E36+E37の式を右へコピィしても、結果が同じではないでしょうか? ここで、質問にもどりますが、 =D38-E36+E37 の式で、もしE36が数値でなく、「追加」という文字だったら、・・・(どのようにしたいのかは不明ですが) =D38-IF(E36="追加",どういう扱いにするかの式,E36)+E37 という感じになると思いますが、 >10/25に追加として15000個投入をし、進捗は「0」と表示したいのですが、 なのですが、15000個投入をどう扱うのか不明です。 =D38-IF(E36="追加",E37+D38,E36)+E37 の式で15000個投入を無視して必ず 0になります。 エクセル、関数など云々の前に、 お仕事で追加は どういう意味を持っているのかを表記していただいたほうが、アドバイスが得られると思います。 ついでに、アドバイスですが 事項 指示 追加 実績 進捗 10/2 10/5 ・・・・ と表は縦方向に伸びるようにします。
お礼
詳細な御回答を有難うございました。 大変勉強になりました。 >IF(D38=E36,E37)の式で E37ですが >D38=E36なのですから、 D38-E36+E37 の答えと同じでしょう。 >つまり、 >=D38-E36+E37の式を右へコピィしても、結果が同じではないでし ょうか? についてですが、御指摘の通りです。敢てIF(D38=E36,E37)としましたのは他のネストした式と区別したいと思ったからですが、余計なことだったと反省してます。 又、「追加」は10/1~10/23までの指示に対して実績が±0になったので部品の投入計画が終了しましたが、10/25に1500個の投入指示がありました。本来なら10/25の指示の個所に1500と入力すべきですが「投入計画」にはない別指示でしたので区別するために「追加」と表示しました。 分かりにくい説明で申し訳ございませんでした。
- rivoisu
- ベストアンサー率36% (97/264)
そういう場合でしたらIF文か何かで数値に変えるルールをExcelに教えてあげなければなりません。(たくさんあればVlookupやMatch関数などが必要かも) 1追加2修正3削除 if(A1="追加",1,if(A1="修正",2,if("削除",3),0),0)
お礼
御回答を有難うございました。 Vlookupは使ったことはありますがMatch関数は未経験です。 難しそうですが勉強してみます。
- KURUMITO
- ベストアンサー率42% (1835/4283)
単に数字だけがセルにある場合には文字列の形であっても計算に使う際には数値として使われますので問題はありませんが関数などで引き出した場合などには文字列として扱われて数値として機能しない場合がありますね。 最も簡単には、その文字列扱いの数字に*1をすることで数値に変換されます。
お礼
御回答を有難うございました。 内容は理解出来ました。 今回の質問が不適切でしたが、セル内に文字を入力(例ば、「追加」)等とした場合に、この「追加」を数値として変換して計算式に組み込めることはできないのかな?と思案しつつ色々と試してみましたが駄目でした。 お手数をお掛けしまして申し訳ございませんでした。
- kmetu
- ベストアンサー率41% (562/1346)
=VALUE("$1,000") とかですね
お礼
御回答、有難うございました。 まだ、理解出来ていませんが勉強します。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
文字が数字なら 四則演算などさせれば自動的に数値と判断してくれます。 ="3"+0 で3が返ります 文字が数字でない場合は、具体例を挙げてください
お礼
御回答を有難うございました。 御回答へ補足させていただきましたが「※この投稿は、現在サポートで確認中のため、他の方には表示されなくなっております。」と表示されました。 申し訳ございません。
補足
早速のご回答を有難うございました。 質問不足で失礼しました。 以下のデータ(単位:個)の計算式を10/2より以降の進捗のセルに作成しました。 そして、10/25に追加として15000個投入をし、進捗は「0」と表示したいのですが、 この場合の計算式が良く分かりません。 御教示を宜しくお願い致します。 =IF(D38<E36,D38-E36+E37)+IF(D38>E36,D38-E36+E37,IF(D38=E36,E37)) 事項 10/1 10/2 10/3 10/25 指示 13500 13500 20000 追加 実績 10500 32000 4500 15000 進捗 -3000 15500 0
お礼
大変有意義な御回答を有難うございました。 御教示頂きました数式を早速活用しました。 私のの考えも「追加」の時は「進捗」は0、にしたかったので、思っていたような結果を得ることができて、とても感謝しています。 又、教えて頂いた数式の意味を勉強することで理解出来ました。 本当に有難うございました。