プロが教えるわが家の防犯対策術!

あるexcelの文字列関数の練習問題として、住所内の都道府県名のみを抽出して表示させる問題がありました。
式はいろいろあると思いますが、いくつかある答えの中のどんな住所でも都道府県名を抽出できる数式として、こんな数式がありました。
次の通りです。

答え
「=IF(OR(MID(A1,3,1)={"都","道","府","県"}),LEFT(A1,3),LEFT(A1,4))」



結果
セルA1「(北海道札幌市X-X-X)」であれば「北海道」を表示


ここで気になったのがOR関数内の{}(中括弧)の意味合いです。
OR関数のヘルプには書いてませんでしたし、()で代用もできない、配列定数・数式のようにも見えません。
自分でも色々調べてみたのですが、結局よくわかりませんでした。


一番キレイに見えた数式でしたので使いこなせればと思うのですが、{}の意味合いだけいまいちわからず。特に()で代用できない理由がよく分からずすっきりしませんでしたので、教えていただければ助かります。

ついでといってはなんですが、もっとキレイ?な式がありましたら、教えていただけると参考になります。

よろしくお願いいたします。

A 回答 (2件)

キーワードは「配列数式」です。

    • good
    • 0

こんばんは!


お示しの数式の意味は
普通に書くと

=IF(OR(MID(A1,3,1)="都",MID(A1,3,1)="道",MID(A1,3,1)="府",MID(A1,3,1)="県"),LEFT(A1,3),LEFT(A1,4))

となります。
{ }を使うと数式内の
MID(A1,3,1)=
部分が省略できて少しでも数式が短くなると思います。

ところでお示しの数式の逆手を取って・・・

最初から4文字目が「県」の場合は左4文字を!
それ以外は左3文字を!
という方法でも同じ結果が得られるような気がします。
すなわち

=IF(MID(A1,4,1)="県",LEFT(A1,4),LEFT(A1,3))

といった数式にしてみてはどうでしょうか?

仮に ○○県県×市・・・のような地名がある場合はちゃんと表示されません。

※ 検証していませんので、間違いがあったらごめんなさいね。m(_ _)m
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています