• ベストアンサー

60進数と10進数の足し算について

エクセルの計算式で整数部分を10進数、小数部分を60進数と分離して足し算する方法はないでしょうか? 例えば1.30+1.30は3.00、1.45+2.15.1.30は5.30というように答えを足したいのですが。 どなたかご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#29107
noname#29107
回答No.4

マクロを使った計算です。小数点以下は2桁しか無いものと仮定します。 Function sump60(ParamArray InDt() As Variant) Dim mySeisu As Long, myShosu As Long Dim Ix As Long Dim WrkJ, WrkK For Each WrkJ In InDt   If IsNumeric(WrkJ) Then     mySeisu = mySeisu + Int(WrkJ)     myShosu = myShosu + (WrkJ - Int(WrkJ)) * 100   End If   If IsArray(WrkJ) Then     For Each WrkK In WrkJ       mySeisu = mySeisu + Int(WrkK)       myShosu = myShosu + (WrkK - Int(WrkK)) * 100     Next WrkK   End If Next WrkJ mySeisu = mySeisu + Int(myShosu / 60) myShosu = myShosu Mod 60 sump60 = mySeisu + myShosu / 100 End Function 使用方法は、計算したいデータがA1,A2,A3セルに入力されているとして、 =sump60(A1,A2,A3) または =sump60(A1:A3) あるいは直接値を指定します。(必ずコンマで区切って下さい。) =sump60(1.45,2.15,1.30)

white-shealter
質問者

お礼

ありがとうございます。 マクロを組む能力がないために関数で考えていたのですが親切にありがとうございます。 この方法も試してみます。

その他の回答 (6)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.7

>普通「1:30」と入力するのはNGなんです。 A1:A3に1.45 2.15 1.30があるとして =TEXT(SUMPRODUCT(TEXT(A1:A3*100,"0"":""00")*1),"h.mm")+0 TEXT関数で一度時系列に変換、SUMPRODUCTで合計後に TEXT関数で数値書式に戻し+0で数値化です。

white-shealter
質問者

お礼

ありがとうございます。 こんなシンプルでやりたいことができるとは思いませんでした。

  • jindon
  • ベストアンサー率43% (50/116)
回答No.6

A1からA3にデータがある想定です。 =TRUNC(SUM(A1:A3))+(SUM(A1:A3)-TRUNC(SUM(A1:A3)))/60*100

white-shealter
質問者

お礼

ありがとうございます。 しかしこの方法だと小数部分が1を越えたときにエラーが出てしまいます。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

>時間として扱うのはNGなんです。 この意味が良く取れませんが、下記は混合型? A1,B1、C1の書式を数値で小数点以下2桁に設定します。 そしてA1に1.45 B1に2.15 C1に1.30と入力します。 すると上記の通りに表示されます。 A2セルに式=INT(A1)/24+(A1-INT(A1))*100/(24*60) を入れて、A2の式をB2、C3に複写します。 B2は=INT(B1)/24+(B1-INT(B1))*100/(24*60) です。C2は略。 値はA2:C2は0.072916667 0.09375 0.0625 これはエクセル時刻値と同じです。 例えばD2に=A2+B2+C2または=SUM(A2:C2)を入れます。 書式を時刻にして5:30となります。 ●エクセルの時間計算の機能を借りないならば =INT(A1)+INT(B1)+INT(C1)+INT(((A1-INT(A1))*100+(B1-INT(B1))*100+(C1-INT(C1))*100)/60)+MOD(((A1-INT(A1))*100+(B1-INT(B1))*100+(C1-INT(C1))*100),60)/100 となる。考えは単純ですが式が長くなって、これで良いか検証し難い。結果は5.3、書式を数値で小数点以下2桁に設定して5.30となりましたが。 セルが沢山あれば(上記のような式をこれ以上長く続けていられないから)、ピリオドを区切り文字として、整数部分と小数部分を2つのセルに分け、小数部分をX100して、それぞれを加え、小数点以下の部分の合計を÷60をした整数部を繰り上げるのが普通でしょう。

white-shealter
質問者

お礼

ありがとうございます。 そうですか。検証してみます。

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

>もう少し具体的な回答はないでしょうか? 参考URLは役に立ちませんでしたか? それ以外の回答としては、例えばセル上に文字として「5.30」などと入力しておき、そういった形で入力されたデータ専用の足し算関数を自作する、なんて方法も考えられますね。 ○参考URLの例ではどの部分が仕様にそぐわないのか 或いは、 ○セル上にどのように数値が格納されていて、どのように演算を行いたいのか といったことが判れば、もう少し踏み込んだ回答が書けるかもしれません。 Excel上で10進数以外の演算を行うのは、結構厄介なのです。 場合によっては、「時間で入力するのはNG」という仕様の方を潰した方が、効率が良いかもしれません。

white-shealter
質問者

お礼

ありがとうございます。 >場合によっては、「時間で入力するのはNG」という仕様の方を潰した方が、効率が良いかもしれません。 テンキーのみで入力したいのでここだけは外せなくて・・・

  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.2

セルの表示形式を時間にしてしまったらいかがですか。 手っ取り早いですよ。 セルA1に1:45 セルA2に2:15 セルA3に1:30 セルA4を =A1+A2+A3 とすれば、セルA4に5:30とおそらく表示されるはずです。 なお、単位を時から分に変えて、例えば1:45を0:01:45にするなどしてもよいでしょう。

white-shealter
質問者

お礼

回答ありがとうございます。 時間として扱うのはNGなんです。 他の回答はないでしょうか? どうぞよろしくお願いします。

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

普通に、「1:30」ってな感じで、時間として入力してはいけないのでしょうか? セルの書式の表示形式を「[h].mm」と設定すれば、見かけ上は「1.30」のように表示されますし。 どうしても時間として扱えない場合でしたら、以前回答した「Window Excel上にて、ダース同士の計算」(参考URL)が役に立つかもしれません。 12進数→60進数と変更するだけで対応出来る気がします。(あくまでも「気がする」だけですが(^^;)

参考URL:
http://www.okweb.ne.jp/kotaeru.php3?q=806812
white-shealter
質問者

お礼

回答ありがとうございます。 普通「1:30」と入力するのはNGなんです。 もう少し具体的な回答はないでしょうか?

関連するQ&A

  • 60進数の四則計算

    いつもお世話になります。 煮詰まっております。いい方法をご教授頂けたらと思います。 小数点以上は10進数、小数点以下(2桁まで)を60進数で表す数値があります。 1.30 ↑↑↑ ||-60進数  -区切り -10進数 このように表す数の四則計算をして、足し算は問題なく出来ます。 それ以外を計算する方法がうまくいきません。 一度数を10進に戻して・・・と思ったのですが、繰り上がり等でおかしくなっています。 期待値は 6.30×1.30=9.45 8.00÷2.00=4.00 などです。 よろしくご教授くださいますようお願い致します。

  • 2進数の足し算について

    CPUは引き算を行うことができず、2の補数を用いて引き算を足し算として考えれると知りました。 そこで8bitの最上位桁を符号とした7bitの引き算-24+(-8)を計算してみたのですが 24(10進数)→0011000(2進数)→1101000(2の補数) 8(10進数)→0001000(2進数)→1111000(2の補数) 符号 7654321←bit  1 1101000 +1 1111000  X 1100000 となり、1100000の2の補数をとると 0100000(2進)→32(10進数)で答えを求められました。 そこでお聞きしたいのですが、値を足したとき(↑の例だと1100000)が求められたときにどういった条件だと1100000の2の補数をとる必要があるのでしょうか? ↑の例だとXがどの条件のときでしょうか? 質問が長くなってしまいましたがよろしくお願いします。

  • 足し算

    足し算の意味について、整数の場合と小数・分数の場合と、同じ意味なんでしょうか?理由と共にお答えください。明日ディベートなんですぅ(+_+)

  • エクセルの足し算(多くの数)

    エクセルデーターで足し算したいのですが、 SUM関数は足し算できる数はきまっていますか? 40個くらいSUMの中に入れると、「多すぎます」と 表示されます。 たくさんの数を足し算したい場合はどのようにしたらよいでしょうか?みなさんの情報お待ちしています。 よろしくおねがいします。

  • ある二つの数の足し算を間違え、引き算にしたら、5.7になった

    ある二つの数の足し算を間違え、引き算にしたら、5.7になった 正しい答えとのその差13 ある数とは? これはどうといたらいいですか x+y=Z x-y=5.7 そのつぎはどうやったらよいでしょう?

  • 整数,自然数の問題

    『x+26>5x+9を満たす自然数の個数』の答えが『4個』だったのですが、計算してみると4.25でした。なぜ4個になるのかわかりません。 基礎がわかりません。詳しく教えてください。 あと、『3(x+2)≦x-5を満たす最大の整数を求めろ』という問題も、 同じように、計算すると『-5.5』と小数になりました。 考え方を教えてください。

  • 10進数→2進数

    2で割った余りを並べていく、小数部分を2倍して整数部分を並べていく方法で10進数を2進数に変換できる理由、nbitになるように0を左側につけて0と1を反転させ1を足すとnbitの2の補数表示の2進数を求めることができる理由が分かりません。分かる方、教えてください。

  • 整数部分、小数部分

    (問題) 1/√2-1の整数部分をa、少数部分をbとするとき a^2+b^2+2bの値を求める。 (答え) 5 下記の通り計算しました。 整数部分から求める。 √2+1/(√2-1)(√2+1)=√2+1 √2=1.4142・・・なので、1.4+1=2.4≒2 整数部分a=2としました。 小数部分はもとの数から整数部分を引くということで b=[1/√2-1]-2としました。 それをa^2+b^2+2bへ代入してみたのですが、答えが5になりません。 整数部分、小数部分という言葉から忘れていたので、途中の計算もこれで合っているかどうかも自信がありません。 本を見ても解らないので、教えていただけないでしょうか?宜しくお願い致します。

  • 2進数 8進数 16進数

    2進数の引き算 8進数の足し算、引き算 16進数の足し算、引き算。 この計算方法がいまいちよくわかりません。 2進数引き算 11111101-01111111 8進数足し算 345+674 16進数足し算 EBA-23F どうやって解いていけばいいのでしょうか? ぜひ回答お願いします。

  • そろばんでの小数の掛け算

    そろばんを使った小数の掛け算 3×21.6=64.8の計算なんですけど やりかたは計算する前に(かける数が帯小数のとき整数部分より1多く右にすすんだところを答えの一の位として左手の指でおさえる) この問題だと64が整数部分なので3つ進みます。 そろばん上では(216  3648)となるんですけど3から3つ目を指すらしいんですけど3→6→4→8になってなぜか8を指してしまって本来なら4を指してこれが一の位になると思うんですけど僕の指し方が違うのでしょうか? 他の問題だとちゃんと一の位がわかるんですがなぜかこれだけずれてしいます。 質問がわかりずらいかもしれませんがわかる方がいらっしゃったら ぜひお願いします。

専門家に質問してみよう