人に聞けない痔の悩み、これでスッキリ >>

たとえば
500と入力したときセルの表示には5:00と表示させ
さらにそれを5:00であることを認識させるにはどうすればいいでしょうか?

セルの書式で「0":"00」とすれば時刻形式にはなりますが、時刻としては認識しないので・・・

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

A 回答 (4件)

文字列からでタイムシリアル値に変換するのは、TIMEVALUE関数しかありません。

TIME関数に持ち込む方法もありますが。
時間:分:秒のカタチの引数にします。
F1セルに
=TIMEVALUE(LEFT(E1,LEN(E1)-2)&":"&RIGHT(E1,2)&":00")
式を下方向に複写する。

E列   F列
5005:00:00
120012:00:00
34#VALUE!
231223:12:00
230023:00:00
4124:12:00
ーー
分だけの入力がある場合があれば、G1に
=IF(LEN(E1)<3,TIMEVALUE("00:"&E1&":00"),TIMEVALUE(LEFT(E1,LEN(E1)-2)&":"&RIGHT(E1,2)&":00"))
式を下方向に複写する。
例データ
E列  F列   G列
5005:00:005:00:00
120012:00:0012:00:00
34#VALUE!0:34:00
231223:12:0023:12:00
230023:00:0023:00:00
4124:12:004:12:00
2#VALUE!0:02:00
    • good
    • 2
この回答へのお礼

教えていただいた方法で解決しました
ありがとうございました

お礼日時:2008/01/02 00:09

◆時刻として認識させるには、こんな方法も


=TIME(INT(A1/100),RIGHT(A1,2),)
    • good
    • 1
この回答へのお礼

ありがとうございました
無事に解決しました

お礼日時:2008/01/02 00:08

》 セルの書式で「0":"00」とすれば時刻形式にはなります…



0!:00 でもOKです。

時刻として計算するときは、=TEXT(A1,"0!:00")+0 としたら如何?
    • good
    • 1
この回答へのお礼

ありがとうございます
無事に解決しました

お礼日時:2008/01/02 00:08

対象をA1セルとした場合、



1.シート名のタブを右クリック
2.コードの表示
3.表示された右側の白い広い部分に以下をコピーペ

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
x = Target.Value
Application.EnableEvents = False
Target.Value = IIf(Len(x) = 4, Left(x, 2) & ":" & Right(x, 2), Left(x, 1) & ":" & Right(x, 2))
Application.EnableEvents = True
End Sub

4.Altキー+F11キーで元に戻る。


これでA1セルに730と入れると7:30に、1200と入れると12:00となります。

では、良いお年を!
    • good
    • 0
この回答へのお礼

ありがとうございます
無事に解決しました

お礼日時:2008/01/02 00:10

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

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

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

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

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

Q~時間~分 を数値として認識させる方法

別のところからコピーしてきたデータは、
セルB2 18時間15分、
  B3 3時間、
  B4 30分
などの表示形式になっているテキストデータです。
これを、B2+B3 のような、計算にそのまま用いることのできるような、セルの書式設定の方法はあるでしょうか?

逆に数値データを ~時間~分 の形式で表示させる方法は何通りか知っています。
また、別の列を用いれば、find("時間",B2) などを使って、数値だけを抜き出す方法はわかります。

私が知りたいのはあくまでも、新たな列を作らなくても 18時間15分 を 18:15 だと認識させ、3時間 を 3:00 だと認識させ、30分 を 0:30 だと認識させる方法があるかないかです。
数値をテキストにすることは容易でも、
テキストを数値として認識させることはできませんか?

よろしくお願いします。

Aベストアンサー

こんばんは!

>私が知りたいのはあくまでも、新たな列を作らなくても 
他の列に関数で表示させるのは簡単ですが、
どうしてもB列そのものを時間としてのシリアル値として認識させたい!というコトですね!
VBAでの一例です。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から
Dim i As Long
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
With Cells(i, "B")
If InStr(.Value, "時間") > 0 Then
.Value = Replace(Replace(.Value, "時間", ":"), "分", "")
ElseIf InStr(.Value, "分") > 0 Then
.Value = "0:" & Replace(.Value, "分", "")
End If
.NumberFormatLocal = "[h]:mm"
End With
Next i
End Sub 'この行まで

※ 関数でやるべきコトを単純にコードにしただけです。
他に良い方法があればごめんなさいね。m(_ _)m

こんばんは!

>私が知りたいのはあくまでも、新たな列を作らなくても 
他の列に関数で表示させるのは簡単ですが、
どうしてもB列そのものを時間としてのシリアル値として認識させたい!というコトですね!
VBAでの一例です。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から
D...続きを読む

QEXCELで文字列を時刻表示(時:分:秒)にしたいのですが?

セル内の7桁時分秒表示(00時00分00秒0)の文字列から00:00:00(時:分:秒)と表示させる。
又は00:00:00:0(時:分:秒:0)と表示させる。
よろしくお願いします。


2121170 を 21:21:17 又は 21:21:17:0
1710500 を 17:10:50 又は 17:10:50:0
0001070 を 00:01:07 又は 00:01:07:0

Aベストアンサー

◆表示だけなら
★表示形式をユーザー定義で、 00!:00!:00!:0 とします

★シリアル値にするなら
別のセルに
=TIME(LEFT(A1,2),MID(A1,3,2),MID(A1,5,2))

QExcelで6桁の文字列を時刻に変換したい

Excelで、「115959」のような文字列を、「11:59」の形式に変えたいです。

「11:59:59」のように時刻の形式に変換し、最終的には「11:59:00」の形にすれば良いのだと
思うのですが、やり方がわかりません。

やり方をご存知の方、いらっしゃいましたら
お教え頂けますでしょうか。

Aベストアンサー

>「11:59:59」のように時刻の形式に変換し
=TEXT(A1,"00!:00!:00")

>最終的には「11:59:00」の形にすれば
=FLOOR(TEXT(A1,"00!:00!:00"),"0:1:0")

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルで表示形式の時刻の「0:00」を表示しないようにするには?

エクセルで残業の計算をしています。
入社時間 退社時間 残業時間
のような感じでしているのですが、
残業時間が、0:00(つまり残業0)の場合は、
何も表示しない場合は、どのような関数を書けばよいでしょうか?

ちなみに残業時間のセルには、残業時間を自動的に表示させるために、
すでに「=IF((A1="")+(B1=""),"",B1-A1-"8:30")」という式が入っています。
この式にどういう式を付け加えればよいのでしょうか?

Aベストアンサー

ただ単に表示形式を変更すればいいです。現状で書式が時刻形式の
h:mmになってると思いますので、ユーザー定義でh:mm;;と後ろにセ
ミコロンを2つ追加して下さい。負の値と0の時は何も表示しないと
いう意味になります。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで時間入力10:30の:コロン省略したい。

始業と終業の時間を入力し勤務時間を計算しております。
始業時間はA1に8:30 終業時間はB1に17:00と入れております。
コロン(:)を省略できるととても楽になります。8:30は830と入力、17:00は1700と入力して
表示にはコロンが入り、セルの書式としては時刻と認識し時間計算が出来ればありがたいです。
よろしくお願い致します。

Aベストアンサー

それが実現されると数値の3桁も4桁も全部コロンがついて入力されることになるのでものすごく不便。
セルの書式設定で特定のセル範囲にのみそれを適用するという方法もあるが、それだと入力した物は時間として見なされず計算に使えない。
Private Sub Worksheet_Change(ByVal Target As Range)
を使って
If Len(Target.Value) < 4 Then t = "0" & Target.Value
Target.NumberFormatLocal = "h:mm;@"
Target..Formula = Left(t, 2) & ":" & Right(t, 2)
とする方法なら実用的。


「オートコレクト」を使って、コロンの代わりにピリオド二連打したらコロンと見なすとしたほうが簡単。

QEXCELでX軸が時間のグラフを作りたいのですが…

EXCELでX軸に時間、Y軸に温度というグラフを作りたいのですが、
計測時間が等間隔ではないのに折れ線グラフで作るとデータが等間隔で
表示されてしまいました。
いろいろ調べた結果、散布図で作成すればいいということが分かったのですが、
データのない余分な時間の分まで左右に表示されてしまい困っています。
(24時間分の表示がされているようです。)
軸の書式設定で何とかなるのかと思いましたが、グラフを作るのが初めてで
詳しいことが分かりません。
グラフの横軸は8:00~17:00までにしたいのですが、どなたかご存知の方、
教えていただけないでしょうか?

グラフにしたいデータは下記のものです。

時間 ( 温度 )
08:05 ( 17.6)
08:40 ( 24.5)
08:47 ( 38.0)
09:30 ( 75.0)
10:05 ( 70.0)
11:05 ( 68.0)
12:30 ( 90.0)
14:30 ( 50.0)
17:00 (164.0)

EXCELでX軸に時間、Y軸に温度というグラフを作りたいのですが、
計測時間が等間隔ではないのに折れ線グラフで作るとデータが等間隔で
表示されてしまいました。
いろいろ調べた結果、散布図で作成すればいいということが分かったのですが、
データのない余分な時間の分まで左右に表示されてしまい困っています。
(24時間分の表示がされているようです。)
軸の書式設定で何とかなるのかと思いましたが、グラフを作るのが初めてで
詳しいことが分かりません。
グラフの横軸は8:00~17:00までにしたいので...続きを読む

Aベストアンサー

> グラフの横軸は8:00~17:00までにしたいのですが、どなたかご存知の方、
教えていただけないでしょうか?

「軸の書式設定」の「軸のオプション」で、「最小値」と「最大値」を「固定値」に指定して、それぞれの値を入力します。
(Excel2010の設定図を添付します。)

なお、値は時間ですので「シリアル値」で入力する必要があります。

「エクセル グラフ 時間: エクセルの基本操作と小技」
http://excelwaza.seesaa.net/article/371155163.html

QIF関数の論理式に時刻を使いたいが・・・

 例えば宅配便の配達希望時間を羅列した表があって、「20:00以降は“夜間配達”」と戻したいとき、IF関数を使用すると思います。

 解説書によると、IFの式の条件には時刻の表示形式は使えないので「”」で囲み、「1」をかける。これで時刻表示がシリアル値になるため設定が早くなる。

とあるのですが、これだけでは意味がわからず質問させていただきました。下記の2点ほどご教示いただければ助かります。

(1)どうしてIFのの条件に時刻の表示形式は使えないのか?他の関数には使えるような気がするのですが。

(2)「”」で囲むのはなんとなくわかるとして、なぜ「1」をかけるのか。

シリアル値の知識(時刻の場合24時間を1で管理する)は一応あります。

 

Aベストアンサー

(1)IFの関数というより、数式に時刻を使用することができないのではないでしょうか?
これは想像するに、時刻表示には「:」(コロン)を使いますが関数では「:」は範囲を指定する時に使用しますよね(例:A1:A10)。ですから数式に時刻の「:」を認めると範囲指定なのか、時刻なのか、収拾がつかなくなってしまいそうです。
(2)””で囲んで1を掛ける、についてですが。
””で囲むと文字列として認識されますよね。しかし””の中が本来数値ならば1を掛けることによって、文字列ではなく数値として認識されることになります。そのために1を掛けて数式として成り立つようにするのです。

想像の部分もあり間違ってたらすいません。

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&Aを見た人がよく見るQ&A

人気Q&Aランキング