
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)
この回答へのお礼
お礼日時:2004/06/04 10:37
ありがとうございます。
マクロを組む能力がないために関数で考えていたのですが親切にありがとうございます。
この方法も試してみます。
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.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をした整数部を繰り上げるのが普通でしょう。
No.3
- 回答日時:
>もう少し具体的な回答はないでしょうか?
参考URLは役に立ちませんでしたか?
それ以外の回答としては、例えばセル上に文字として「5.30」などと入力しておき、そういった形で入力されたデータ専用の足し算関数を自作する、なんて方法も考えられますね。
○参考URLの例ではどの部分が仕様にそぐわないのか
或いは、
○セル上にどのように数値が格納されていて、どのように演算を行いたいのか
といったことが判れば、もう少し踏み込んだ回答が書けるかもしれません。
Excel上で10進数以外の演算を行うのは、結構厄介なのです。
場合によっては、「時間で入力するのはNG」という仕様の方を潰した方が、効率が良いかもしれません。
この回答へのお礼
お礼日時:2004/06/04 10:34
ありがとうございます。
>場合によっては、「時間で入力するのはNG」という仕様の方を潰した方が、効率が良いかもしれません。
テンキーのみで入力したいのでここだけは外せなくて・・・
No.1
- 回答日時:
普通に、「1:30」ってな感じで、時間として入力してはいけないのでしょうか?
セルの書式の表示形式を「[h].mm」と設定すれば、見かけ上は「1.30」のように表示されますし。
どうしても時間として扱えない場合でしたら、以前回答した「Window Excel上にて、ダース同士の計算」(参考URL)が役に立つかもしれません。
12進数→60進数と変更するだけで対応出来る気がします。(あくまでも「気がする」だけですが(^^;)
参考URL:http://www.okweb.ne.jp/kotaeru.php3?q=806812
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでシート全体が灰色になり...
-
エクセルで全ての数字の前に文...
-
エクセルで空白を無視して一番...
-
エクセル 単位を百万から億単...
-
HTMLのソースをエクセルに貼り...
-
エクセル・時間を数値に変換す...
-
エクセルのセル内の文字が逆表...
-
半角英数で「¥」を入力したい...
-
半角の引用符 “ ” の打ち方
-
名前(平仮名)を数字に変換する...
-
シフトキーを押しての文字入力...
-
Yを逆さにした「スターデルタ結...
-
Aの逆さの記号の出し方
-
フォルダ名を並び替えても必ず...
-
エクセルの挿入図形で文字が隠...
-
「“」と「”」について
-
エクセルにひらがなが入力でき...
-
なぜか全角カタカナ入力になっ...
-
「載いた」ってどう読むんですか?
-
半角数字で電話番号を入れてる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで空白を無視して一番...
-
Excelでシート全体が灰色になり...
-
エクセルで全ての数字の前に文...
-
セル内の数値を二段で表示する方法
-
エクセル 単位を百万から億単...
-
Open Officeで表の中に日付を入...
-
エクセルのセル内の文字が逆表...
-
HTMLのソースをエクセルに貼り...
-
エクセルで計算式を入力しても...
-
DATEVALUE関数がエラーになる
-
エクセルで数式が文字列になっ...
-
エクセルで、式の書いてあるセ...
-
60進数と10進数の足し算について
-
エクセル エラー?表示
-
エクセルのハイパーリンクで・・。
-
エクセルで「1」を入力すると...
-
エクセルの条件付き書式
-
【エクセル】1234567を123万と...
-
エクセル・時間を数値に変換す...
-
エクセル VBA不良率算出について
おすすめ情報