OpenOfficeで営業2課、営業10課から数字だけを取り出すには

A2セル 営業2課
A3セル 営業14課
と入力されている表で、2、14の数字だけを抜き出したいときはありませんか?
こんなときは、MID関数とLEN関数を組み合わせると簡単にできます。

関数名:MID関数
書式:=MID(対象文字列またはセル番号;開始位置;文字数)
何ができる:対象文字列の、開始位置から指定文字数分の文字列を抜き出す
平たく書くと:=MID("営業2課";3;1) で2が抜き出せます。

開始位置は、上のいずれの場合でも3文字目からなので3と決め付けても問題ないです。
ただ、抜き出したい文字数は2文字の場合、1文字の場合があります。
ここで排除したい文字数に着目します。この場合、いずれの場合も排除したい文字数は、「営業」と、「課」の合計3文字です。
で、全体の文字数を取得して3を引けばどうなるでしょうか?

関数名:LEN関数
書式:=LEN(対象文字列またはセル番号)
何ができる:対象文字列の文字数を返す
平たく書くと:=LEN("営業2課") で4が返されます。

A2セルの場合、4-3 で 1になります。
A3セルの場合、5-3 で 2になります。
いずれも数字の部分の文字数と等しくなります。

と、いうことで、MID関数の文字数の部分を LEN(A2)-3 にします。

=MID(A2;3;LEN(A2)-3)
これでばっちりです。



文字列としての数字から数値としての数字へ

但し、ここで返される数字は、文字列としての数字です。数値ではありません。
だから、再計算の対象にはできません。
数値として扱いたいときは、VALUE関数で変換する必要があります。
=VALUE(MID(A2;3;LEN(A2)-3))

関数名:VALUE関数
書式:=VALUE(対象文字列またはセル番号)
何ができる:数字を再計算できるように変換する
平たく書くと:=VALUE("3") で3が数値のしての3になります。



 

数値として表示されていない文字列をIF関数で判別するとどうなるか

=IF(MID(A2;3;LEN(A2)-3)>3;"大";"小")
A2セルの値は2なのでもちろん3より小さいです。だから"小" がかえされるべきなのに、"大"が返されます。
こんな馬鹿なことにならないためには
=IF(VALUE(MID(A2;3;LEN(A2)-3))>3;"大";"小")
とします。


この記事をクリップ!