複数のセルの中で文字数が一番多い値を取得する(LEN,MAX,INDEX,MATCH)

複数のセルに入力された値の中で、文字数が一番多い値を検索し、文字数を取得したり値を取得することができます。ここでは Excel の関数である LEN 関数、 MAX 関数、 INDEX 関数、 MATCH 関数を組み合わせて、複数のセルの中で文字数が一番多い値を取得する方法について解説します。

(2021 年 02 月 26 日公開 / 2022 年 02 月 26 日更新)

一番多い文字数を取得する

最初にセル範囲の中のセルに入力された値の文字数を調べ、一番多い文字数を取得してみます。次のシートを見てください。

一番多い文字数を取得する(1)

セル範囲 B3:B8 に入力された文字列の中で、最大の文字数を取得するため D3 セルに次のような数式を入力しました。

=MAX(LEN(B3:B8))

一番多い文字数を取得する(2)

配列数式を利用してセル範囲 B3:B8 に入力された値の文字数をそれぞれ LEN 関数で取得し、 MAX 関数を使ってその中から最大の文字数を取得します。

配列数式として扱うため Enter ではなく Ctrl+Shift+Enter キーを押してください。指定のセル範囲の中で、最大の文字数を取得することができました。

一番多い文字数を取得する(3)

※ Excel 2019 以降であればスピル機能が利用できるため、単に Enter キーを押すだけで構いません。

解説

今回はまず LEN(B3:B8) で、引数に指定したセル範囲に含まれるセルの文字数を配列変数として取得します。実際どのように取得できるのかを確認してみます。

結果を表示するセル範囲 F3:F8 を選択したあとで、数式バーに次のように入力してください。

=LEN(B3:B8)

一番多い文字数を取得する(4)

Ctrl+Shift+Enter キーを押してください。 LEN 関数の引数に指定したセル範囲のそれぞれのセルに入力された値の文字数を取得します。

一番多い文字数を取得する(5)

今回はこのようにして取得した文字数の配列変数を MAX 関数の引数に指定することで、最大の文字数を取得しています。

今回使用した関数の解説は下記を参照されてください。

一番文字数が多い値を取得する

先ほどは指定のセル範囲の中で最大文字数を取得しましたが、最大文字数の値を取得することもできます。セル範囲 B3:B8 に入力された文字列の中で、最大の文字数の値を取得するため D3 セルに次のような数式を入力しました。

=INDEX(B3:B8,MATCH(MAX(LEN(B3:B8)),LEN(B3:B8),0))

一番文字数が多い値を取得する(1)

MATCH 関数を使って最大の文字数と一致するインデックスを取得します。このとき検索する文字列は配列数式を利用してセル範囲 B3:B8 の文字数をそれぞれ LEN 関数で取得し、 MAX 関数を使ってその中から最大の値を取得します。検索する対象も配列数式を利用してセル範囲 B3:B8 の文字数をそれぞれ LEN 関数で取得したものです。

そして INDEX 関数を使ってセル範囲 B3:B8 の中から指定したインデックスの文字列を取得します。

配列数式として扱うため Enter ではなく Ctrl+Shift+Enter キーを押してください。指定のセル範囲の中で、最大の文字数の文字列を取得しました。

一番文字数が多い値を取得する(2)

※ Excel 2019 以降であればスピル機能が利用できるため、単に Enter キーを押すだけで構いません。

解説

たくさんの関数を組み合わせているので少し分かりにくいのですが、 1 列追加したあとでそれぞれのセルの値の文字数を LEN 関数を使って取得して表示してみると分かりやすいです。

一番文字数が多い値を取得する(3)

この列がある場合、今回使用した数式は次のように記述することができます。

=INDEX(B3:B8,MATCH(MAX(C3:C8),C3:C8,0))

最初に MAX(C3:C8) で C3:C8 セルの中の最大の数値を取得します。次に MATCH 関数を使って C3:C8 セルの中で最大の数値と一致するインデックスを取得します。最後に INDEX 関数でセル範囲 B3:B8 の中で先ほど取得したインデックスに該当する値を取得します。

実際には C3:C8 の値は存在しないため、代わりに LEN(B3:B8) を使って同じように各セルの文字数の配列を取得しています。

今回使用した関数の解説は下記を参照されてください。

-- --

Excel の関数である LEN 関数、 MAX 関数、 INDEX 関数、 MATCH 関数を組み合わせて、複数のセルの中で文字数が一番多い値を取得する方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。