文字列関数の練習問題を10問用意しました。LEFT・RIGHT・MID での取り出し、FIND と組み合わせて「@」の前後を取り出す、LEN・SUBSTITUTE・TRIM、& でつなげる、TEXT でカンマ付きにするまで、文字の整理でよく使う形を順番に練習できます。
問題と解答が入った練習用のファイルを無料でダウンロードできます。答えはすべて実際の Excel で計算して確かめています。
練習用ファイルの使い方
- 練習用のファイルをダウンロードして開き、「問題」シートを表示します。
- 黄色のセル(E4:E13)に、問題に合う式を入れます。C列(入力1)・D列(入力2)の文字を使います。右の列にヒントがあります。
- 「解答」シートで、答えと式を確かめます。

問題の一覧
| No. | 問題 | 入力1 | 入力2 |
|---|---|---|---|
| 1 | 商品コード(C列)の左から3文字を取り出してください。 | A01-1055 | |
| 2 | 商品コードの右から4文字を取り出してください。 | A01-1055 | |
| 3 | 電話番号(C列)の5文字目から4文字を取り出してください。 | 090-1234-5678 | |
| 4 | メールアドレス(C列)の「@」より前を取り出してください。 | yamada@example.com | |
| 5 | メールアドレスの「@」より後ろを取り出してください。 | yamada@example.com | |
| 6 | 住所(C列)の文字数を数えてください。 | 東京都千代田区丸の内 | |
| 7 | 電話番号(C列)のハイフンを消してください。 | 090-1234-5678 | |
| 8 | 氏名(C列)の前後の余分なスペースを消し、間のスペースを1つにしてください。 | 山田 太郎 | |
| 9 | 姓(C列)と名(D列)を、間に半角スペースを入れてつなげてください。 | 山田 | 太郎 |
| 10 | 金額(C列)を「1,234,567円」のようにカンマと「円」を付けた文字にしてください。 | 1234567 |
問題8の入力1は、前後と間に余分なスペースが入った「 山田 太郎 」です。まずは自分で解いてみてから、下の解答と解説を見てください。
問題1の解答と解説
問題:商品コード(C列)の左から3文字を取り出してください。
=LEFT(C4,3)
答え:A01 ヒント:LEFT(文字列,文字数) で左から取り出します。
LEFT(C4,3) で「A01-1055」の左から3文字の「A01」です(LEFT関数)。
問題2の解答と解説
問題:商品コードの右から4文字を取り出してください。
=RIGHT(C5,4)
答え:1055 ヒント:RIGHT(文字列,文字数) で右から取り出します。
RIGHT(C5,4) で右から4文字の「1055」です(RIGHT関数)。
問題3の解答と解説
問題:電話番号(C列)の5文字目から4文字を取り出してください。
=MID(C6,5,4)
答え:1234 ヒント:MID(文字列,開始位置,文字数) の順です。
「090-1234-5678」の5文字目は「1」で、そこから4文字が「1234」です。ハイフンも1文字として数えます(MID関数)。
問題4の解答と解説
問題:メールアドレス(C列)の「@」より前を取り出してください。
=LEFT(C7,FIND("@",C7)-1)
答え:yamada ヒント:FIND で「@」の位置を調べ、1を引いた文字数を LEFT で取り出します。
FIND(“@”,C7) は「@」の位置(7)を返します。その1つ手前までの6文字を LEFT で取り出すと「yamada」です。試したところ、-1 を付けないと「yamada@」と @ まで入りました。また、@ が無い文字に使うと FIND が見つけられず #VALUE! になります(FIND関数)。

問題5の解答と解説
問題:メールアドレスの「@」より後ろを取り出してください。
=MID(C8,FIND("@",C8)+1,LEN(C8))
答え:example.com ヒント:「@」の次の位置から、残りを MID で取り出します。文字数は LEN で十分な大きさにします。
「@」の位置+1(8文字目)から取り出します。文字数は残りが全部入るように LEN(C8) にしています。結果は「example.com」です。
問題6の解答と解説
問題:住所(C列)の文字数を数えてください。
=LEN(C9)
答え:10 ヒント:LEN は全角も半角も1文字として数えます。
「東京都千代田区丸の内」は10文字です。LEN は全角も半角も1文字と数えます。試したところ、バイト数を数える LENB では 20 になりました(LEN・LENB関数)。
問題7の解答と解説
問題:電話番号(C列)のハイフンを消してください。
=SUBSTITUTE(C10,"-","")
答え:09012345678 ヒント:SUBSTITUTE(文字列,前の文字,後の文字) で、”” に置き換えると消えます。
ハイフン(-)を “” (何も無い文字)に置き換えると消えて「09012345678」になります。試したところ、全角のハイフン(-)は半角の “-” では消えませんでした(SUBSTITUTE関数)。
問題8の解答と解説
問題:氏名(C列)の前後の余分なスペースを消し、間のスペースを1つにしてください。
=TRIM(C11)
答え:山田 太郎 ヒント:TRIM は前後のスペースを消し、間に続いたスペースを1つにします。
前後のスペースが消え、間の3つのスペースが1つになって「山田 太郎」になりました(TRIM関数)。
問題9の解答と解説
問題:姓(C列)と名(D列)を、間に半角スペースを入れてつなげてください。
=C12&" "&D12
答え:山田 太郎 ヒント:& で文字をつなげます。スペースも ” ” で囲んで入れます。
C12&” “&D12 で「山田 太郎」です。試したところ、=C12&D12 とスペースを入れないと「山田太郎」になりました(姓と名を結合する方法)。
問題10の解答と解説
問題:金額(C列)を「1,234,567円」のようにカンマと「円」を付けた文字にしてください。
=TEXT(C13,"#,##0")&"円"
答え:1,234,567円 ヒント:TEXT(数値,”#,##0″) でカンマ付きの文字にしてから「円」をつなげます。
TEXT(C13,”#,##0″) で「1,234,567」というカンマ付きの文字にしてから「円」をつなげます。試したところ、=C13&”円” だけではカンマが付かず「1234567円」になりました(TEXT関数)。

よくある間違い

実際に試した、よくある間違いの例です。上(問題4)は -1 を付けなかったため「yamada@」になり、下(問題9)はスペースを入れなかったため「山田太郎」になりました。
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 区切りの文字まで入ってしまう | FIND の位置から 1 を引いていない | LEFT(C7,FIND(“@”,C7)-1) にする(問題4)。 |
| #VALUE! になる | 探す文字(@ など)が無い | IFERROR で表示を決める(IFERROR関数)。 |
| ハイフンが消えない | 全角と半角のハイフンが混ざっている | 全角の “-” も SUBSTITUTE で消す(問題7)。 |
| カンマが付かない | & で数値をそのままつなげた | TEXT(数値,”#,##0″) で文字にしてからつなげる(問題10)。 |
よくある質問
「@」より前を、もっと簡単に取り出せますか?
Microsoft 365 なら TEXTBEFORE 関数が使えます。=TEXTBEFORE(C7,"@") で「yamada」、=TEXTAFTER(C8,"@") で「example.com」になります(TEXTBEFORE・TEXTAFTER関数)。
たくさんの文字をまとめてつなげたいときは?
TEXTJOIN 関数を使うと、範囲の文字を区切り文字を入れてまとめてつなげられます(文字列を結合する方法)。
ほかの関数の練習問題もありますか?
IF関数・COUNTIF・SUMIF関数・日付関数・VLOOKUP関数・XLOOKUP関数の練習問題があります。

コメント