- ベストアンサー
60進数と10進数の足し算について
エクセルの計算式で整数部分を10進数、小数部分を60進数と分離して足し算する方法はないでしょうか? 例えば1.30+1.30は3.00、1.45+2.15.1.30は5.30というように答えを足したいのですが。 どなたかご教授お願いします。
- white-shealter
- お礼率86% (52/60)
- オフィス系ソフト
- 回答数7
- ありがとう数7
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
マクロを使った計算です。小数点以下は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)
その他の回答 (6)
- mshr1962
- ベストアンサー率39% (7418/18948)
>普通「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で数値化です。
お礼
ありがとうございます。 こんなシンプルでやりたいことができるとは思いませんでした。
- jindon
- ベストアンサー率43% (50/116)
A1からA3にデータがある想定です。 =TRUNC(SUM(A1:A3))+(SUM(A1:A3)-TRUNC(SUM(A1:A3)))/60*100
お礼
ありがとうございます。 しかしこの方法だと小数部分が1を越えたときにエラーが出てしまいます。
- imogasi
- ベストアンサー率27% (4737/17068)
>時間として扱うのは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をした整数部を繰り上げるのが普通でしょう。
お礼
ありがとうございます。 そうですか。検証してみます。
- ARC
- ベストアンサー率46% (643/1383)
>もう少し具体的な回答はないでしょうか? 参考URLは役に立ちませんでしたか? それ以外の回答としては、例えばセル上に文字として「5.30」などと入力しておき、そういった形で入力されたデータ専用の足し算関数を自作する、なんて方法も考えられますね。 ○参考URLの例ではどの部分が仕様にそぐわないのか 或いは、 ○セル上にどのように数値が格納されていて、どのように演算を行いたいのか といったことが判れば、もう少し踏み込んだ回答が書けるかもしれません。 Excel上で10進数以外の演算を行うのは、結構厄介なのです。 場合によっては、「時間で入力するのはNG」という仕様の方を潰した方が、効率が良いかもしれません。
お礼
ありがとうございます。 >場合によっては、「時間で入力するのはNG」という仕様の方を潰した方が、効率が良いかもしれません。 テンキーのみで入力したいのでここだけは外せなくて・・・
- sanori
- ベストアンサー率48% (5664/11798)
セルの表示形式を時間にしてしまったらいかがですか。 手っ取り早いですよ。 セルA1に1:45 セルA2に2:15 セルA3に1:30 セルA4を =A1+A2+A3 とすれば、セルA4に5:30とおそらく表示されるはずです。 なお、単位を時から分に変えて、例えば1:45を0:01:45にするなどしてもよいでしょう。
お礼
回答ありがとうございます。 時間として扱うのはNGなんです。 他の回答はないでしょうか? どうぞよろしくお願いします。
- ARC
- ベストアンサー率46% (643/1383)
普通に、「1:30」ってな感じで、時間として入力してはいけないのでしょうか? セルの書式の表示形式を「[h].mm」と設定すれば、見かけ上は「1.30」のように表示されますし。 どうしても時間として扱えない場合でしたら、以前回答した「Window Excel上にて、ダース同士の計算」(参考URL)が役に立つかもしれません。 12進数→60進数と変更するだけで対応出来る気がします。(あくまでも「気がする」だけですが(^^;)
お礼
回答ありがとうございます。 普通「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 などです。 よろしくご教授くださいますようお願い致します。
- ベストアンサー
- Visual Basic
- 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 そのつぎはどうやったらよいでしょう?
- ベストアンサー
- 数学・算数
- 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を指してこれが一の位になると思うんですけど僕の指し方が違うのでしょうか? 他の問題だとちゃんと一の位がわかるんですがなぜかこれだけずれてしいます。 質問がわかりずらいかもしれませんがわかる方がいらっしゃったら ぜひお願いします。
- 締切済み
- 数学・算数
お礼
ありがとうございます。 マクロを組む能力がないために関数で考えていたのですが親切にありがとうございます。 この方法も試してみます。