• ベストアンサー

Excel

エクセルで、セルA1に2:37と入力し時速90キロで走った時の表定速度を求めるにはどんな関数を使えばいいですか?

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

  • ベストアンサー
  • m_and_dmp
  • ベストアンサー率54% (987/1817)
回答No.4

エクセルの計算ではなく、関数で実行したいのであれば、組み込み関数にはそのようなものはありそうにないので、自分でユーザー定義関数を作成します。 停止している時間が指定されていないので、セル A2 に停止時間を h:mm と入力されているものとします。 時速90kmで走ったとき、とありますが、90km が変わる可能性があるものとして、セル A3 に時速が入力されているものとします。 Excel の Visual Basic Editor を開いて、つぎのコードをコピー/ペーストします。 これで、ユーザー定義関数が出来上がります。 実行するときは、答え(表定速度)を表示させるセルを選択してfx ボタンを押し、表示されるユーザー定義関数の中から HS を選択します。 マクロが同じシートに格納されている場合は、答えを表示させるセルに = HS() と打ち込んでエンターしても良いです。 Function HS() Dim LT As Date, ST As Date, NT As Double LT = Range("A1") ST = Range("A2") SP = Range("A3") NT = LT - ST DD = SP * NT HS = DD / LT End Function Function HS() の最後の文字は、間にスペースのない「 ( 」 と 「 ) 」です。重なってゼロのように見えるかもしれませんが。 Function HS() の HS が関数名です。別に HS でなければならないわけではありませんので好きな名前に変更してください。変更した場合は、8行目の HS = .... のHS を同じ名前に変更してください。 LT は、移動に要した時間 h:mm です。Date として定義されていますので、1:00 は普通の値にすると 1/24 ですが、最終計算結果は合っているようです。 ST は、停止していた時間 h:mm です。 NT は、したがって、走行していた時間になります。Double として定義されていますので小数で表される数値です。 DD は、走行距離のつもりですが、時間が 1/24 で計算されていますので、この値だけを取り出したときは正しい走行距離にはなりません。計算途中の数値なので気にしないでください。 Function は、通常( )の中に引数を記入しますが、上の例のように引数がなくても動作します。LT, ST, SP を引数にするときは、Function HS(LT AS Date, ST AS Date, SP As Double) としてやれば、セルを参照する必要はなく、関数マクロを実行するときセルを参照することになります。 上の例は、私のExcel 2003 で動作を確認しましたが、貴環境においてエラーになったときは、Visual Basic Editor でステップバイステップで実行してどこに問題があるか突き止めてください。

その他の回答 (3)

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.3

関数でなく計算式を使うですが、道路(?)の状況によって違います。 http://ja.wikipedia.org/wiki/%E8%A1%A8%E5%AE%9A%E9%80%9F%E5%BA%A6

回答No.2

表定速度?停まった時間とか解らないし…。 距離なら、↓ですが…。 =(HOUR(A1)+MINUTE(A1)/60)*90

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

セルA1に2:37?では、 関数では計算できません。

関連するQ&A