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) |
引数
数値: 分割したい文またはテキスト文字列。 |
この数式の仕組み
例としてセル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つの引数があり、最初の引数は論理式でなければなりません。最初の引数が「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 アシスタント: 次の要素に基づいてデータ分析を革新:インテリジェント実行 | コード生成 | カスタム数式の作成 | データの分析とチャートの生成 | Kutools 拡張機能の呼び出し… |
人気の機能:重複の検索、ハイライト、または識別 | 空白行の削除 | データを失うことなく列やセルを結合 | 数式なしで丸める ... | |
スーパーフィルター:複数条件 | 複数値 | 複数シート間 | ファジーマッチ... | |
高度なドロップダウンリスト:簡単なドロップダウンリスト | 依存するドロップダウンリスト | 複数選択可能なドロップダウンリスト... | |
列マネージャー:特定の数の列を追加 | 列の移動 | 非表示列の可視性ステータスの切り替え | 列を比較して同じおよび異なるセルを選択 ... | |
注目機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブックとシートの管理 | オートテキスト ライブラリ (Auto Text) | 日付ピッカー | データの統合 | セルの暗号化/復号化 | リストによるメール送信 | スーパーフィルター | 特殊フィルタ(太字/斜体/取り消し線のフィルタリング...) ... | |
トップ15のツールセット: 12 のテキストツール(テキストの追加、特定の文字を削除 ...) | 50 以上 のグラフタイプ(ガントチャート ...) | 40 以上の実用的な数式(誕生日に基づいて年齢を計算 ...) | 19 の挿入ツール(QRコードの挿入、パスからの画像挿入 ...) | 12 の変換ツール(単語に変換する、通貨変換 ...) | 7 つの結合と分割ツール(高度な行のマージ、Excelセルの分割 ...) | ... さらに |
Kutools for Excelは300以上の機能を誇り、必要なものがワンクリックで手に入ります...
Office Tab - Microsoft Office(Excel含む)でのタブ形式の閲覧と編集を有効にする
- 数十の開いている文書間を1秒で切り替え!
- 毎日数百回のマウスクリックを減らし、マウス手にさよならを告げる。
- 複数の文書を閲覧・編集する際に、生産性が50%向上します。
- Chrome、Edge、Firefoxのように、Office(Excel含む)に効率的なタブをもたらします。