電子書籍の厳選無料作品が豊富!

エクセルの行の中で,空欄(0)以外の最も少ない文字数で,その文字列を返す関数を教えてください。
例えば以下のような場合です。

A1 北九州市 B1 札幌市 C1 さいたま市 D1    E1 呉市

A1~E1の行に上記のような文字があった場合,D1は空欄ですが,それ以外のもっとも少ない文字数は2文字の「呉市」です。
その「呉市」をF1に返したいのです。

=INDEX(A1:E1,MATCH(MIN(INDEX(COUNTIF(A1:E1,A1:E1),)),INDEX(COUNTIF(A1:E1,A1:E1),),0))

上の式を試したのですが,これだとうまくいきません。
よろしくお願いいたします。

A 回答 (2件)

文字数を求め、かつ


0を以外の最小値を求めるには、
SMALL関数とCOUNTIF関数を使います。

2行目で、
LEN関数で文字数を求め、
F2には
=SMALL(A2:E2,COUNTIF(A2:E2,0)+1)
で、0以外の最小文字数を求めています。
2番目を選ぶわけです。

あとは、INDEX & MATCH で求めます。
=INDEX(A1:E1,MATCH(F2,A2:E2,0))

この2つを結合するのは、ちょっと難しいのではないですかね。

いかがでしょう?
「エクセルで,文字数が一番少ない文字列を返」の回答画像2
    • good
    • 0
この回答へのお礼

Moryouyou 様

ありがとうございます。
うまくいきました。作業行(LEN関数)を設けて,2段階で求めるのですね。
助かりました。

お礼日時:2019/09/15 14:03

市役所などの自治体が行っているパソコン相談で相談したほうが良いと思います。

    • good
    • 0

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