質問投稿でgooポイントが当たるキャンペーン実施中!!>>

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

このQ&Aに関連する最新のQ&A

A 回答 (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)
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/06/04 10:37

>普通「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で数値化です。
    • good
    • 1
この回答へのお礼

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

お礼日時:2004/06/04 10:33

A1からA3にデータがある想定です。



=TRUNC(SUM(A1:A3))+(SUM(A1:A3)-TRUNC(SUM(A1:A3)))/60*100
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/06/04 10:23

>時間として扱うのは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.0729166670.093750.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をした整数部を繰り上げるのが普通でしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/06/04 10:29

>もう少し具体的な回答はないでしょうか?



参考URLは役に立ちませんでしたか?
それ以外の回答としては、例えばセル上に文字として「5.30」などと入力しておき、そういった形で入力されたデータ専用の足し算関数を自作する、なんて方法も考えられますね。

○参考URLの例ではどの部分が仕様にそぐわないのか
或いは、
○セル上にどのように数値が格納されていて、どのように演算を行いたいのか
といったことが判れば、もう少し踏み込んだ回答が書けるかもしれません。


Excel上で10進数以外の演算を行うのは、結構厄介なのです。
場合によっては、「時間で入力するのはNG」という仕様の方を潰した方が、効率が良いかもしれません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/06/04 10:34

セルの表示形式を時間にしてしまったらいかがですか。


手っ取り早いですよ。

セルA1に1:45
セルA2に2:15
セルA3に1:30
セルA4を =A1+A2+A3
とすれば、セルA4に5:30とおそらく表示されるはずです。

なお、単位を時から分に変えて、例えば1:45を0:01:45にするなどしてもよいでしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/06/04 02:04

普通に、「1:30」ってな感じで、時間として入力してはいけないのでしょうか?



セルの書式の表示形式を「[h].mm」と設定すれば、見かけ上は「1.30」のように表示されますし。

どうしても時間として扱えない場合でしたら、以前回答した「Window Excel上にて、ダース同士の計算」(参考URL)が役に立つかもしれません。
12進数→60進数と変更するだけで対応出来る気がします。(あくまでも「気がする」だけですが(^^;)

参考URL:http://www.okweb.ne.jp/kotaeru.php3?q=806812
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/06/04 02:03

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで60進法計算の仕方を教えてください

エクセルで60進法計算の仕方を教えてください

時間表記ではなく、小数点表記(小数点以下2桁)で60進法の計算をしたいのです。

例) 0.60 になったら → 1.00 と表記される

具体的には、 0.10 + 0.50 = 1.00
1.20 + 0.50 = 1.10
1.50 + 1.50 = 3.40

となる計算にするには、マクロ以外の方法でどうしたらよいでしょうか、教えてください。
宜しくお願いします(><)

Aベストアンサー

0.6進法の数値に変換後、SUM関数で合計し、元に戻してやれば簡単に計算出来ると思います。

例えば、A列に元数値、B列に0.6進法の数値とすれば

  A1=1.2
  A2=0.5

の場合

  B1=int(A1)*0.6+mod(A1,1)
  B2=int(A2)*0.6+mod(A2,1)・・・・・セル[B1]をセル[B2]にコピーする
  B3=int(sum(B1:B2)/0.6)+mod(sum(B1:B2),0.6)・・・・・答え

もし、計算対象が沢山あったとしても、セル[B1]を必要行コピーして、最後に元に戻す計算式を入力すれば、いくらでも計算出来ます。

Q10進法で時間の計算で30分が0.5だったら、その計算方法が分かりませ

10進法で時間の計算で30分が0.5だったら、その計算方法が分かりません、教えてください。

Aベストアンサー

例えば、180分は何時間でしょうか?
60,60,60で3時間。つまり、180÷60で3時間と
やりませんか?

分が60より小さくても同じことです。60で割れば分の単位から
時間の単位にかえることができます。

ただ、6の倍数になってない10分とかは割り切れないので、その
ようなときは普通、分数で 10÷60→10/60→1/6 の
ように表すことが多いと思います。

Q10進法の数を60進法の数に変換するには

 10進法で表された0.06は60進法ではいくつですか。
 一般に、10進数を60進数に直す方法が分りません。特に、小数の場合。
 よろしくお願いします。

Aベストアンサー

10進法は1,2.3・・9で10になったところ1の位から10の位に桁数があがります。
60進法は、たとえば時間で考えれば1.2.3.・・・59秒から60秒になったとき1分になります、つまり60で秒という位から分の位になります。また分も60分で1時間というように分から時間という位にかわります。

10進法での表記を考えてみましょう。
例えば456は100(10^2)の位が4
      10(10^1)の位5
       1(10^0)の位が6
つまり456=4×10^2+5×10^1+6×10^0

小数については、例えば
12.3=1×10^1+2×10^0+3×10^-1

60進法も同じです
7322秒を60進法であらわして見ましょう
7322のなかに60^2は2個あるので2時間(秒より2つ上の位)7322÷60^2=2余り122
次に122のなかに60^1は2個あるので2分(秒より1つ上の位)122÷60^1=2余り2
最後に2のなかに60^0は2個あるので2秒
つまり7322秒は2時間2分2秒となります。

0.06も同じ考え方で出来ます。
0.06のなかに60^-1(60分の1)はいくつありますか
0.06=6/100
  =36/600
  =30/600+6/600
  =3×1/60+1/100
となるのでこたえは3であまりは1/100となります。

次に1/100のなかに60^-2(3600分の1)はいくつありますか
1/100=36/3600
となるのでこたえは36
よって
0.06を60進法であらわすと0.(3)(36)となります。()で囲まれた数字がそれぞれの桁の数字です。
時間を例に取れば0.06時間は時間より1つ下の位分の係数が3で2つ下の位秒の係数が36と言うことです。

10進法は1,2.3・・9で10になったところ1の位から10の位に桁数があがります。
60進法は、たとえば時間で考えれば1.2.3.・・・59秒から60秒になったとき1分になります、つまり60で秒という位から分の位になります。また分も60分で1時間というように分から時間という位にかわります。

10進法での表記を考えてみましょう。
例えば456は100(10^2)の位が4
      10(10^1)の位5
       1(10^0)の位が6
つまり456=4×10^2+5×10^1+6×10^0

小数については、例えば
12.3=1×10^1+2×10^0+...続きを読む

Q電卓での時間の足し算方法

3時間53分+15時間46分+12時間31分を電卓で計算する時、分を時間になをして計算しますが 簡単な計算方法があったら教えて下さい 
例 30053+15046+12046とか小数点を使うとか?

Aベストアンサー

こんなのはどうでしょう。

まず分だけ計算。
53+46+31= [130]
時間に直す
÷60= [2.166]
時間部分を消す(覚えておく)
-2= [0.166]
分に戻して小数点以下に移す
×60÷100= [0.0999]
覚えておいた数字を足す
+2= [2.0999]
時間部分の計算
+3+15+12= [32.0999]
整数部分が時間、小数点以下が分。誤差は適に解釈して読む。

>30053+15046+12046
これもいい方法だと思いますよ。分→時間のケタ上がりが問題になりますが、最後に「60引いて1000足す(要するに940足す)」を繰り返せばうまくできると思います。

Q60進数の四則計算

いつもお世話になります。
煮詰まっております。いい方法をご教授頂けたらと思います。

小数点以上は10進数、小数点以下(2桁まで)を60進数で表す数値があります。

1.30
↑↑↑
||-60進数
 -区切り
-10進数


このように表す数の四則計算をして、足し算は問題なく出来ます。

それ以外を計算する方法がうまくいきません。
一度数を10進に戻して・・・と思ったのですが、繰り上がり等でおかしくなっています。

期待値は
6.30×1.30=9.45
8.00÷2.00=4.00
などです。

よろしくご教授くださいますようお願い致します。

Aベストアンサー

'パラ1・パラ2に値
'パラ3は0~3までの値(+-×÷)
Function TimeCalc(inSng1 As Single, inSng2 As Single, inMode As Byte) As Single
  Dim sngCalc As Single
  Dim strWk  As String
  
  Dim sngWk1 As Single
  Dim sngWk2 As Single

  sngWk1 = Convert10(inSng1)
  sngWk2 = Convert10(inSng2)
  
  Select Case inMode
    Case 0: sngCalc = sngWk1 + sngWk2
    Case 1: sngCalc = sngWk1 - sngWk2
    Case 2: sngCalc = (sngWk1 * sngWk2) / 100
    Case 3: sngCalc = (sngWk1 / sngWk2) * 100
  End Select
  
  TimeCalc = (sngCalc \ 100) & "." & Format(((sngCalc Mod 100) * 60 / 100), "00")
End Function

'一次変換用
Function Convert10(inSng As Single) As Single
  Dim strWk  As String
  
  strWk = Right(Format(inSng, "#.#0"), 2)
  Convert10 = CSng(Int(inSng) & (CSng(strWk) / 60 * 100))
End Function

'パラ1・パラ2に値
'パラ3は0~3までの値(+-×÷)
Function TimeCalc(inSng1 As Single, inSng2 As Single, inMode As Byte) As Single
  Dim sngCalc As Single
  Dim strWk  As String
  
  Dim sngWk1 As Single
  Dim sngWk2 As Single

  sngWk1 = Convert10(inSng1)
  sngWk2 = Convert10(inSng2)
  
  Select Case inMode
    Case 0: sngCalc = sngWk1 + sngWk2
    Case 1: sngCalc = sngWk1 - sngWk2
    Case 2: sngCalc = (sngWk1 * sngWk2) ...続きを読む

Qエクセルで10進法から60進法に変換する方法

エクセルで10進法から60進法に変換する方法を教えてください。
たとえば、31.7041667という数字があったとして、それが31度42分15秒という角度に変換したいのです。関数電卓では簡単にできるのですが、エクセルでの方法、また関数などあったら教えてください。

Aベストアンサー

ちょっと裏技的ですが。

1.31.7041667を24で割ります。
2.セルの書式設定でユーザー定義を選び、
[h]度mm分ss秒
と入力します。

以上です。

Qエクセルで分から時間に変換したいのですが

いつもお世話になっています。よろしくお願いいたします。
エクセルで「分」の合計を「時分」に変換して表示したいのですがどうもうまくいきません。
どなたかご教授願えないでしょうか?
例:200(分)=3時間20分もしくは3:20
お願いいたします。

Aベストアンサー

A1に「分」が入っていて、別のセルに時分に変換して表示する場合とします。

24時間(1440分)未満であれば、
=A1/1440
とし、セルの書式設定で以下のいづれかを設定すればOK。
(1)[時刻]→[13:30]を選択
(2)[ユーザー定義]→h:m
(3)[ユーザー定義]→h時間m分
※分単位は常に2桁(2時間05分など)で表示したいなら
 (1)の設定か、またはmをmmに変更してください。


上記方法では23時間59分までしか正しく表示できないので、
もし24時間(1440分)以上になる場合は別の方法が必要です。
=INT(A1/60)&":"&MOD(A1,60)
または
=INT(A1/60)&"時間"&MOD(A1,60)&"分"
※分表示を常に2桁にするのであれば、
 MOD(A1,60)をRIGHT("0"&MOD(A3,60),2)に変更してください。

Qエクセル 60進法 時間 計算

エクセルでの勤務時間の計算方法なのですが、

例えば、出勤 23時00分  退勤  7時00分

    出勤 7時00分   退勤  15時00分

の勤務時間をエクセルで足し算、引き算、合計計算の方法を教えてもらえませんか?

合計計算のように別々の複数の合計計算を出来るようには出来ないのでしょうか?


宜しくお願いします>

Aベストアンサー

>エクセル初心者なのでよく分かりません。

ご存じの通り、エクセルには計算、集計などなどに便利なように約250~340の関数が用意されています。
通常は、この中から目的に合った関数を使用します。 用意されたものにない場合は自分用の関数も作成し使用することもできます。 これでも解決できない場合は、VBAというプログラム言語(マクロはこの一部)を使用して解決できます。


>なぜにIF関数を使うのか

このケースで、なぜにIF関数を使ったかというと、時間の引き算をする時にマイナスになると正しく表示してくれないことと、簡単で分かりやすい関数であることであるからです。


>B2-A2<0の意味
>,を挟んでの3つの式の必要性を教えてもらえないでしょうか?

各関数には、それぞれ固有の書式というものが設定されています。 これに従って値を設定しないと正しい答えは得られません。 この書式はエクセルのヘルプに書かれていますのでそれに従います。

IF関数の書式は、次の通りです。 (通常のエクセル用)

  IF(論理式[,真の場合][,偽の場合])    [ ]の部分は省略可能という意味

となっています。

  =IF(B2-A2<0,B2+1-A2,B2-A2)

論理式は、「B2-A2<0」で意味は、もしセル"B2"の値から"A2"の値を引いた結果が「負」であったならば...
真の(負の数である)場合は、セル"B2"の値に「1」を加えてから"A2"の値を引いた結果を表示する。
偽の(0または正の数である)場合は、そのままセル"B2"の値から"A2"の値を引いた結果を表示する。

なお、エクセルのヘルプには大きく分けて2種類のヘルプがあります。 通常のエクセルのシートを開いている状態で見るヘルプはエクセル一般のヘルプです。 VBエディターからのヘルプは、VBA用で内容が違っています。

エクセルも結構奥が深いのでどこまで勉強したらよいかというのはありません。 何か疑問に思った時に人に聞く程度でしたら、数年たっても実用に適すだけの知識、技量は得られません。
特に会社での日常業務でエクセルを使うのであれば、最低数種類の参考書籍を購入して、毎日眺めながら、少しづつでも取り組み利用していくことを強く勧めます。 皆さんそうしています。 

関数1つづつ制覇していくのは仕事もはかどるし楽しいものですよ。 頑張ってください。

>エクセル初心者なのでよく分かりません。

ご存じの通り、エクセルには計算、集計などなどに便利なように約250~340の関数が用意されています。
通常は、この中から目的に合った関数を使用します。 用意されたものにない場合は自分用の関数も作成し使用することもできます。 これでも解決できない場合は、VBAというプログラム言語(マクロはこの一部)を使用して解決できます。


>なぜにIF関数を使うのか

このケースで、なぜにIF関数を使ったかというと、時間の引き算をする時にマイナスになると正...続きを読む

Q0.5時間などの時間計算の方法

30分を0.5時間と言うときがあります。1時間を1と考えてその半分なので0.5というのは理解できます。では0.12時間とか0.74時間は何分になるんでしょうか?計算方法がわかりません。どのように計算すればよいでしょうか?

Aベストアンサー

30分が0.5時間と分かっているのであれば、それを式に直してみましょう

 30分÷60分=0.5時間

これは分かりますよね
では、0.12時間は?という前にこの式を少し変えてみます

 30÷60 = 0.5
 30÷60×60 = 0.5×60 (=の両側に60分を掛けます)
 30×1 = 0.5×60 (左の÷60が×60と打ち消しあって1になります)
 30 = 0.5×60

では、0.12時間は何分になりますか?
上の式に当てはめると、

 □=0.12×60

あっさり答えられますよね
同様に 0.74時間も計算できますよ


まだ分からないというのであれば、分数にすると分かりやすいかもしれません
  30
 ── = 0.5
  60
(自分はこの表現の方が好きですね)
あとはいろいろと考えてみてください

Qエクセルで数式の結果が反映されない(自動計算になっているのに)

すいません、教えてください。

エクセル(XP)で数式が自動計算されなくなって
しまいました。

  ※ツールのオプションはちゃんと自動計算に
   なっているのに全く反映されません。

今まで全く問題なく作業できていたので
原因が分からず困っています。

数式等のエラーだとは考えにくいです。
と言うのも数式のあるセルをダブルクリックして
選択し、そのままEnterキーを押すと計算結果が
反映されます。
ただ、今まで全て自動計算されていたのが
全く動かなくなってしまったんです。

同じようなトラブルを経験された方、又は
詳しい方、どうかよろしくお願いします。

Aベストアンサー

原因は分からずじまいになってしまいましたが
同じことがありました。

「Officeの救急隊」を試してみましょう。
ボタン一発で全ての設定が元に戻ります。
http://www.vector.co.jp/soft/win95/util/se247118.html
(ツールバーなども初期状態に戻ります)

私の場合はコレで直ってしまいました^^

参考URL:http://www.vector.co.jp/soft/win95/util/se247118.html


人気Q&Aランキング