• ベストアンサー

スプレッドシートで日時から時刻のみを取得

Googleスプレッドシートで A1にJuly 23, 2015 at 09:35PMという値が入力されており、 B1に09のように、時刻のみを抽出にするにはどうしたいいでしょう? 関数だけでできますか?

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

  • ベストアンサー
  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.1

邪道かも知れませんが、「:」がこのデータ上、「時刻」の直後にあり、「時刻」が2桁である、という前提ですが、 =MID(A1, FIND(":", A1) - 2, 2) で、「09」を抜き出せます。 これは、「:」の位置を「FIND」で調べて、その2文字前から、2文字を抜き出しています。 本来のおやりになりたいこととは、意味合いが違いますが、結果は出ています。

その他の回答 (3)

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

>A1にJuly 23, 2015 at 09:35PMという値が入力されており、 見慣れない表示タイプですね。 A1の値は文字列でしょうか? それとも、表示形式のオプションで日時のシリアル値をそのように表示されているのでしょうか? A1の値が日時のシリアル値の場合は次のようにすれば09のみ切り出せます。 B1=LEFT(TEXT(A1,"hh:mm AM/PM"),2) 文字列の場合はB1セルへ文字列として切り出せば良いでしょうか? 文字列の中の特定の文字列を切り出すにはMID関数で範囲を指定すれば良いでしょう。 B1=MID(A1,17,2) A1の文字列の17文字目から2文字を取り出す。 仮にA1セルに8月1日の9時20分を"August 1,2015 at 09:20"と入力されると次のようになり、何文字目から2文字を取り出すか変更する必要があります。 それを必ず"at"と言う文字が日付と時刻の間に含まれるのであればFIND関数に置き換えれば月の名前が変っても追従できるように出来ます。 B1=MID(A1,FIND("at",A1)+3,2) また、atと09の間に空白が入らない場合や2個以上の空白があるときは切り出す位置と文字数も追従させる必要があります。 B1=MID(A1,FIND("at",A1)+2,FIND(":",A1)-FIND("at",A1)-2) この時、atと09間の空白文字があるとき目的通りの文字列ではないので、TRIM関数で空白文字を削除します。 B1=TRIM(MID(A1,FIND("at",A1)+2,FIND(":",A1)-FIND("at",A1)-2)) 切り出した文字列を数値化するにはVALUE関数を使うか*1や+0で値の変化が無い演算をすれば良いでしょう。

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

時刻の桁数を固定にしているんだから =LEFT(RIGHT(A1,7),2) でいいでしょう。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

=left(REGEXREPLACE(A1,".*at ",""),2) とかで。 #参考 >時刻のみを抽出 09PMですから、時刻のみ取り出すと21ですけど。

関連するQ&A