• ベストアンサー

質問:エクセルで1つのセルに2つの時刻表示(再)

以前に質問し回答も頂いたのですが、数字を変えた場合の数式が分かりません。どなたか教えて下さい。 以前の質問は【A1セルに8時00分~17時30分というように表示させたい場合、ユーザー定義でh""時"mm"分""~"h"mm"分"として、セルに、8:00.17:30と入力すると8時00分~8時00分と表示されます。どこで間違っていますか?winXPエクセル2003です。】で、回答は【=TEXT(TIMEVALUE(LEFT(A1,FIND(".",A1)-1)),"h時mm分")&"~"&TEXT(TIMEVALUE(MID(A1,FIND(".",A1)+1,5)),"h時mm分")】でした。そこでG1に8:00.18:00とした場合、数式はどうなりますか?全くできませんでしたので、どなたか教えて下さい。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

=TEXT(TIMEVALUE(LEFT(G1,FIND(".",G1)-1)),"h時mm分")&"~"&TEXT(TIMEVALUE(MID(G1,FIND(".",G1)+1,5)),"h時mm分") のようにA1 の部分をG1 に変更するだけで良いと思います。 セルに入力する際 '8:00.17:30 のように頭にシングルクォートを付けてください

summer45
質問者

お礼

以前にも回答を頂き感謝しております。先頭に「'」を入力するとできました。ありがとうございました。

その他の回答 (3)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.4

2つの時刻を入力しようとして「8:00.17:30」と、ピリオドで繋いだ値を入れようとしたのが、間違いの元です。 エクセルでセルに「8:00.17:30」と入力すると、エクセルが勝手に解釈して「08:00:17」に変換され、しかも、表示が「00:17.2」となり、意図した入力が行えません。 意図した入力を行う為には「'8:00.17:30」と頭にアポストロフィを付けて「入力したのは文字列なので余計な変換はするな」と明示して入力するか、余計な変換が行われない形で入力しなければなりません。 G1セルに(半角で、先頭に「'」を足して)「'8:00.18:00」と入力した場合は、どこかのセルに =TEXT(TIMEVALUE(LEFT(G1,FIND(".",G1)-1)),"h時mm分")&"~"&TEXT(TIMEVALUE(MID(G1,FIND(".",G1)+1,5)),"h時mm分") と言う式を書けば、その式を書いたセルに「8時00分~18時00分」と表示されます。 入力時に先頭にアポストロフィ「'」を足すのが面倒な場合は、ピリオドで2つの時刻を繋げて書くのをやめ、勝手な変換と解釈を行わない別な文字を使いましょう。 例えば「8:00-18:00」とハイフンを使えば、勝手な変換と解釈を行わないので、先頭にアポストロフィ「'」は必要ありませんし、ピリオドより判り易いと思います。 「8:00-18:00」とハイフンに変えた場合、入力する式は以下のように変わります。 =TEXT(TIMEVALUE(LEFT(G1,FIND("-",G1)-1)),"h時mm分")&"~"&TEXT(TIMEVALUE(MID(G1,FIND("-",G1)+1,5)),"h時mm分") FIND関数で「.」を探しているのを「-」を探すように変えただけです。 なお =TEXT(TIMEVALUE(LEFT(G1,FIND(".",G1)-1)),"h時mm分")&"~"&TEXT(TIMEVALUE(MID(G1,FIND(".",G1)+1,5)),"h時mm分") の式も =TEXT(TIMEVALUE(LEFT(G1,FIND("-",G1)-1)),"h時mm分")&"~"&TEXT(TIMEVALUE(MID(G1,FIND("-",G1)+1,5)),"h時mm分") の式もどちらも、探しているのは「半角のピリオド」だったり「半角のハイフン」だったりするので、入力時に全角のピリオドや全角のハイフンで入力すると、うまく動かず #VALUE と表示されます。全角では入力しないで下さい。 入力するセルの場所をG1から別のセルに変える場合は、式中のすべての「G1」と書かれた部分を書き変えて下さい。

summer45
質問者

お礼

回答ありがとうございます。先頭に「'」を入れてませんでした。できました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

【=TEXT(TIMEVALUE(LEFT(G1,FIND(".",G1)-1)),"h時mm分")&"~"&TEXT(TIMEVALUE(MID(G1,FIND(".",G1)+1,5)),"h時mm分")】 単にA1をG1に修正だけですが... G1に入力する時にShift+7を先頭にして '8:00.18:00 と入力ではどうでしょうか?もしくはセルの表示形式を文字列にしてから入力でも同じです。 ※予め開始と終了時刻のセルを分けて入れたほうが楽だと思いますが... A1,B1にそれぞれ開始と終了なら、下記の式で表示できます。 =TEXT(A1,"h時mm分;;")&TEXT(B1,"~h時mm分;;")

summer45
質問者

お礼

回答ありがとうございます。先頭に「'」を入れてませんでした。できました。

noname#37676
noname#37676
回答No.2

ユーザー定義が間違っていると思います。 この設定では[8:00.18:00]と入力すると[8:00:18]つまり、「8時00分18秒」と認識されます。A列は「文字列」と設定すべきです。 また、回答は【・・・を見ると、A列に入力された値を別セルに数式を入れ、反映させているようですね。この「TEXT関数」は、数式内で表示形式を指定しているので、ユーザー設定は「標準」のままでOKです。

関連するQ&A

  • エクセルで1つのセルに2つの時刻表示

    A1セルに8時00分~17時30分というように表示させたい場合、ユーザー定義でh""時"mm"分""~"h"mm"分"として、セルに、8:00.17:30と入力すると8時00分~8時00分と表示されます。どこで間違っていますか?winXPエクセル2003です。

  • Excel 時間の表示形式 セルと数式バーの表示を同じにしたい。

    Excel2007です 時間の表示形式について教えてください。 150時間50分を150:50と入力するとセルには150:50と表示されますが 数式バーには、1900/1/6 6:50:00と表示されます。 数式バーにも150:50と表示させる方法を教えてください。 ちなみに 表示形式は、ユーザー定義で[h]:mmとなっています。

  • エクセルにて負の時間を0:00と表示する方法を教えてください

    タイトルのとおり、負の時間になった場合に0:00と表示したいのですが、なかなかうまくいきません。 エクセルにて勤務の遅刻・早退の表を作っています。8:30までにこなかった場合に超過時間を表示し(9:00にきた場合には0:30)、17:00より前に帰った場合に過不足時間を表示、という表を作っています。 http://oshiete1.watch.impress.co.jp/qa4183597.html この過去の質問を参考にやってみましたが・・・うまくいきません; 現在、A1にある元データの数字(例:815)を拾う為に、セルのA3に =IF(A1="","",TEXT(A1,"0!:00")) という数式が入れてあります。 A4のセルには =IF(ISBLANK(A3),"",IF(A3>TIMEVALUE("8:30"),A3-"8:30",0)) という数式が入れてあります。 A4のセルに負の時間であれば0:00と表示、という関数を入れれば出来そうなのですが、試行錯誤してもわかりませんでした。 ご教示いただけたらと思い投稿しました。 宜しくお願いします。

  • エクセル セルの表示どおりのテキストのコピー方法は?

    質問させてください。 そのセルには数式で返したテキストが表示されています。 そのテキストそのものをコピーしたいのですが、どうしても書式がコピーされてしまいます。 (例) 書式が「=A1+A2」とします。そのセルには答えの「15」が表示されているとします。この「15」を他のセルにコピー(表示)したいのですが、どうしても「=A1+A2」という数式のコピーになってしまいます。 どのようにすれば「15」という実際に見えているテキスト?だけをコピーすることができるのでしょうか。 ちなみに形式を指定して貼り付け、というもの試しましたができませんでした。 以上、よろしくお願いします。

  • エクセル

    今あるエクセルには6つのセルが結合されていて、6ケタ未満の数字が入っています。 その上に画像が貼りつけてあり、それぞれの数字の間に線が引いてあります。 そのエクセルを開ける際に重いので、画像を減らして、 MID(TEXT($A1,"??????"),COLUMN(A1),1)の式を挿入してそれぞれのセルを分けたいと思っています。 そうすると画像を貼るより、セルの一つ一つに数式を入れるほうが軽くなるのでしょうか。 今のエクセルは13MBほどの容量を使っていてとても重いです。 MIDの数式を利用する場合、最後のセルにそれぞれのセルの合計を返したいのですが、 どのような数式をいれればいいのでしょうか。 よろしくお願いいたします。

  • Excelにてマイナス表示されるセルを

    Excelシートにて、 例えば、『セルB1』に100という数字が入力されていて、 『セルB2』には何も入力されていないセルがあるとします。 『セルA1』にて数式『=B2-B1』としたとき、『セルA1』には『-100』と表示されます。 この場合、『セルA1』に、マイナスの場合は何も表示せず、0以上の数字が計算された場合だけ表示する方法はあるのでしょうか?

  • Excelのセルの数式を表示する方法

    今、セルA1に「10」、セルB1に「3」、セルA3には「A1*B1」という数式が入っています。 しかし画面上はセルA3は「30」という表示が出ます。 これをどんな数式が入っているのか人目で分かるように、数式がセルA3に表示されるようにするにはどんな設定をすればいいでしょうか?

  • エクセル 昭和を3と表示する式について

    エクセル2007です。 S28.6.12を3280612と表示するため調べたところ次の式でうまく表示できました。 =IF(COUNT(A1),FIND(TEXT(A1,"G"),"MTSH")&TEXT(A1,"RMMDD"),"") この式の中で判らないところがあります。 一つは、COUNT(A1)です。 COUNT関数は、数値データのセルを数える関数ですが、この数式でCOUNT(A1)(結果は1になります)を使うのかということです。 又次に判らないところは、 1の時に文字列が開始位置から何番目にあるかを返す、FIND関数で検索文字列をTEXT(A1,"G")とするのか、その中の"G"はなにを意味するのか さらに対象がFIND(TEXT(A1,"g"),"MTSH")でこの結果が3になるのか TEXT(A1,"RMMDD")の中のRは何を表すのか、そしてこの答えが"280612"なるのか 質問をしていて何か判らないことだらけで混乱してますが、お判りの方教えてください。

  • 24時間以上の表示

    いつもお世話になります。 Excelで勤務実働時間の変換作業を行ってます。 元のデータは"文字列"で表示されてて、"=TIMEVALUE(A1)"を使って 12:1 → 12:01 と表示させてます。 そこで質問ですが、"24:1"以上の場合ですが、"TIMEVALUE"を使うと当然"00:01"に表示されるので、 =IF(TEXT(LEFT(A1,2),"#,###")>="24",TIMEVALUE(A1)+"24:00" と数式を入れました。続いて、同じ様に"IF"を並べて">=96"、">=72"、">=48"と作ったのですが、今度は"100:00"以上の場合です。同じく =IF(TEXT(LEFT(A1,3),"#,###")>="120",TIMEVALUE(A1)+"120:00",IF(TEXT(LEFT(A1,3),"#,###")>="100",TIMEVALUE(A1)+"96:00"を追加してみたのですが、そうすると今度は "100:1"以上はうまく表示できたのですが"36:1"以上"99:59"いかが正しく表示されなくなりました。中身を確認すると"=TEXT"表示に問題があるようです。 長々と説明させていただきましたが、ようするに、3桁~6桁の文字列表示の時刻を"TIMEVALUE"に表示させ、それを元に関数を使ってまた別の計算式を作りたいのです。 解りにくい内容ですみませんがよろしくお願いします。

  • エクセル2002のセル参照での色分け表示

    エクセル2002でセルに数式を入力して、そのセルを編集状態にすると参照セルが色の付いた枠で表示されますが、その表示がセルの参照が33個になったら突然表示がされなくなってしまいます。エクセルの仕様を調べてみてもそのような記述は見当たりません。 入力した数式は  +a1+b1+c1+d1+e1+f1+g1+h1 のよう形で、複数のセルを単純に足し算するものです。よろしくお願いします。

専門家に質問してみよう