プロが教える店舗&オフィスのセキュリティ対策術

Excelで9秒50や11秒25などの数字が並んでいる中で"秒"の前の数字だけを取り出すことはできますか?
mid(a1,find("秒",a1)-2,2)のような式では11などの2桁の場合は取り出せても9などの1桁の場合にはエラーが出てしまって取り出せません。
どうすれば良いでしょうか?

A 回答 (4件)

先頭から取るならmid関数じゃなくてleft関数で文字数だけ指定すれば十分でしょう。


=left(文字列, find("秒", 文字列&"秒")-1)

9.5秒とか11.25秒って正しく書けば正確な値が取り出せるのに、変な書き方をするのは体育会なのかな。
    • good
    • 0

何で開始位置の方を式でだすのかな?開始は1文字目で固定なんじゃないの?出すなら文字数の方でしょ?



=MID(A1,1,FIND("秒",A1,1)-1)

場合分けも必要ありません。1文字目から秒の1つ前まで抜き出すという式です。
    • good
    • 0

やり方は行く通りもありますが、自分ならこうするかな...。



その値は数値(シリアル値)でしょうか、文字列でしょうか。文字列っぽいですね。
文字列なら簡単。
SUBSTITUTE関数で”秒”をピリオド(小数点の文字)”.”に置き換え数値に見立てて、INT関数で小数点以下を切り捨てれば良い。
 =INT(SUBSTITUTE(A1,"秒","."))
こんな感じ。

なお、SUBSTITUTE関数は文字列を返しますが、
Excelは数値と認識できる文字列は数値として計算してくれます。
    • good
    • 0

出来ますよ。


=IF(MID(a1,2,1)="秒",MID(a1,1,1),MID(a1,1,2))
こんな感じです。

a1セルの2文字目から1文字分を取得し、それが「秒」であった場合、
1文字目から1文字分を取得
そうでなければ1文字目から2文字分を取得

というやりかたになります
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!