• 締切済み

エクセルのTEXT関数の処理についての質問

画像の通りなのですが、16時30分 16:30をTEXT関数で以下のように処理しています。 TEXT(A1,"HH:MM:SS") A1の時刻で時:分:秒で分けて表示するものと思います。 時:分、時、分:秒、秒などの取り出しは問題ないのですが、分だけMM指定で取り出すと30となって欲しいところが01となっています(最下段の赤字)。30を取り出す方法を教えて頂きたいのですが。よろしくお願いします。

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.7

>30を取り出す方法を教えて頂きたいのですが。 時刻のシリアル値は0以上1未満の小数になります。 1時間は1/24なので時間を除くには次の数式で良いでしょう。 =MOD(A1*24,1)/24 従って、分の値を文字列として取り出すには次の数式が分かり易いと思います。 =TEXT(MOD(A1*24,1)/24,"[mm]") 尚、時刻の表示形式で"[m]"または"[mm]"は60分以上のシリアル値に対しても分単位で表示しますので月を表す"m"または"mm"とは区別されます。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.6

[No.2お礼]へのコメント、 》 考えてみるとHHとかSSがくっついていることがそれを意味するんだ 》 と明示しているわけでなるほどなあとも思えてきました。 》 エクセルの仕様って理屈や類推で考えては失敗するのであり、どこま 》 でもエクセルの仕様に寄り添うしかないのだなと思いました。 仰るとおりだと思います。 下記は参考情報です。 Excelヘルプ[日付または時刻として数値の書式を設定する] http://support.office.com/ja-jp/article/%E6%97%A5%E4%BB%98%E3%81%BE%E3%81%9F%E3%81%AF%E6%99%82%E5%88%BB%E3%81%A8%E3%81%97%E3%81%A6%E6%95%B0%E5%80%A4%E3%81%AE%E6%9B%B8%E5%BC%8F%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B-418bd3fe-0577-47c8-8caa-b4d30c528309 の中に、次の記述が"日曽利と"(?)あります。 》 "H" または "hh" コードの直後、または "ss" コードの直前に "m" を使 》 用した場合、Excel では、月の代わりに分数が表示されます。 逆に言えば "m" を単独で使用した場合、分数でなく月が表示されるという次第。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

=MINUTE(A6)  または =TEXT(MINUTE(A6),"00") を使ってみては。 =TEXT(MINUTE(A6),"00")は、まどろこしいだけだが。先頭の、0を落とさないなどの効果はある。 エクセルの時刻は、セルの値的には、日付シリアル値の小数点以下部分で 時刻だけ入れた16:35:00のように時刻だけをセルに入力した場合、うまく行かないようだ。私のWEBなど調べた範囲では、判らない。 ーー 参考 VBAではFormat関数があり 下記を実行するとうまく行くようだ。 A6セルとA15セルに 16:36:08 17:36:08 とあるとき(数式バー部でこう見える。入力は16:36:08) Sub test01() MsgBox Format(Range("A6"), "nn") MsgBox Format(Range("A15"), "nn") End Sub TEXT関数で「”nn””」を指定したが、うまく行かないようだ。

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.4

「MM」だけだと「月(Month)」扱いとなります。 「16:30」は「1900年1月0日 16時30分」として扱われるので 「MM」を指定すると「1」が表示されます。 そもそも分だけ表示させたい時ってどんな時ですか? 時間も含めて全て分表記([mm])というならまだ分かりますが。

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

文字列です。

  • Mathmi
  • ベストアンサー率46% (54/115)
回答No.2

"MM"だとn分ではなくn月を取り出すという意味になってしまっています。(YYYY/MM/DD HH:MM:SSで順に年/月/日 時間:分:秒を取り出す) 時刻型のデータから分を取り出す場合、MINUTE関数を使います。 [=MINUTE(A1)]とするか、二桁の文字列に統一したいなら[=TEXT(MINUTE(A1),"00")]とすれば、上手く行くと思います。

skmsk1941093
質問者

お礼

回答ありがとうございます。MMが月を意味するということで思うような結果になっていなかったことがわかりました。ただ、それでは”HH:MM:SS"の時にはそれは分を表すことになるということがすっきりと腑に落ちない感じですが、考えてみるとHHとかSSがくっついていることがそれを意味するんだと明示しているわけでなるほどなあとも思えてきました。これって間違ったまま気づかない場合もあるんじゃないかと思いますが。エラーは出ませんし、深く細かいところでどっちでも大過なしというところで間違い続けている場合もあるんじゃないでしょうか。エクセルの仕様って理屈や類推で考えては失敗するのであり、どこまでもエクセルの仕様に寄り添うしかないのだなと思いました。

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

分だけ取り出す式は以下を使ってみて下さい。 =MINUTE(A1)

skmsk1941093
質問者

補足

回答ありがとうございます。この出力結果はどのようなものでしょうか。数値とか時刻とか...ですが、また私は数値の実体とセルの表示形式の関係もやや理解していません。例えばセルの表示形式を数値から文字列に変えたとき、その数値の表現が文字列化されるだけなのかということです。ここでの私の希望としては文字列なのですが。