複数のセルの中で文字数が一番多い値を取得する(LEN,MAX,INDEX,MATCH)
複数のセルに入力された値の中で、文字数が一番多い値を検索し、文字数を取得したり値を取得することができます。ここでは Excel の関数である LEN 関数、 MAX 関数、 INDEX 関数、 MATCH 関数を組み合わせて、複数のセルの中で文字数が一番多い値を取得する方法について解説します。
(Last modified: )
一番多い文字数を取得する
最初にセル範囲の中のセルに入力された値の文字数を調べ、一番多い文字数を取得してみます。次のシートを見てください。
セル範囲 B3:B8 に入力された文字列の中で、最大の文字数を取得するため D3 セルに次のような数式を入力しました。
=MAX(LEN(B3:B8))
配列数式を利用してセル範囲 B3:B8 に入力された値の文字数をそれぞれ LEN
関数で取得し、 MAX
関数を使ってその中から最大の文字数を取得します。
配列数式として扱うため Enter ではなく Ctrl
+Shift
+Enter
キーを押してください。指定のセル範囲の中で、最大の文字数を取得することができました。
※ Excel 2019 以降であればスピル機能が利用できるため、単に Enter
キーを押すだけで構いません。
解説
今回はまず LEN(B3:B8)
で、引数に指定したセル範囲に含まれるセルの文字数を配列変数として取得します。実際どのように取得できるのかを確認してみます。
結果を表示するセル範囲 F3:F8 を選択したあとで、数式バーに次のように入力してください。
=LEN(B3:B8)
Ctrl
+Shift
+Enter
キーを押してください。 LEN
関数の引数に指定したセル範囲のそれぞれのセルに入力された値の文字数を取得します。
今回はこのようにして取得した文字数の配列変数を MAX
関数の引数に指定することで、最大の文字数を取得しています。
今回使用した関数の解説は下記を参照されてください。
一番文字数が多い値を取得する
先ほどは指定のセル範囲の中で最大文字数を取得しましたが、最大文字数の値を取得することもできます。セル範囲 B3:B8 に入力された文字列の中で、最大の文字数の値を取得するため D3 セルに次のような数式を入力しました。
=INDEX(B3:B8,MATCH(MAX(LEN(B3:B8)),LEN(B3:B8),0))
MATCH
関数を使って最大の文字数と一致するインデックスを取得します。このとき検索する文字列は配列数式を利用してセル範囲 B3:B8 の文字数をそれぞれ LEN
関数で取得し、 MAX
関数を使ってその中から最大の値を取得します。検索する対象も配列数式を利用してセル範囲 B3:B8 の文字数をそれぞれ LEN
関数で取得したものです。
そして INDEX
関数を使ってセル範囲 B3:B8 の中から指定したインデックスの文字列を取得します。
配列数式として扱うため Enter ではなく Ctrl
+Shift
+Enter
キーを押してください。指定のセル範囲の中で、最大の文字数の文字列を取得しました。
※ Excel 2019 以降であればスピル機能が利用できるため、単に Enter
キーを押すだけで構いません。
解説
たくさんの関数を組み合わせているので少し分かりにくいのですが、 1 列追加したあとでそれぞれのセルの値の文字数を LEN
関数を使って取得して表示してみると分かりやすいです。
この列がある場合、今回使用した数式は次のように記述することができます。
=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 )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。