様々なデータを扱っていると、複数の情報を表す文字列が、区切り文字で区切られた状態で1つの列に詰め込まれているデータを見かけることがあります。

例えば上記は1行が1つログを表しており、「イベントキー」列には、「イベントの種類」や「イベントのステータス」「ユーザー」の情報が含まれているデータです。
それぞれの要素が 「ハイフン(-)」や「アンダースコア(_)」でつながれていますが、その区切り文字が行によって異なるため、簡単に処理しづらい構造になっています。
具体的には、「ハイフンで区切ろう」と思って処理しても、アンダースコアが先に出てくる行があったり、
逆に「アンダースコアで区切ろう」とすると、ハイフンが先に出てくる行にうまく対応できなかったりします。仮にこのような構造のデータを処理したいとき、やりたいのは、(最初の出てくる)-あるいは_で列に分割することです。
このように、最初に現れる区切り文字の位置で分けることで、 後続の加工や分類がしやすくなります。そこでこのノートでは、任意のいずれかの文字をもとに列に分割する方法を紹介しています。
ここからAIプロンプトを利用する方法とUIを利用する方法をそれぞれ紹介します。
AI プロンプトを利用する場合、テーブル・ビューから「AIデータ加工」のボタンをクリックします。

AI プロンプトのダイアログが開いたあら、以下のように入力します。
イベントキーを「-」または「_」で列に分割して

すると、AIプロンプトがseparate()
関数などを使って、最初に現れる - または _
を元にデータを分割することを返すので、プレビューで詳細を確認し実行します。

「-」または「_」で列に分割することで期待する処理実行できました。

なお、このとき、イベントキーを最初に出てくる「-」または「_」で分割してのような形で「最初に」という単語を含めていない理由は、今回のようなデータの場合、ハイフンであってもアンダースコアであっても出現したら列に分割する処理をしたいためです。
UIを利用する場合、テーブル・ビューからイベントキーの列ヘッダーメニューの「分割」から、「…で列に分割」を選択、「カスタム」を選択します。

列に分割のダイアログが表示されたら、今回は複数の区切り文字を指定するために、正規表現を選択します。

正規表現を利用すると複数条件に合致する、例えば任意の文字列のどれかが合致する場合というような形で区切り文字を指定できます。
今回はスペースまたはアンダースコアを指定したいので、[-_]と入力します。

イベントタイプ、イベント内容、ユーザーに分けられるため、それらをカンマ区切りで新しい列として指定して実行します。

なお、今回のようなデータの場合、ハイフンであってもアンダースコアであっても出現したら列に分割する処理をしてもらいたいため、最初に出てくるといった条件を設定する必要はありません。
「-」または「_」で列に分割することで期待する処理を実行できました。
