不定な数の項目を連結する

最初の項目が定まらない

抽出と生成の両方にあるキーワード『取得データの組合せ』。複数の項目の値同士、或いは固定の文字列を連結する要件で活躍します。しかしその内、値が無い(空白の可能性がある)項目が対象と成った場合、文字列の連結はどのようにすれば良いのでしょうか。‥‥何ということはありません。空白は空白でしか置き換わらないので、通常と同様で特別な設定は要りません――

では。‥‥いえ寧ろ普通はあると思いますが、項目(値)間に区切り文字がある場合は、どのようにすれば良いでしょうか。

f:id:xoblos:20190104135917p:plain

ここでは、区切り文字を全角のスペース「 」にしましょう。上図は入力データですが、「a b c」等のように成れば期待値です。値の文頭前と文末後にもスペースは合ってはなりません。つまるところ、左詰めに文字列が収まり、各値の間にのみ全角スペースが入れば完成です。

f:id:xoblos:20190104135935p:plain

曲者なのは、最初と最後の項目が徹底していないことです。これをカバーする為、上図の抽出制御シートは少々乱暴ですが、4つの項目いずれも『取得データの組合せ』で全角スペースを頭に付加し、それらをすぐさま連結しています。また空白をカバーする為に、『データが無いときの値』で「ネコ」という値を設定しています。これにより、どのデータも必ず「 文字 文字 文字 文字」となります。

これを前提に、生成の制御シートでは先ず空白情報を持つデータから対処します。‥‥抽出の段階で空白は、正式には「 ネコ」に成りましたね。これを、『文字列編集』で Null(文字列無し)に置換します。すると、個数が不定でも「 文字」×nを持ったデータに成ります。

残された共通問題は‥‥もう簡単ですね。各データ、最初の(項目分の)全角スペースが "固定で" 残っていますので、『取得データの切り出し』で、2文字目から取り扱うことにしましょう。

f:id:xoblos:20190104135942p:plain

期待する生成結果に成りました。参考で列「A」~「D」も出力していますが、不要であれば無論、『セット先セル』を未設定にすれば良いだけです。

これが最終生成結果でなく中間処理であって、且つ Excel の関数に慣れている人は、これまでの面倒な設定は一切不要とし、雛形シート上(列「E」等)に「=TRIM(" "&A2&" "&B2&" "&C2&" "&D2)」等を置かれることでしょう。