ワークシート上でテキストを分割したい。
ワークシート関数でやれないことはないけど何か直観的じゃない。
そう思ったのでちょい使い用のユーザー定義関数を作ったので備忘録がてら書き残しておきます。
何の話?
aaaa,bbbbbb,cccc
↑こういう文字列に対して「カンマで区切った2番目の要素を抜き出してくれ!」を実現したかった。
Excelつながりで言うとVBAのSplit関数的なことをワークシート上で直観的に(個人的感想です)やりたい。
Excelのユーザー定義関数を作成した
というわけでVBAで以下のユーザー定義関数を作成しました。
Public Function FUNC_SPLIT(文字列, Optional 区切り文字 = ",", Optional インデックス = 1) FUNC_SPLIT = Split(文字列, 区切り文字)(インデックス - 1) End Function
中身はたったの1行です。
インデックスは1から始まります。
区切り文字のデフォルトはカンマ、インデックスのデフォルトは1番目です。
簡単な使い方の例
1番目の要素を抜き出す
=FUNC_SPLIT("aaaa,bbbbbb,cccc")
↓
aaaa
2番目の要素を抜き出す
=FUNC_SPLIT("aaaa,bbbbbb,cccc",,2)
↓
bbbbbb
注意点
調子に乗ってたくさんのセルに使うと重いです。
ユーザー定義関数の宿命です。
基本使い捨てがいいかもしれません
また、ただでさえ遅いユーザー定義関数なのでエラー処理を組み込んでいません。
使われる場合はその辺りを理解してご利用ください。
終わりに
「カンマで区切った2番目の要素を抜き出してくれ!」を実現するユーザー定義関数の紹介でした。
ちなみにカンマ以外の区切り文字でも可能です。
簡単な内容ですが、備忘録ということであしからず。
というわけで、ここまでお読み頂きましてありがとうございました。