Excel(Microsoft365)2022/08新規追加された関数(2)文字列操作系の関数

Excel 一歩先へ

スポンサーリンク

Excel(Microsoft365)2022/08新規追加された関数(1)配列操作系の関数

前回は、ExcelのMicrosoft365バージョンで2022/08に新規追加された関数のうち、配列に関するものを紹介した。

今回はそれに続き、文字列操作に関する関数を扱う。こちらの方が、これまでの文字列操作関数(LEFT、RIGHT、MID、FIND、SEARCHなど)に足りなかったものを埋めてくれており、利用場面が多いのではないだろうか。

今回は、関数の引数については意外に複雑なので、公式サイトの説明をコピペした。実際のところ、任意で入れれば良い引数については、省略すれば良いケースが多いと思うが。

Excel FIND関数とSEARCH関数

Excel 文字列抽出の関数 LEFT・RIGHT・MID

TEXTSPLIT関数

指定した文字列を、区切り記号の出現ごとに、横(縦もある)方向に分割したスピルを実施する。

=TEXTSPLIT(text,col_delimiter,[row_delimiter],[ignore_empty], [match_mode], [pad_with])
text 分割するテキスト。必ず指定します。
col_delimiter 列間でテキストをスピルするポイントを示すテキスト。
row_delimiter テキストを下の行に書き込むポイントを示すテキスト。省略可能です。
ignore_empty FALSE を指定して、2 つの区切り記号が連続している場合に空のセルを作成します。 既定値は TRUE で、空のセルが作成されます。省略可能です。
match_mode テキストで区切り記号の一致を検索します。 既定では、大文字と小文字を区別する一致が行われます。省略可能です。
pad_with 結果を埋め込む値。既定値は #N/A です。

下図は、氏名を空白記号で横に区切り、「:」記号が出てきたら縦に行を改めているもの。余りのセルには「End」と埋め込んでいる。

TEXTBEFORE関数

指定した文字列に対し、区切り記号の前の文字を返す。

=TEXTBEFORE(text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found])
text 検索対象のテキスト。 ワイルドカード文字は使用できません。 必ず指定します。
delimiter 抽出した後のポイントをマークするテキスト。 必ず指定します。
instance_num テキストを抽出する区切り記号のインスタンス。  既定では、instance_num = 1 です。  負の数を指定すると、テキストの末尾から検索が開始します。 省略可能です。
match_mode

テキスト検索で大文字と小文字を区別するかどうかを指定します。 既定では大文字と小文字が区別されます。 省略可能です。 次のいずれかを入力します。

0:大文字と小文字を区別します。
1:大文字と小文字を区別しません。

match_end

テキストの末尾を区切り記号として扱います。 既定では、テキストは完全一致です。 省略可能です。 次のいずれかを入力します。

0:区切り記号をテキストの末尾に一致させないでください。
1:区切り記号をテキストの末尾に一致させてください。

if_not_found 一致するものが見つからない場合に返される値。 既定では、#N/A が返されます。 省略可能です。

下図は、空白文字の前にある名字を抜き出したもの。

従来の関数でやるなら、

=LEFT(A1,FIND(” “,A1)-1)

といった感じになる。

TEXTAFTER関数

指定した文字列に対し、区切り記号の後の文字を返す。

=TEXTAFTER(text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found])

引数についてはTEXTBEFORE関数と同じなので、後は省略。

下図は、空白文字の後にある名前を抜き出したもの。

従来の関数でやるなら、

=RIGHT(A1,LEN(A1)-FIND(” “,A1))

といった感じになる。これがとても難しい。

スポンサーリンク