- ベストアンサー
数字のみを抜き取る(エクセル)
エクセルで時間表示(文字列)から数字のみを抜き取りたいのですが、どうしたら良いのでしょうか。 【例】 123時間56分10秒 0時間1分3秒 12時間3分12秒 上記の様にそれぞれ時間と分と秒で桁が違います。 何がしたいかと言うと、この文字列から数字を抜き取って、分に変えたいのです。 いろいろ考えたのですが、全く分かりません。 宜しくお願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは #5 の comv です >1:23:56に1440をかけたら何故、分単位になるのですか。 これはシリアル値を理解して頂くのが早道ですね! EXCELの日付と時間はシリアル値で処理されています 例えば 2003/8/2 は シリアル値の 37,835 ですが これは 1900/1/1 を1とし 1日単位で1増えます (1900/1/1~2003/8/2 は 37,835日 てことです) てことで シリアル値(数値)の1=1日 確認 1.適当なセルに1と入力して 書式設定 表示形式 を日付にすると 1900/1/1 となります (オプション 1904年起算 のチェックがOFFが前提) 2.適当なセルに 2003/8/2 と入力して書式設定 表示形式を 数値や標準にすると 37835 と表示 されます。 前置きが長くなりましたが「ということは時間は?」 シリアル値(数値)の1=1日=24時間 なので 1時間=1日/24=数値の1/24=60分 1分は=1時間/60=数値の1/(24*60)=60秒 1秒は=1分/60=数値の1/(24*60*60) となり、それぞれの単位整数換算はその分母を 乗算すればOKなので 分 換算の時は 分単位換算(1分を値の1) =時間表記(シリアル値)*(24*60) となります ご質問の 1440は(24*60)のことです。
その他の回答 (6)
- imogasi
- ベストアンサー率27% (4737/17069)
#2です。 >この文字列は何百個とあり、 だからこそ、置換が威力を発揮すると思いました。 セル範囲を選択すると、全部のセルを対象に1度で置換が 行われます(置換のダイアログボックスに「全て置換」があります)。ただ時、分、秒の3回は必要ですが。 こう言うことでも、置換で対処できない点がありますでしょうか。勿論関数式でと考えなかったわけではありませんが、私は回答のパターンが多様化出来ないか、いつも心がけて回答しています。
お礼
imogasiさん、補足ありがとう御座います。 置換も使い方によっては大変便利な機能と思います。 今後その事を頭に入れて、いろいろ活用したいと思います。
- comv
- ベストアンサー率52% (322/612)
こんばんは >この文字列から数字を抜き取って、分に変えたい この意味が少々わからないのですが 例えばの例の時間を 秒も含めて[分]単位にすると 123時間56分10秒 は 7436.166667 0時間1分3秒 は 1.05 12時間3分12秒 は 723.2 となり小数点以下が秒を分単位にしたものです これでよろしければ =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"時間",":"),"分",":"),"秒",)*1440 秒(小数点以下)が不要であれば =INT(上記の式) として下さい
お礼
comvさん、まさしく私が探していた関数です。こんなのがあったとは。 非常に助かりました。一つ単純な質問をさせて下さい。 1:23:56に1440をかけたら何故、分単位になるのですか。 出来れば回答をお願いします。
- kojitti
- ベストアンサー率32% (449/1386)
A1に文字列があるとして以下の関数でいかがでしょうか。 =(LEFT(A1,SEARCH("時間",A1)-1)*3600+MID(A1,SEARCH("時間",A1)+2,SEARCH("分",A1)-SEARCH("時間",A1)-2)*60+MID(A1,SEARCH("分",A1)+1,LEN(A1)-SEARCH("分",A1)-1))/60
お礼
kojittiさん、教えていただいた式でなりました。 いろいろやり方はあるのですね。勉強になります。 本当にありがとう御座いました。
- eipu
- ベストアンサー率39% (25/64)
セルA1に 123時間56分10秒 と入っているとして セルB1(時間) =LEFT(A1,FIND("時",A1,1)-1 ) セルC1(分) =MID(A1,FIND("間",A1,1)+1,FIND("分",A1,1)-1-FIND("間",A1,1)) セルD1(秒) =MID(A1,FIND("分",A1,1)+1,FIND("秒",A1,1)-1-FIND("分",A1,1)) セルE1(分換算値) =B1*60+C1+D1/60 で求められます。
お礼
eipuさん、回答ありがとう御座いました。 教えていただいたやり方で、なんとか出来ました。 ありがとう御座いました。
- imogasi
- ベストアンサー率27% (4737/17069)
文字列時間の入った列を(別列でコピーして)範囲指定します。 編集ー置換で 時間を半角:に 分を半角:に 秒を「文字なし」(置換後のボックスでDELキーを押す) と3回置換します。 12時間34分56秒は12:34:56のようになります。 エクセルの標準時分秒の表現です。 後は=HOUR(A1)で12,=MINUTE(A1)で分34を、=SECOND(A1)で秒56を捉えられますので、分単位に計算してください。
お礼
回答ありがとう御座いました。 自分の質問の仕方が悪かったみたいです。この文字列は何百個とあり、 出来れば関数で行いたかったのです。中途半端な質問で申し訳ありません。
- 100Gold
- ベストアンサー率27% (284/1018)
まずは、区切り文字を「時間」にして、時間という文字のところでセルを分割します。 次に区切り文字を「分」にして、分のところでセルを分割します。 そうすれば、分けられます。
お礼
100goldさん、早速の回答ありがとう御座います。 しかし自分の知識不足ですが、今一分かりません。 すみませんが、もう少し詳しくお願い致します。 申し訳無いです。
お礼
comvさん、丁寧な説明ありがとう御座いました。 すごくためになりました。今までこれを知っていれば かなり作業が楽になっていたと思います。今後活用させて貰います。 本当にありがとう御座いました。