1.動的管理の考え方を学ぼう。
前回、文字列の左側から指定した文字数を取得するLEFT関数について学びました。
LEFT関数のおさらい。
文字列の左端から、指定した文字数を抜き出す。
A1セルに入力されている文字列の左から2文字を抜き出すには、以下のように書きます。
=LEFT(A1,2)
LEFT関数は大変便利なんですが、「取得する文字数を指定する」必要があります。
取得する文字数が決まっている場合、意識する必要はありませんが、名字のように、
人によって文字数が異なる場合はちょっとコツがいります。
例えば以下のような文字列があるとします。
岸田 文雄
河野 太郎
岸 一郎
この文字列を見て、苗字は岸田さんと河野さんと岸さんと認識されますよね?
人間の脳が無意識に岸田、河野、岸という文字列のあとにある空白を「仕切り」と認識してくれているからですね。
しかし、普通のコンピューターには「空白文字が名字と名前の仕切りなんだからねっ!」と教えてあげないといけません。
そして、この、「 」(空白)も、コンピューターにとっては立派な「文字」として認識されています。
LEFT関数に、「 」の1文字前までをとてきてね、という条件を与えてあげると、
人間が指定しなくても勝手に「 」(空白)文字の場所を調べてくれます。
こうした、人間がすべての氏名に対して「岸田さんは2文字、河野さんは2文字、岸さんは1文字」と指定しなくても、
一定の条件を機械が指定してくれる制御を「動的」制御といいます。
※勝手に「動」いてくれる、くらいの認識でオッケーです。
具体的には、LEFT関数の引数に、「自動的に文字数を指定できる」関数を与えてあげます。
それがFIND関数です。
2.FIND関数の使い方。
FIND関数は、「指定した文字列から、任意の文字列の場所(出現する順番)を探してくる」関数です。
基本的には、1文字目から順に探してくれます、オプション的に、探し始める文字のスタート位置も指定できますが、今回は基礎編ですので割愛します。
例えば、岸田 文雄という文字列から「 」(空白)文字の出現場所を探すには、以下のように書きます。
=FIND(“ ”,”岸田 文雄”)
関数のお約束として、引数をカンマ(,)で、区切ってあげます。
また、関数の便利なところはエクセルのセルを指定してあげることができる点にあります。
A1セルに岸田 文雄が入力されている場合は以下のようになります。
=FIND(“ ”,A1)
更に、B1セルに空白文字が入力されている場合は、以下のようになります。
=FIND(B1,A1)
c1セルに、この式を入力すると、3と表示されます。
目には見えませんが、B1セルに「 」(空白)が入力されており、
C1セルに「空白文字が3番目に見つかったよ!」と表示されます。
A1セルが 岸 一郎 さんなら、C1セルには以下のように2が表示されます。
以上が、「空白文字の場所を動的に示す」例になります。
LEFT関数の引数である、「何文字目までを取ってきますか?」に対して、この方法で制御できそうですね?
次回は、FIND関数で文字数を指定するときにやりがちなミスについて解説したいと思います。