取得と変換(PowerQuery)を使って、「区切り記号」で、"文字列" を分割する
[:contents]、
PowerQueryを使って、"文字列を分割"する方法は複数あります
取得と変換は、外部プログラム(アドイン)として動作する「PowerQueryエディター」が、標準機能の "コマンド" のように扱えるようにしたものです。
"PowerQueryエディター" は、文字列を分割する方法が複数用意されています。
種類としては「列の分割」と「抽出」ですが、それぞれ2カ所にあるので4つの方法があります。
「列の分割」は、場所(コマンドのある)が違うだけで同じ内容ですが、 "変換タブ" と "列の追加タブ" の2カ所にある「抽出」はは内容が異なります。
- "ホーム" タブ「列の分割」
- "変換" タブ「列の分割」
- "変換" タブ「抽出」
- "列の追加" タブ「抽出」
"分割した文字列"を残すか、残さないか
「列の分割」は、分割した文字列(項目)を残すことができません。
分割した文字列(項目)を残す場合は、"追加タブ" の「抽出」を使います。
それ以外の場合は、"あらかじめ複製(コピー)" してから分割します。
「列の分割」は、「元の列」を"分割"して置き換える
「列の分割は」条件に従って「元の文字列」を分割して "置き換え" ます。
分割対象にした「文字列」は、無くなってしまうので「元の文字列」が必要な時はあらかじめ複製(コピー)しておく必要があります。
※「取得と変換」を使えば、簡単に項目を複製(コピー)できます
コピー(複製)したい "「項目名」の部分で右クリック" で表示されるプルダウンリストから「重複する列」を選択するだけでコピー(複製)することができます。
「抽出」は、"新しい項目を追加"すると、"元の文字列を置き換える"の2種類
"変換タブ" の「抽出」は、条件に従って「文字列」を抽出して置き換えるので、"元の文字列は無くなってしまう" ので注意が必要です。
"列の追加タブ" の「抽出」は、抽出した文字列の「項目」を新たに追加します。
「元の文字列」を残して分割した文字列(項目)を作成したい場合には、"列の追加タブ" の「抽出」を使います。
「区切り文字」以外の方法で、文字列を分割する
「取得と変換」で文字列を分割する方法は、「区切り記号」以外にも用意されています。
「列の分割」と「抽出」では用意されている "分割方法" が異なります。
「列の分割」に用意されている分割方法
- 区切り記号による分割
- 文字数による分割
- 位置
- 小文字から大文字による分割
- 大文字から小文字による分割
- 数字から数字以外による分割
- 数字以外から数字による分割
「抽出」に用意されている分割方法
- 長さ
- 最初の文字
- 最後の文字
- 範囲
- 区切り記号の前のテキスト
- 区切り記号の後のテキスト
- 区切り記号の間のテキスト
1."ホーム" タブ「列の分割」
"変換タブ" の「列の分割」と同じ内容です。
「列の分割」は、対象となる "文字列" を分割して、新しい項目(列)に置き換えます。
「元の文字列」は無くなってしまうので、元の文字列を残したい場合には、あらかじめ複製(コピー)しておき、その複製した項目を分割するようにします。
同じ区切り記号の「 - 」を使って分割する場合は、1度の操作で "3つの項目" に分割することができるので便利です。
2."変換" タブ「列の分割」
内容は "ホームタブ" の「列の分割」と同じ内容です。
3."変換" タブ「抽出」
"変換" タブの「抽出」は、"対象となる文字列" から条件に応じて「文字列を切り出して(抽出して)」"新しい「文字列」に置き換え" ます。
「列の分割」とは異なり、"1度に複数のカ所で分割することはできません" 。
3つの項目に分割するためには、「元の項目を "複製(コピー)"してから抽出」する作業を繰り返す必要があります。
便利な点は、区切り記号で区切る位置を「区切り記号の前のテキスト」「区切り記号の後のテキスト」「区切り記号の間のテキスト」の3種類が指定できるので複雑な条件を設定することができます。
「区切り記号の間のテキスト」を指定
「区切り記号の前のテキスト」「区切り記号の後のテキスト」「区切り記号の間のテキスト」を指定できるので複雑な条件を設定することができます。
「区切り記号の間のテキスト」を指定すれば、異なる区切り記号「 - 」と「 ( 」に挟まれた「 "間" の文字列」を抜き出すことができます。。
"開始区切り記号"を「-」に、"終了区切り記号"を「(」に指定
「 - 」と「 ( 」の間に挟まれた「文字列」を抽出することができます。
4."列の追加" タブ「抽出」
「列の追加タブの"抽出"」は、「変換タブの"抽出"」とは異なり "項目(文字列)を置き換える" のではなく "項目(文字列)を追加" します。
文字列を3つに分割する際には、あらかじめコピー(複製)しておく必要がなく、抽出作業を3回繰り返すだけなので、列の追加タブの「抽出」より工数を少なくすることができます。
「取得と変換」を使う
「取得と変換」は、以前は外部プログラム(アドイン)だった「PowerQueryエディター」を、「リボン」から標準機能として使うことができるようにしたものです。
"分割したい項目" を含む「表」を選択
「PowerQueryエディター」を使うには、「表」が "テーブル化" されている必要があります。
"テーブル化" されていない場合は、最初にテーブル化のコマンドが立ち上がります。
表を「テーブル化」して作業効率を上げる - 事務作業の省力化や資料作成に役立つ、Excelの使い方を紹介
"テーブル化" のコマンドが立ち上がる
"テーブル化" されていない「表」を選択した場合は、"テーブル作成のダイアログ" が立ち上がります。
- 「表」のどこか1カ所に "アクティブセル" を置く
- 「データ」タブを選択
- 「テーブルまたは範囲から」を選択
- "テーブルの作成ダイアログ" で、範囲が正しく選択されているのを確認
- 「先頭行をテーブルの見出しとして・・・」にチェックを入れる
- 「OK」をクリック
「PowerQueryエディター」が立ち上がる
「PowerQueryエディター」が、外部プログラム(アドイン)として立ち上がります。
※ エディターを閉じる(終了させる)までは、Excelの操作ができなくなるので注意
"列の追加"タブの、「抽出」を使う
「コードNo.」の項目から、「 - 」と「 ( 」の記号に挟まれた文字列を抜き出して、新しい「項目」を追加します。
"列の追加タブ"から「抽出」のコマンドを選択
- 分割する「コードNo.」の、"項目名" の部分をクリックして「項目全体を選択」(※ 項目全体の色が "緑色" になります)
- 「列の追加」タブを選択
- 「抽出」の "ラジオボタン「▼」"をクリック
- プルダウンリストから「区切り記号の間のテキスト」を選択
- "区切り記号の間のテキスト" のダイアログで "開始区切り記号" を「 - 」に指定
- "区切り記号の間のテキスト" のダイアログで "終了区切り記号" を「 ( 」に指定
- 「OK」をクリック
「PowerQueryエディター」を閉じて、ワークシートを作成
指定した条件で "抽出" した、「区切り記号の間の...」の項目が追加されました。
「PowerQueryエディター」を閉じて(終了して)、作成した「表」を含むExcelのワークシートを作成します。
- 「ホーム」タブを選択
- 「閉じて読み込む」の "ラジオボタン"「▼」をクリック
- プルダウンリストから「閉じて次に読み込む」を選択
"ワークシートの作成方法"を指定します
"ワークシートの作成方法" を「テーブル」に指定し、「新規ワークシート」を作成します。
- "データのインポート" ダイアログで「テーブル」にチェックを入れる
- 「新規ワークシート」にチェックを入れる
- 「OK」をクリック
新しい「ワークシート」が作成されました
"抽出した文字列" を含む「表」のあるワークシートが追加されました。
このワークシート「テーブル10」は、抽出作業の「ステップ」が記録された「クエリ」と接続された状態になっています。
この「クエリ」を使うことで、同じ作業を繰り返したり、作業内容を変更したりすることができます。
さらに、「元の表」に変更を加えて、「クエリを更新」すれば変更内容が「テーブル10」に反映されます。
「取得と変換(PowerQueryエディター)」を使えば、操作を覚えてしまえば最小限の工数で "文字列を分割" することができます。
作業(操作)内容が「クエリ」に保存されるので、毎月(毎日)同じ作業をする場合などに使えばとても便利です。