- ベストアンサー
分数の計算
商品の月別故障件数と故障原因の一部(外部損傷)の件数を分数で入力しています。 4月 5月 6月 7月 … 合計 8/25 35/95 24/57 33/81 100/258 外部故障件数/全故障件数となっています。 A1に4月 B1に5月 C1に6月というように月が入力され、 A2、B2、C2…に件数を入力しています。 12ヶ月分の外部故障件数と全故障件数を足していきたいのですが、 良い方法がありましたら教えていただけますでしょうか。 分数は『(スペース)8/25』と入力しています。 オートSUMやPRODUCTを使用して計算してみたのですが、『0』と表示されてしまいます。 ※上司が作成した表なので、表示形式(分数)は変えられません。 宜しくお願い致します。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
=SUMPRODUCT(LEFT(A2:L2,FIND("/",A2:L2)-1)*1)&"/"&SUMPRODUCT(RIGHT(A2:L2,LEN(A2:L2)-FIND("/",A2:L2))*1)
その他の回答 (5)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 #4さんにかぶりますが、Excel上で、分数を入れて、それをテキストと扱い、別々に計算するという考え方自体に問題がありませんか? その分数自体がひじょうに不安定な状態として置かれています。表示形式を文字列で置かない限りは、分数として変化する可能性があります。 表示形式のままで計算させることは、私なら、やむを得ない場合は、VBAのユーザー定義関数を作りますが、そんな高度なことをしなければならない、っていうのは、どこかに標準的ではない使い方が潜んでいるからだと思います。 例えば、片方のセル幅を縮めて 左のセルに、書式-ユーザー定義 ###!/ 右のセルは、配置-横位置 左寄せ というようにすれば、後は、配列数式で、それぞれのセルの合計が出せます。 =SUMPRODUCT((MOD(COLUMN(B1:J1),2)=1)*B1:J1) =SUMPRODUCT((MOD(COLUMN(B1:J1),2)=0)*B1:J1) とすればよいわけです。 枠線自体は、印刷時には残らないのですから、別に困らないと思います。 >※上司が作成した表なので、表示形式(分数)は変えられません。 それは、いくらなんでも。会社の中での、PCの使いこなしは、なるべく自分の取り扱える範囲内でしたほうがよいです。ご自分にできないものは、出来ないとしないと、次から次に、無理難題が降りかかってきてしまいます。
お礼
回答ありがとうございます。 こちらに質問する前に上司に相談をしています。 ちゃんと出来ないことは出来ないと伝えていますが、それでもやらなくてはならない場合もあるのです。 質問して回答が得られれば自分のスキルUPにもなると思いましたし、実際に幾通りかの方法があることがわかりました。
- Trick--o--
- ベストアンサー率20% (413/2034)
一番良い方法は、上司と相談し表示形式を変えることだと思います。 ましてや、作った本人以外の人が使うのですから。
お礼
Trick--o--さんのご意見、ごもっとだと思います。 ですが、こちらに質問させていただく前に相談しているのです。 上司がどうしても自分で作成した形式を変えたくないとのことで、それでは合計の計算式を教えてくださいと正直に私のスキルでは出来ないことも伝えています。 結果として、『電卓で計算して入力すればいいだろ』との回答がありました。 色々な意見もあるかと思いますが、質問する側にも事情があり解決方法がないかと質問しているのです。 計算式がないのならそれはそれで仕方がないことですが、何人かの方々が回答していただいているのでその方法で試しています。
- mshr1962
- ベストアンサー率39% (7417/18945)
外部故障件数=SUMPRODUCT(MID(A2:D2,2,FIND("/",A2:D2)-2)*1) 全故障件数=SUMPRODUCT(MID(A2:D2,FIND("/",A2:D2)+1,10)*1) 範囲は実際のものに合わせてください。
お礼
回答ありがとうございます。 ただ、この式ですと外部故障件数の式と全故障件数の式を別のセルに入力することになりますよね? 1つのセル内に入力するにはどのようにすれば良いのでしょうか。
- s_yoshi_6
- ベストアンサー率73% (1113/1519)
A2:L2に4月から3月までのデータが入力されているとして、M2に =" "&SUM(IF(ISERROR(FIND("/",A2:L2,1)),0,VALUE(LEFT(A2:L2,FIND("/",A2:L2,1)-1))))&"/"&SUM(IF(ISERROR(FIND("/",A2:L2,1)),0,VALUE(RIGHT(A2:L2,LEN(A2:L2)-FIND("/",A2:L2,1))))) と入力して、ShiftキーとCtrlキーを同時に押しながらEnterキーで確定させてみてください(配列数式となり、式の両端に{ }が付きます)。 なお、式の最初の「" "&」は、A2:L2と書式を合わせるためにスペースを入れたもので、不要ならば消しても構いません。 また、「IF(ISERROR(FIND("/",A2:L2,1)),0,…」は、データが空欄(「/」を含まない)の場合に出るエラーを回避するためのものです。
補足
ありがとうございます。 早速試してみたのですが、『#N/A』のエラー表示が出てしまいます。 回答をそのままコピーし、ShiftキーとCtrlキーを同時に押しながらEnterキーで確定をしたのですが回避するにはどうすればよいのでしょうか。
- paruru
- ベストアンサー率37% (154/407)
A3に=LEFT(A2,FIND("/",A2)-1)*1で外部故障件数 A4に=RIGHT(A2,LEN(A2)-FIND("/",A2))*1で全故障件数 になりますので、あとはそれぞれB3、C3…とコピーし SUMしたらいかがでしょうか。
お礼
ありがとうございます。 ただ、私の説明不足で申し訳ないのですが、商品が100個以上ある為、計算の為に行の追加(A3、A4)ができません。 合計セル1つの中で計算させたいのです。 しかし、このようなやり方もある事は、今後の仕事にも役立つと思いますので教えていただいて良かったです。
お礼
ありがとうございます。 希望通りの結果が出せました。