Excel 数式:文を単語に分割
Excel には「区切り文字による列の分割」機能があり、これを使えば区切り文字に基づいて文を個々のセルに簡単に分割できます。ただし、状況によっては数式を使ってこの処理を行いたいこともあるでしょう。本チュートリアルでは、そうしたケースで活用できる配列数式をご紹介します。
汎用的な数式:
| =MID(「 」&$TXT&「 」, SMALL(IF(ISERROR(SEARCH(MID(「 」&$TXT&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99)+1), COLUMN(A1)), SMALL(IF(ISERROR(SEARCH(MID(「 」&$TXT&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99)), COLUMN(A1)+1)-SMALL(IF(ISERROR(SEARCH(MID(「 」&$TXT&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99)), COLUMN(A1))-1) |
引数
| Number: the sentence or text string you want to split to words in separated cells. |
この数式の動作原理
セル B3 を例に挙げて、以下の数式をご利用いただけます。
| =MID(「 」&$B3&「 」, SMALL(IF(ISERROR(SEARCH(MID(「 」&$B3&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99)+1), COLUMN(A1)), SMALL(IF(ISERROR(SEARCH(MID(「 」&$B3&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99)), COLUMN(A1)+1)-SMALL(IF(ISERROR(SEARCH(MID(「 」&$B3&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99)), COLUMN(A1))-1) |
Shift + Ctrl + Enterキーを押して最初の単語を抽出し、その後、すべての単語が抽出されるまでフィルハンドルを右にドラッグしてください。

解説
MID 関数は、指定された開始位置と文字数に基づいて、テキスト文字列から部分文字列を抽出します。
ROW 関数は行番号を返します。ここでは、1 から99 までの配列が返されるように設定されています。
その後、数式 MID(「 」&$B2&「 」, ROW($1:$99), 1)
=MID(" Class A Grade 3 Lily Core", {1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; 99}, 1)
={「 」;「C」;「l」;「a」;「s」;「s」;「 」;「A」;「 」;「G」;「r」;「a」;「d」;「e」;「 」;"3";「 」;「L」;「i」;「l」;「y」;「 」;「C」;「o」;「r」;「e」;「 」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;
「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」;「」}
SEARCH 関数は、指定されたテキスト文字列内から特定の文字やテキストの位置を返します。見つからない場合は、エラー値を返します。
数式 SEARCH(MID(「 」&$B3&「 」, ROW($1:$99), 1), 「 」)
={1;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;1;#VALUE!;1;#VALUE!;#VALUE!;
#VALUE!;#VALUE!;#VALUE!;1;#VALUE!;1;#VALUE!;#VALUE!;#VALUE!;#VALUE!;1;
#VALUE!;#VALUE!;#VALUE!;#VALUE!;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;
1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;
1;1;1;1;1}
ISERROR 関数は、値がエラーかどうかを判定し、TRUE を返します。
その後、数式 ISERROR(SEARCH(MID(「 」&$B3&「 」, ROW($1:$99), 1), 「 」))
={FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;
TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;
FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;
FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;
FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;
FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;
FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;
FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;
FALSE}
IF 関数は特定の条件をテストする関数です。この関数には3 つの引数があり、第1 引数には論理式を指定する必要があります。第1 引数が「TRUE」の場合は第2 引数の値が表示され、「FALSE」の場合は第3 引数の値が表示されます。
数式 IF(ISERROR(SEARCH(MID(「 」&$B3&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99))
={1;「」;「」;「」;「」;「」;7;「」;9;「」;「」;「」;「」;「」;15;「」;17;「」;「」;「」;「」;22;「」;「」;「」;「」;27;28;29;30;31;32;33;34;35;
36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;
64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;
93;94;95;96;97;98;99}
SMALL 関数は、配列内の最小値を返します。
COLUMN 関数は、数式が入力されているセルの列番号、または指定した参照の列番号を返します。
その後
SMALL(IF(ISERROR(SEARCH(MID(「 」&$B3&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99)), COLUMN(A1))
={1}
その後、数式
SMALL(IF(ISERROR(SEARCH(MID(「 」&$B3&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99)), COLUMN(A1)+1)- SMALL(IF(ISERROR(SEARCH(MID(「 」&$B3&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99)), COLUMN(A1))
={7-1}
={6}
その後、数式
MID(「 」&$B3&「 」, SMALL(IF(ISERROR(SEARCH(MID(「 」&$B3&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99)+1), COLUMN(A1)), SMALL(IF(ISERROR(SEARCH(MID(「 」&$B3&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99)), COLUMN(A1)+1)-SMALL(IF(ISERROR(SEARCH(MID(「 」&$B3&「 」, ROW($1:$99), 1), 「 」)), 「」, ROW($1:$99)), COLUMN(A1))-1)
=MID(「 」&$B3&「 」,2,6-1)
={Class}
サンプルファイル
関連する数式
- 指定文字まで右から抽出
ここでは、指定されたテキストの右端から特定の文字までを抽出するための数式をご紹介します。 - テキストを N 語にトリミング
ここでは、テキスト文字列の先頭から N 語を抽出する数式をご紹介します。 - 先頭にゼロを追加して長さを固定
このチュートリアルでは、テキストの長さをそろえるために、先頭にゼロを追加する数式をご紹介します。 - ドルとセントを分割
Excel の数式を使って、ドルとセントを2 つの列に簡単に分割する方法をご紹介します。
関連する関数
- MID 関数
セル内の文字列から、指定した位置と文字数に基づいてテキストの一部を抽出します。 - COLUMN 関数
数式が配置されている列の番号、または指定された参照の列番号を返します。 - ROW 関数
現在の行番号を取得します。 - SEARCH 関数
指定されたテキスト文字列内で、特定の文字や部分文字列がどこにあるかを検索します。 - IF 関数
特定の条件を判定します。
最高の Office 生産性ツール
Kutools for Excel - あなたを群衆の中から際立たせます
| 🤖 | KUTOOLS AI アシスト:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気機能:検索・ハイライト・重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー VLookup:複数条件 | 複数値 | 複数シート間 | ファジーマッチ... | |
| 高度なドロップダウンリスト:簡単なドロップダウンリスト | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト... | |
| 列マネージャー:指定した数の列を追加 | 列の移動 | 非表示列の表示状態を切り替え |列を比較して同じ/異なるセルを選択... | |
| 注目の機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブックとシートマネージャー|リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/イタリック/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除...)| 50+チャートタイプ(ガントチャート...)| 40+実用的な数式(誕生日に基づいて年齢を計算します...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入...)| 12 変換ツール(単語に変換する、為替レートの変換...)| 7 結合と分割ツール(高度な行のマージ、Excel セルを分割...)|。。。他にも多数 |
Kutools for Excel は300 以上の機能を備えており、必要な機能が常にワンクリックで利用できます…
Office Tab - Microsoft Office(Excel を含む)でタブを使った閲覧・編集を可能にします
- 数十もの開いているドキュメントを1 秒で切り替えられます!
- 毎日何百回ものマウスクリックを削減して、マウス手の悩みともさよならしましょう。
- 複数のドキュメントを閲覧・編集する際の生産性が50%も向上します。
- Office(Excel を含む)に、Chrome、Edge、Firefox のような効率的なタブ機能をもたらします。
サンプルファイルをダウンロードするにはクリックしてください