- ベストアンサー
エクセルのユーザー定義で1/30秒をミリ秒に
初めて質問させていただきます。宜しくお願いいたします。 動画の経過時間には「0:04:43:13」のように表示されており、 最後の2桁;「13」はの単位は1/30秒です(左から、時間:分:秒:1/30秒)。 そこで質問はエクセルで、 例えば 1セルに「4:43:13」と入力したら、「283430」と出力できるよう設定できないでしょうか? ({4(時間)*60+43(秒)+1/30*13}*1000=283430(ミリ秒)) バージョンはエクセル2003です。 ご回答宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ANo.2です。 良く考えた処、TEXT関数を使う必要はありませんでした。 ですから、次の様な関数となります。 =IF(AND(LEN($A1)=LEN(SUBSTITUTE(ASC($A1),":",))+3,ISNUMBER(SUBSTITUTE(ASC($A1),":",".",3)+0)),ROUND(LEFT($A1,FIND("゛",SUBSTITUTE(ASC($A1),":","゛",3))-1)*86400+REPLACE($A1,1,FIND("゛",SUBSTITUTE(ASC($A1),":","゛",3)),)/30,3)*1000,"")
その他の回答 (2)
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、経過時間を表す元データがA1セルに入力されているものとしますと、次の様な関数で、ミリ秒単位で表した場合の数値に、変換する事が出来ます。 =IF(AND(LEN(A1)=LEN(SUBSTITUTE(ASC(A1),":",))+3,ISNUMBER(SUBSTITUTE(ASC(A1),":",".",3)+0)),ROUND(TEXT(LEFT(A1,FIND("゛",SUBSTITUTE(ASC(A1),":","゛",3))-1)+0,"[s]")+REPLACE(A1,1,FIND("゛",SUBSTITUTE(ASC(A1),":","゛",3)),)/30,3)*1000,"")
- MackyNo1
- ベストアンサー率53% (1521/2850)
ご質問内容をそのまま数式にすると以下のようになります。 セルの書式設定で表示形式を標準にしてください。 =(HOUR(A1)*60+MINUTE(A1)+SECOND(A1)/30)*1000 ただし30分の1秒の部分は端数が出るので、ミリ秒単位にすると「283433.333・・・」のような端数の出る数字になりますので必要に応じてROUND関数などで四捨五入してください。
お礼
早速のご返信ありがとうございます。 ただ、単位が1桁(ミリ秒)不足しておりますので、No.2の方をBAと致します。 とはいえ、わざわざ計算式を掲載していただきどうもありがとうございます。
お礼
大変助かりました。 また、二度のご回答誠にありがとうございます。 無事、hour~milisecondまでms単位で計算できました。 知らない関数が多々あるので、今後の参考にさせて頂きます。