文字列同士の結合
複数の列の値や決まった文字をつないで、1 つの文字列にします。姓と名を結合する、都道府県と市区町村をつないで住所にする、キーを組み立てる、といった使い方をします。
つなぐのは同じ行の中の値です。複数行の値を 1 つにまとめたいならグループごとの結合を使ってください。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
Spark エンジンでも動きます。行の数は変わりません。
設定項目
- 結果の挿入先を設定
- 新規列に挿入(既定)か既存列に上書き。選んだ方で、次に出る項目が変わります。
- 新規列名を入力必須
- 「新規列に挿入」のときに出ます。つないだ結果を入れる新しい列の名前。
- 列を選択必須
- 「既存列に上書き」のときに出ます。つないだ結果の書き戻し先。ここで選ぶのは書き戻し先だけで、つなぐ元は下の「結合する要素を設定」で指定します。
- 結合する要素を設定
- つなぐものを要素1・要素2…と並べます。いくつでも足せます。上から順につながります。
- 固定文字を結合する
- 要素ごとの設定です。off(既定)なら列を選択が出て、その列の値をつなぎます。on にすると文字を入力が出て、全行に同じ文字が入ります。
- 処理対象列を結果から除外する
- オプションの中にあります。on にすると、要素として指定した列を結果から消します。固定文字は関係ありません。「既存列に上書き」で選んだ書き戻し先の列は、要素に使っていても消えません。
- 区切り文字を指定する
- オプションの中にあります。要素と要素の間に入れる文字。空のままだと詰めてつながります。
文字列以外の列をつなぐとき
数値・日付・日付時間・時間の列もつなげます。 値は文字にしてからつながれます。
| 元の型 | つながる形 |
|---|---|
| 日付 | 2024-01-01 |
| 日付時間 | 2024-01-01 12:34:56(秒より下が 0 なら省かれます) |
| 時間 | 12:34:56 |
| 数値 | 見たままの数字 |
空欄が混ざっている列をつなぐと、その部分は空文字になります。 行ごと消えたりはせず、その要素だけが詰まります。区切り文字を指定していれば、区切り文字は残ります。
結果の列は文字列です。
エラーと対処
新規列名が既にある
「新規列に挿入」で、入力した列名がすでにデータにあるときに出ます。
新規列名(
{{new_col}})が既存の列名と重複しています。
直し方 — 別の名前にするか、その列を書き換えてよいなら「既存列に上書き」に切り替えてください。
列を選ばずに実行した
「列を選択」が空のまま実行したときに出ます。前の処理で列名が変わり、選んでいた列が入力データからなくなったときにも同じメッセージです。
対象の列が選択されていません。
直し方 — 列を選び直してください。
よく使う例
1. 姓と名をつなぐ
お題 — 姓と名が別の列に分かれている
入力 — 姓 に 山田、名 に 太郎
設定 — 新規列名 氏名、要素1 に 姓、要素2 に 名、区切り文字に半角スペース
出力 — 氏名 に 山田 太郎
2. 住所を組み立てる
お題 — 都道府県・市区町村・番地が 3 列に分かれている
入力 — 東京都 / 渋谷区 / 道玄坂1-2-3
設定 — 要素を 3 つ並べ、区切り文字は空
出力 — 東京都渋谷区道玄坂1-2-3
3. 固定の文字を挟む
お題 — 番号の前に区分を付けた ID を作りたい
入力 — 番号 に 001
設定 — 要素1 で「固定文字を結合する」を on にして A、要素2 も on にして -、要素3 に 番号 列
出力 — A-001
4. 結合用のキーを作る
お題 — 店舗と日付の組み合わせを 1 つのキーにしたい
入力 — 店舗 に S01、日付 に 2024-01-01
設定 — 要素に 店舗 と 日付、区切り文字 _
出力 — S01_2024-01-01
注意 — キー列を指定する結合は複数のキー列をそのまま指定できます。結合のためだけなら 1 列にまとめる必要はありません
5. つないだ元の列を消す
お題 — つないだあと、元の列は残したくない
入力 — 姓 名 年齢
設定 — 要素に 姓 と 名、オプションの「処理対象列を結果から除外する」を on
出力 — 氏名 と 年齢 だけが残り、姓 と 名 は消える
6. 空欄のある列をつなぐ
お題 — 建物名が空の行がある
入力 — 市区町村 に 渋谷区、建物名 が空欄
設定 — 要素に 市区町村 と 建物名、区切り文字 -
出力 — 渋谷区-(空欄の分だけが空文字になり、区切り文字は残る)