[[20100921141207]] 『小数点で表示された時間を、:を使った表示に直す』(アラーキー) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『小数点で表示された時間を、:を使った表示に直す』(アラーキー)

はじめまして。
小数点で表示された時間を、:を使った表示に直したいです。
しかし、小数点を使った表示でも、
7.3と表示されているものは7時間30分という意味で使っています。
文字列に直してなどいろいろやってみたのですが、まったくうまくいきません。
教えていただけませんでしょうか。
Excel2003、WindowsXPです。
よろしくお願いいたします。


 =SUBSTITUTE(TEXT(A1,"00.00"),".",":")
 とかですかね?
 シリアル値なら
 =VALUE(SUBSTITUTE(TEXT(A1,"00.00"),".",":"))

 (momo)

 別セルに関数で、でよければ元のデータがA1セルにあるとして
 =TEXT(A1*100,"0!:00")*1
 と入力して式を入力したセルの書式設定で「表示形式」を「時刻」にしてみてください。
 (独覚)

皆様ありがとうございます。
ひとつお伝えもれしたことがございます。
時刻表示にして、それに整数を掛けるということを行います。
計算後、また小数点表示にするという、また手間のかかることをします。
簡単なようでうまくいきません。
よろしくお願いいたします。

(アラーキー)


 最初から時間はシリアル値で扱って、表示だけ小数点にするのをお勧めしますが・・・
 そもそも何をしたいのでしょうか?
 それを聞いたほうが早いような気がします。
 (momo)

職員の月の総勤務時間を算出しようとしています。

今は、前回の書き込みのとおりの小数点表示で一日の勤務時間が表示してあり、これに回数を掛けます。

小数点表示させてある時間が、例えば15分を0.15と表示させているので時間計算が難しくなってしまっています。

最終的にはまた小数点表示させます。

説明足らずで申し訳ございません。

(アラーキー)


 それですと少数の時間に掛けると小数点以下が0.59以上になると変になるという事ですよね?
 なのでデータは時間のシリアル値のままにしておいて
 表示形式で h.mm と少数表示にしておけば面倒な変換がいらないのでは? という事です。
 時間で表示したければ h:mm に戻すだけですし簡単では?
 (momo)

 「:」を使うとテンキーだけで入力できないので入力は「7.30」にしたいということであれば下記を参考にして
 「7..30」の入力で「7:30」になるよう設定しておいてはどうでしょうか?

[[20040523125849]] 『時間入力の自動変換』(koko)

 (独覚)

ありがとうございます。

これから入力するのではなく、すでに数値が入っております。

6.3や3.15など。

これらを訂正するところからやらなければなりませんよね?

表示形式を直したりオートコレクトでは対処できないようなのですが、やり方をまちがっているのでしょうか・・・。

(アラーキー)


 アラーキーさんの意図に合っていればの話ですが。

 ブックをコピーして影響の無いように試してみてください。

 少数入力&少数表示 → 時間入力&少数表示
 に変更したいのでしたら、対象範囲を選択したうえで
 以下のようなコードで変換してしまうのはどうですか?

  Sub test()
  With Selection
    .Replace ".", ":"
    .NumberFormatLocal = "h.mm"
  End With
  End Sub

 (momo)


 momoさん、
 それですと「7.3」→「7:30」(表記では「7.30」)ではなく「7:03」(表記では「7.03」)になってしまいませんか?
 (だから私は最初の回答で置換を出さなかった)
 (独覚)

 ああ、ほんとですね。
 独学さんご指摘ありがとうございます。
 (最近、指摘されて気づくことが多い・・・検証不足ですねぇ)

 では、これで

  Sub test()
  For Each r In Selection
    r.Value = Replace(Format(r.Value, "0.00"), ".", ":")
    r.NumberFormatLocal = "h.mm"
  Next r
  End Sub

 あ、ちなみに最初にしめした数式の方はText関数で書式指定してるので7.3は7;30になります。
 (momo)

ありがとうございます。
表示が直りました。
これに、いくつか回数を掛けるのですが、そのまま掛けると表示がおかしくなってしまいませんか?
うまい方法はございませんでしょうか。

(アラーキー)


 >そのまま掛けると表示がおかしくなってしまいませんか?
 こういう場合はどのようにおかしくなるかを書いてくれると検証しやすいです。

 「25:00」→「1:00」と24時間以上が表示されないという場合であればセルの書式設定の「表示形式」で「分類」に
 「ユーザー定義」、「種類」に「[h]:mm」と設定してみてください。

 症状が違う場合はどのように表示されるはずがこのように表示されると症状を具体的に説明してみてください。
 (独覚)

 元々シリアル値の計算なのですが表示が少数のままだから問題という事ですよね?

 でしたら、たとえば2倍の場合
 =VALUE(TEXT(A1*2,"[h]:mm"))
 のようにすれば時間入力のシリアル値になりますので
 表示形式で [h].mm のようにすれば大丈夫ではないですか?
 (momo)


ありがとうございます。

=VALUE(TEXT(A1*A2,"[h]:mm"))という数式をいれました。

実はセルを参照して時間と回数を掛けているのですが、若干あっていないところがあります。

A1=7.3、A2=9ですと、値は1576.48となります。

表示形式は[h].mmとしています。

(アラーキー)


 A1の値が7.3だからではないですか?
 A1の値は7:30と入力して表示形式で[h].mmにするんですよ?
 (momo)

すみませんでした。

部分的にマクロ実行やってませんでした・・・。

表示できました、ありがとうございました。

(アラーキー)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.